【问题标题】:How do I query the RDFS file in Virtuoso?如何在 Virtuoso 中查询 RDFS 文件?
【发布时间】:2020-01-12 16:28:17
【问题描述】:

URI“https://www.w3.org/2000/01/rdf-schema#”是一个包含三元组、前缀和其他内容的 RDF 文件。

因此,如果我执行此查询,它应该返回所有“事物”的 URI,即 Class

prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

select  * 
from  <http://www.w3.org/2000/01/rdf-schema#>  
where 
{
?o rdf:type rdfs:Class.

} LIMIT 100 .

但是在 Virtuoso 中运行它会给我一个错误。

我是 SPARQL 和 RDF 的新手,所以可能是我说错了。

【问题讨论】:

    标签: sparql virtuoso rdfs


    【解决方案1】:

    在大多数 RDF 数据库系统(“triplestores”)中,例如 Virtuoso,您放在 FROM 子句中的 URL 不用于从 Web 检索文件并读取其内容。相反,您通常有一个数据库,您之前自己在其中加载了一些 RDF(S) 数据,并且查询中的 FROM 子句用于标识该数据中的子集(所谓的“命名图”)。

    为了让您的查询正常工作,您应该将位于http://www.w3.org/2000/01/rdf-schema# 的文件加载到您的 Virtuoso 存储中,并确保它也使用文件位置作为命名图形标识符。您可以为此使用 SPARQL 更新命令:

    LOAD <http://www.w3.org/2000/01/rdf-schema#> INTO GRAPH <http://www.w3.org/2000/01/rdf-schema#> 
    

    完成后,查询应该返回结果。

    有一些 SPARQL 引擎确实可以像您预期的那样提供远程数据的自动检索(我知道 Eclipse RDF4J 和 Apache Jena Fuseki 有这方面的选项 - 不确定 Virtuoso),但这不是进行 SPARQL 查询的“典型”方式.

    【讨论】:

    • Virtuoso 有几种方法可以即时检索/取消引用和加载(持久或瞬时)。例如,请参阅Enhancements the Virtuoso Sponger brings to SPARQL
    • @NiccoloCorsani,GraphDB 中提供了另一个选项:1)创建启用 RDFS 推理的空存储库,2)执行查询(首先删除 FROM 部分)。这将为您带来 2.5 倍的结果!
    猜你喜欢
    • 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
    相关资源
    最近更新 更多