Virtuoso SPARQL 不检索值

Virtuoso SPARQL not retrieving values

我正在通过图形界面 (ODS-Briefcase) 将 RDF 文件上传到 Virtuoso Repository。文件上传成功。但是,每次我进行 SPARQL 查询时,都会返回一个空结果。

我试过很多其他文件,没有遇到这个问题。

这个文件比之前的文件大 (14MB),所以我猜这可能是原因,但我不确定。

如有任何帮助,我们将不胜感激:)

更新 我已尝试上传较小的文件 (2KB) 并且 SPARQL returns 结果符合预期。

但是,我再次上传了文件 (14 MB),但似乎没有正确上传。

当我尝试从 Virtuoso 的 ODS-Briefcase 中读取它时,发生了这种情况:

听起来您已经将文件加载到 Virtuoso WebDAV(文件)存储库中,但您可能还没有将其中的 RDF 加载到 Virtuoso (RDF) Quad Store 中。

看到这个guide to the bulk loader, and this page of RDF loading methods

(ObDisclaimer:我为 OpenLink Software, producer of Virtuoso 工作。)

要解决此类问题,您必须从根本上了解您正在执行的任务以及如何使用 Virtuoso 对其进行解释。

手头的任务: 将 RDF 文档加载到 Virtuoso 的 WebDAV 存储库(ODS-Briefcase 为其提供了一个前端),其方式导致所述 RDF 文档的内容被加载到 Quad Store(其中 RDF 数据被索引并可用于 SPARQL查询等)。

你如何实现你的目标:

使用 ODS-Briefcase UI 创建类型为:关联数据导入的 DET 文件夹(该文件夹随后提供 WebDAV 存储和 Virtuoso Quad Store 之间的自动通道)。这种文件夹的属性(特征)之一是Named Graph IRI和Named Graph IRI Base:

有了关联数据导入 DET 文件夹,您只需将 RDF 文档上传到新创建的文件夹。

要验证从放置在该文件夹中的 RDF 文档导入的 RDF 语言语句是否存在,只需执行以下操作之一

SELECT COUNT (*) 
FROM {targe-named-graph-iri}
WHERE {?s ?p ?o}

SELECT DISTINCT *
FROM {targe-named-graph-iri}
WHERE {?s ?o ?o}

您还可以使用以下模式在 SPARQL 查询中利用 Virtuoso 的内置 RDF 数据导入中间件 (a/k/a Sponger):

DEFINE get:soft "replace" 
SELECT DISTINCT *
FROM {rdf-document-uri}
WHERE {?s ?o ?o}

我希望这能使将 RDF 文档内容导入 Virtuoso Quad Store(管理数据表示和 RDF Property/Predicate 图的引擎)的可用选项变得清晰。