【问题标题】:No GRAPHs in Jena TDBJena TDB 中没有图形
【发布时间】: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) 并将文件读入其中。

标签: sparql rdf jena tdb


【解决方案1】:

问题是由数据的加载过程引起的。 在第二次尝试中,我在命令行中使用了tdbloader,这导致了一个数据集,该数据集可以使用tdbquery 处理所需的图形查询。

非常感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多