【发布时间】:2023-04-08 16:12:02
【问题描述】:
是否有任何地方(例如 VDS.RDF.Ontology 之类的对象)保存集成在 OpenLink Virtuoso 实例中的本体列表(及其属性和类)?
我在C# 中编程(我使用dotNetRDF)并且我犹豫是否要使用查询来获取此信息。
有什么建议吗?
【问题讨论】:
标签: c# ontology virtuoso dotnetrdf
是否有任何地方(例如 VDS.RDF.Ontology 之类的对象)保存集成在 OpenLink Virtuoso 实例中的本体列表(及其属性和类)?
我在C# 中编程(我使用dotNetRDF)并且我犹豫是否要使用查询来获取此信息。
有什么建议吗?
【问题讨论】:
标签: c# ontology virtuoso dotnetrdf
在 RDF 世界中,本体只是另一个图;每个图表都应该是自描述的;因此,每个本体图都应该包含一个基本上说“我是一个本体”的声明。
假设已遵循此类最佳实践,您可以使用 query like this 来获取在给定端点后面描述的 list of ontology named graphs --
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?ontology
WHERE { ?ontology rdf:type owl:Ontology }
ORDER BY ?ontology
但是请注意,不需要将本体图加载到 Virtuoso(或其他四/三/RDF 存储)中,以便将该本体的术语用于加载到该存储中的其他图,所以我想知道你的问题的目的......
ETA:假设您有一个给定实例中本体的命名图列表,您可以通过这样的查询获取它们的内容 --
SELECT *
FROM <http://purl.org/vocab/relationship/>
WHERE { ?s ?p ?o }
--您可以通过来自 C# 的 ADO.NET 连接,通过 Virtuoso ADO.NET 提供程序,通过简单地添加 SPARQL 关键字将其转换为 SPARQL-in-SQL a/k/a SPASQL 和附加分号 --
SPARQL
SELECT *
FROM <http://purl.org/vocab/relationship/>
WHERE { ?s ?p ?o } ;
现在可能不言而喻,但要明确一点——您也可以通过 ADO.NET 将最初描述的查询作为 SPASQL 发出——
SPARQL
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?ontology
WHERE { ?ontology rdf:type owl:Ontology }
ORDER BY ?ontology ;
(ObDisclaimer:我为 OpenLink Software 工作,Virtuoso 的制作人。)
【讨论】: