package net.fortytwo.sesametools.ldserver;
import net.fortytwo.sesametools.ldserver.query.SparqlResource;
import org.openrdf.repository.Repository;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.rio.RDFFormat;
import org.openrdf.sail.Sail;
import org.openrdf.sail.memory.MemoryStore;
import org.restlet.Component;
import org.restlet.data.Protocol;
/**
* @author Joshua Shinavier (http://fortytwo.net)
*/
public class DemoApp {
public static void main(final String[] args) throws Exception {
Sail sail = new MemoryStore();
sail.initialize();
Repository repo = new SailRepository(sail);
try (RepositoryConnection rc = repo.getConnection()) {
rc.add(DemoApp.class.getResourceAsStream("demoApp.trig"), "", RDFFormat.TRIG);
}
LinkedDataServer server = new LinkedDataServer(
sail,
"http://example.org",
"http://localhost:8001");
Component component = new Component();
component.getServers().add(Protocol.HTTP, 8001);
component.getDefaultHost().attach("/person", WebResource.class);
component.getDefaultHost().attach("/graph", GraphResource.class);
component.getDefaultHost().attach("/sparql", new SparqlResource());
server.setInboundRoot(component);
server.start();
/* Now try:
wget http://localhost:8001/person/arthur
wget --header="Accept: application/x-trig" http://localhost:8001/person/arthur
wget --header="Accept: application/x-trig" http://localhost:8001/graph/demoGraph
wget "http://localhost:8001/sparql?query=SELECT%20%3Fs%20%3Fp%20%3Fo%20WHERE%20%7B%20%3Fs%20%3Fp%20%3Fo%20%7D%20LIMIT%2010"
curl --data-urlencode query@/tmp/myquery.rq http://localhost:8001/sparql
*/
}
}