繁体   English   中英

在 Protege 中使用 SPARQL 推断数据

[英]Infer data with SPARQL in Protege

我正在尝试推断 RDF 数据。 假设我有使用 Protege 创建的这些三元组 (RDF Turtle):

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:hasSpouse rdf:type owl:ObjectProperty ,
                    owl:SymmetricProperty ;
           rdfs:domain :People ;
           rdfs:range :People .

:People rdf:type owl:Class .

:Jane_Doe rdf:type owl:NamedIndividual ,
                   :People .

:John_Doe rdf:type owl:NamedIndividual ,
                   :People ;
          :hasSpouse :Jane_Doe .

Protege 中的推理器会很好地突出预期的推理,即:Jane_Doe :hasSpouse :John_Doe

门生截图

我怎样才能看到 SPARQL 的推断? 如果我在 Protege(SPARQL 选项卡)中运行此查询:

SELECT ?subject
    WHERE {?subject hasSpouse ?object .}

它显示了断言的三元组,而不是推断的三元组。 我了解如何手动执行此操作,例如:

CONSTRUCT {?object ?prop ?subject }
    WHERE { ?prop rdf:type owl:SymmetricProperty .
            ?subject ?prop ?object .}

我现在会看到我期待的推断数据,但是 1) 恕我直言,这将失去意义(即重新发明轮子)2)我不能在此选项卡中进行 2 个查询(构建,然后选择)。 必须有一种方法可以自动执行此操作,就像推理器一样。

我在 Stack Overflow 上读到一篇文章,说要在 Protege 中使用“Snap SPARQL”插件。 我试过了,但简单的查询不起作用(如上面的第一个)。 就像是一种不同的语言。 它是如何工作的?

那么,我怎样才能通过 SPARQL 获得这些 owl 属性的好处呢? 如何在 Protege 中拥有支持 OWL 的 SPARQL? 我是否以错误的方式看待这个问题? 什么是正确的方法?

谢谢你的帮助。 尼古拉斯

你需要让你的推论成为你知识的一部分。

为此,请转到SWRL 选项卡并连续单击按钮

在此处输入图片说明

在该选项卡的底部,从左到右开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM