是否有任何地方(例如VDS.RDF.Ontology
之类的对象)包含集成在OpenLink Virtuoso实例中的本体列表(及其属性和类)?
我在C#
中编程(我使用dotNetRDF
)并且我犹豫是否使用查询来获取此信息。
有什么建议吗?
答案 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工作。)