2

我正在尝试在我的机器上创建一个 Fuseki SPARQL 服务器。Jena 网站上的文档描述了如何从命令行创建这样的服务器,这里是:http: //jena.apache.org/documentation/serving_data/。我正在寻找一种仅使用 Jena Java API 创建和初始化此类服务器的方法。我已经查看了 Jena API,但在确定如何进行方面没有取得任何进展。有没有人这样做过?

4

2 回答 2

3

如果你使用

<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>

您可以启动嵌入式服务器。

Dataset dataset = TDBFactory.createDataset(MagicStrings.TDBLocation);
dataset.begin(ReadWrite.WRITE);
Model tdb = dataset.getDefaultModel();
EmbeddedFusekiServer server = EmbeddedFusekiServer.
create(3030,getDataset().asDatasetGraph(), "comp");
于 2014-04-02T08:10:44.197 回答
2

是的,这是可能的,但这不是 Fuseki 的设计方式,因此您需要自担风险。

您需要通过 maven 将 Fuseki 作为依赖项引入,如下所示:

<dependency>
  <groupId>org.apache.jena</groupId>
  <artifactId>jena-fuseki</artifactId>
  <version>0.2.7</version>
</dependency>

然后,您可以使用SPARQLServer该类来创建服务器并调用start()以实际运行服务器以及stop()完成时。(位于org.apache.jena.fuseki.server包装内)

重要的是要注意,如果您这样做,服务器将嵌入在您启动它的 JVM 中,当该 JVM 关闭时,服务器也会关闭。这可能是您的意图,但可能不是。

顺便说一句,您的问题不清楚您为什么要这样做?如果您进一步解释您的目标,可能有其他方法可以在不嵌入 Fuseki 的情况下实现您的目标

于 2013-08-28T16:20:38.377 回答