【问题标题】:How do you create a Fuseki SPARQL server using the Apache Jena Java API?如何使用 Apache Jena Java API 创建 Fuseki SPARQL 服务器?
【发布时间】:2013-08-31 13:03:27
【问题描述】:

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

【问题讨论】:

    标签: java rdf sparql jena fuseki


    【解决方案1】:

    如果你使用

    <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");
    

    【讨论】:

      【解决方案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 的情况下实现您的目标

      【讨论】:

      • 这样做的原因(可能是错误的):必须开发一个 p2p 系统,其中每个节点都有一个 rdf 存储库,并且必须是 Java 应用程序。为此,我需要 Fuseki 服务器的一些功能,并希望有一种直接的方法可以从一些 Java 代码中获取这些功能。如果 JVM 关闭,我不介意失去服务器功能,只要支持服务器的 TDB 仍然保留 rdf 信息。有什么想法吗?
      • 公平地说,支持服务器的 TDB 应该正确地保存数据,因为 Fuseki 以事务方式使用它,这提供了一定程度的保护,防止不正确的 JVM 终止。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多