我有一个问题问你 .
我有一个三元店“Jena TDB”,我读过我可以为本地存储的RDF数据设置SPARQL endpoints . 特别是,我在文献中看到,与耶拿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;
}
我正在阅读Apache网站上的Fuseki文档和这篇文章Desktop SPARQL client for Jena (TDB)?,但我有问题 .
特别是,我已经下载了Fuseki发行版并解压缩了它 . 然后,我打开命令提示符,然后我去了解压缩fuseki的文件夹 . 然后,我启动了这个命令:
fuseki-server --update --mem /C://TDB
我在localhost:3030地址上打开了浏览器 . 在浏览器上,我可以选择数据集(在C:// TDB的情况下),我可以启动我的查询,例如:
select * {graph; {?s?p?o}}
查询结果为:
错误404:未找到
为什么?我究竟做错了什么?
在Desktop SPARQL client for Jena (TDB)?帖子中,我已经读过我必须运行命令:
java -jar fuseki-0.1.0-server.jar --update --loc data / dataset
但我不明白谁是数据和数据集 . 就我而言,我怎么知道这个 Value 观?这是我的错误吗?
2 回答
你是对的,你已经完成了创建一个空的内存数据集并为其分配数据集路径
/C://TDB
,这几乎肯定不是你想要的 .--loc
参数用于将路径传递到包含TDB数据库的目录,而/dataset
路径是您要通过Fuseki访问它的数据集路径例如,您可以执行以下操作:
Note 我在这里使用
VER
作为Fuseki版本的占位符,因为该值取决于您下载的Fuseki版本 . 在撰写本答案时作为参考,最新版本为1.0.2
此命令针对位于
/path/to/database
中的TDB数据库启动Fuseki,数据集路径为/ds
. 因此,您可以将所选的SPARQL客户端指向http://localhost:3030/ds/query
以进行查询,或者http://localhost:3030/ds/update
进行更新 .如果您在Windows上运行(您的问题似乎就是这种情况),那么您将执行以下操作:
其中针对位于
C:\TDB
的TDB数据库启动Fuseki,数据集路径为/ds
,因此将应用与上一示例相同的URL .然后键入
最后打开一个浏览器并输入
记住你必须首先清除环境verible(位于系统属性然后提前选项卡)并在“System verible”中编辑变量名称调用“Path”