如何在 Virtuoso 中查询 RDFS 文件?

How do I query the RDFS file in Virtuoso?

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

所以如果我执行此查询,它应该 return 所有 "things" 的 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 的新手,所以可能是我说错了什么。

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

为了使您的查询有效,您应该将位于 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#> 

完成后,查询应该 return 结果。

有些 SPARQL 引擎确实提供了您预期的远程数据自动检索功能(我知道 Eclipse RDF4J 和 Apache Jena Fuseki 有这方面的选项 - 不确定 Virtuoso)但这不是 'typical' 方式进行 SPARQL 查询。