【发布时间】:2018-05-07 23:32:38
【问题描述】:
我使用以下代码将两个 .nq 文件加载到 TDB 中:
Dataset dataset = TDBFactory.createDataset("<path to directory with .nq files>");
Model tdb = dataset.getDefaultModel();
for (File file : folder.listFiles()) {
FileManager.get().readModel(tdb, file.getPath(),"N-TRIPLES");
}
加载数据后,我对标签等进行了一些简单的查询。
然而,我真正感兴趣的是在单独的图表中。 不幸的是,每当我尝试访问此类图表中的数据时,查询都会失败。我的问题本质上与this one 相似(我也尝试了所有图表选择作为用户提出问题,但用户提供的答案对我不起作用)。
即使应该有很多图表,以下查询也不返回任何结果:
SELECT * WHERE { GRAPH ?g { ?s ?p ?o }}
我对 TDB 很陌生,经验也不是很丰富。是我加载数据不正确还是查询时需要注意一些细节?
数据是公开的,您可以在这里找到它:http://webisa.webdatacommons.org/(向下滚动直到您位于 Data Dumps)。所有图形查询都适用于public endpoint,但不适用于我的 TDB 数据集。
【问题讨论】:
-
您的示例代码显示您加载了
N-Triples,因此,您在哪里看到图表? -
如何将
N-QUADS数据加载到您的TDB 实例?这是最重要的部分。 -
感谢您的帮助。我使用帖子第一部分中给出的前 4 行代码导入了数据。为了让它发挥作用,我必须改变什么?
-
代码读入模型(单图)。如果您阅读默认图表,则永远不会有命名图表。阅读,使用
RDFDataMgr.read(dataset, "filename")。 -
您的 N-Quad 数据必须是三元组,而不是命名图,这样代码才能正常工作。您需要创建命名图 (
dataset.getNamedModel) 并将文件读入其中。