当前位置: 首页 > 面试题库 >

如何将Fuseki与Jena TDB一起使用

邢高澹
2023-03-14
问题内容

我有一个问题问你。

我有一个三元存储“ Jena TDB”,并且我读到可以为本地存储的RDF数据设置SPARQL端点。特别是,我看到在文献中与Jena
TDB一起使用了Fuseki。我以这种方式将文件rdf加载到Jena TDB中:

public void store(){
    String directory = "C:\\tdb";
    String source = "C:\\file1.rdf";
    String source1 = "C:\\file2.rdf";
    Dataset dataset = openTDB(directory);
    Model tdb = loadModel(source, dataset);
    dataset.addNamedModel("File1", tdb);

    Model tdb1 = loadModel(source1, dataset);
    dataset.addNamedModel("File2", tdb1);

    tdb.close();
    tdb1.close();
    dataset.close();
}


public Dataset openTDB(String directory){
    // open TDB dataset
    Dataset dataset = TDBFactory.createDataset(directory);
    return dataset;
}


public Model loadModel(String source, Dataset dataset){

    Model tdb = ModelFactory.createDefaultModel();
    FileManager.get().readModel( tdb, source, "RDF/XML" );
    return tdb;
}

我正在阅读Apache网站上的Fuseki文档,但我有问题。

特别是,我下载了Fuseki发行版并解压缩。然后,我打开命令提示符,然后转到解压缩fuseki的文件夹。然后,我启动了此命令:

fuseki-server --update --mem /C://TDB

我在localhost:3030地址上打开了浏览器。在浏览器上,我可以选择数据集(在C:// TDB的情况下),并且可以启动查询,例如:

选择* {图形; {?s?p?o}}

查询结果为:

未找到错误404

为什么?我究竟做错了什么?

在桌面SPARQL耶拿(TDB)客户端上?发布后,我读到我必须运行命令:

java -jar fuseki-0.1.0-server.jar –update –loc数据/数据集

但我不明白谁是数据和数据集。就我而言,我怎么知道这个值?这是我的错误吗?


问题答案:

您说对了,因为您不了解每个论点的意图。使用您的命令,您要做的是创建一个空的内存数据集,并为其分配数据集路径/C://TDB,这几乎肯定不是您想要的。

--loc参数用于将路径传递到包含TDB数据库的目录,而该/dataset路径是您要用于通过Fuseki访问它的数据集路径。

因此,例如,您可以执行以下操作:

java -jar fuseki-VER-server.jar --update --loc /path/to/database /ds

请注意 ,我在这里用作VERFuseki版本的占位符,因为该值将取决于您下载的Fuseki版本。供撰写本文时参考,最新版本为1.0.2

该命令针对/path/to/database数据集路径为的TDB数据库启动Fuseki
/ds。因此,您可以将所选的SPARQL客户端http://localhost:3030/ds/query指向进行查询或http://localhost:3030/ds/update进行更新。

如果您在Windows上运行(问题似乎就是这种情况),则可以执行以下操作:

java -jar fuseki-VER-server.jar --update --loc C:\TDB /ds

它将针对C:\TDB数据集路径为的TDB数据库启动Fuseki ,/ds因此将应用与前面示例相同的URL。



 类似资料:
  • 我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。

  • 我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理

  • 我正在尝试将composer与我的WampServer一起使用。 我所有文件的路径都是,但当我运行composer时,它会将供应商文件和其他东西安装到其他地方。 我甚至不知道我的项目在哪里,我也不能改变我的项目在哪里的路径。我已经尝试了所有的方法,但它似乎仍然没有在我的项目文件夹中安装供应商文件。

  • API level 28和Google建议使用registerNetworkCallback(NetworkRequest,PendingIntent)不推荐CONNECTIVITY\u操作。 我尝试使用ConnectionManager注册了registerNetworkCallback。NetworkCallback和它的工作,但我想使用PendingContent。 让我困惑的是公共空寄存器

  • 问题内容: 当我尝试将Webpack与简单的Express服务器一起使用时,总是会收到大量错误消息: express.js 我得到所有这些错误: 这是我的配置文件: 我该怎么办,我还需要在服务器端使用webpack。 我像这样运行express.js文件: 问题答案: 我最终要做的是,我使用了两种不同的配置,一种用于使用webpack将服务器内容打包在一起,另一种用于将所有浏览器内容打包在一起,并

  • 我有两个多对多关系的实体。 在类角色中: java.lang.StackOverflowError:空 我该如何解决这个问题?我在Stackoverflow上看到了类似的问题,但我没有找到真正有效的解决方案。 Upd:抛出异常的位置: