I am trying to create a Fuseki SPARQL server on my machine. The documentation on the Jena website describes how to create such a server from the command-line, here: http://jena.apache.org/documentation/serving_data/. I am looking for a way of creating and initializing such a server just using the Jena Java API. I have looked over the Jena API but have not made any progress in working out how to proceed. Has anyone done this before?
Yes this is possible but it is not how Fuseki was designed to operate so do so at your own risk.
You will need to pull in Fuseki as a dependency, via maven this would be the following:
<dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-fuseki</artifactId> <version>0.2.7</version> </dependency>
Then you can use the
SPARQLServerclass to create a server and call
start()to actually run the server and
stop()when you are done. (This is located in the
It is <strong>important to note</strong> that if you do this the server is embedded in the JVM from which you start it, when that JVM shuts down the server shuts down. This may be your intention but it may not.
Btw you question is unclear as to exactly why you want to do this? There may be alternative ways to achieve your goal without embedding Fuseki if you explain your goals further
If you use
<dependency> <groupId>org.apache.jena</groupId> <artifactId>apache-jena-libs</artifactId> <type>pom</type> <version>2.11.2-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-fuseki</artifactId> <version>1.0.2-SNAPSHOT</version> </dependency>
You can start an embedded Server.
Dataset dataset = TDBFactory.createDataset(MagicStrings.TDBLocation); dataset.begin(ReadWrite.WRITE); Model tdb = dataset.getDefaultModel(); EmbeddedFusekiServer server = EmbeddedFusekiServer. create(3030,getDataset().asDatasetGraph(), "comp");