获取Virtuoso中的本体列表及其属性和类

时间:2016-05-02 12:08:16

标签: c# ontology virtuoso dotnetrdf

是否有任何地方(例如VDS.RDF.Ontology之类的对象)包含集成在OpenLink Virtuoso实例中的本体列表(及其属性和类)?

我在C#中编程(我使用dotNetRDF)并且我犹豫是否使用查询来获取此信息。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在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

但请注意,没有必要将Ontology图加载到Virtuoso(或其他quad / triple / RDF存储区)中,以便将该本体的术语用于加载到该商店的其他图形中,因此我不知道你问题的目的......

ETA:假设您有一个给定实例中的本体的命名图表列表,您可以使用这样的查询获取其内容 -

SELECT * 
FROM <http://purl.org/vocab/relationship/>
WHERE { ?s ?p ?o }

- 您可以通过V#的ADO.NET连接,通过Virtuoso ADO.NET Provider,通过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工作。)