如何在 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 查询。
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 查询。