如何使用Fuseki和Jena TDB

Mus*_*h87 3 java sparql jena fuseki tdb

我有一个问题问你.

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

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;
}
Run Code Online (Sandbox Code Playgroud)

我正在阅读Apache网站上的Fuseki文档和这篇针对Jena(TDB)的Desktop SPARQL客户端文章,但我有问题.

特别是,我已经下载了Fuseki发行版并解压缩了它.然后,我打开命令提示符,然后我去了解压缩fuseki的文件夹.然后,我启动了这个命令:

fuseki-server --update --mem /C://TDB
Run Code Online (Sandbox Code Playgroud)

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

select*{graph; {?s?p?o}}

查询结果为:

未找到错误404

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

Jena(TDB)的桌面SPARQL客户端上?发布,我已经读过我必须运行命令:

java -jar fuseki-0.1.0-server.jar --update --loc data/dataset

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

Rob*_*obV 5

你是对的,你没有理解每个论点的意图.使用您的命令您所做的就是创建一个空的内存数据集并为其分配数据集路径/C://TDB,这几乎肯定不是您的意图.

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

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

java -jar fuseki-VER-server.jar --update --loc /path/to/database /ds
Run Code Online (Sandbox Code Playgroud)

注意我在这里用作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
Run Code Online (Sandbox Code Playgroud)

其中针对位于C:\TDB数据集路径中的TDB数据库启动Fuseki ,/ds因此将应用与前一示例相同的URL.