【问题标题】:Using Property Chains to get inferred Knowledge in an OWL Ontology(Protege)使用属性链获取 OWL 本体中的推断知识(Protege)
【发布时间】:2014-04-01 17:05:29
【问题描述】:

我在我的本体中建模了以下内容:

Club雇佣了一些Player,Player hasNationality一些Nationality,Player hasNationalStatus值National_Player,Country就相当于Nationality。

我希望本体推断:

如果玩家拥有某个国籍,并且玩家的国家状态值为 National_Player,则国家(与玩家的国籍相同)雇用玩家。

举个例子:

{Steven_Gerrard} 的国籍值为英格兰,{Steven_Gerrard} 的 NationalStatus 值为 National_Player,因此,{England} 雇用了 ​​[Steven_Gerrard}。

有没有办法将这些知识添加到 Protege 中?

谢谢。

编辑:

错误信息:

错误 42 于 2014 年 4 月 1 日星期二 20:49:24 BST 记录

OWLReasonerRuntimeException: 非简单对象属性 'http://www.semanticweb.org/u1cjd/ontologies/2014/1/untitled-ontology-2#employs' 被用作简单对象

错误 43 记录于 2014 年 4 月 1 日星期二 20:49:24 BST ReasonerInternalException: tRole.cpp:243: 断言 'Ancestor.empty() && Descendant.empty()' 失败

【问题讨论】:

    标签: owl protege description-logic


    【解决方案1】:

    这是可能的,它实际上与我在回答您之前的问题Adding statements of knowledge to an OWL Ontology in Protege) 中提到的技术非常相似,并且此答案的结构几乎与我对最近的answers.semanticweb.com 问题的回答相同, OWL property inference from blank node - modelling.

    你只需要使用一些rolification 和一个属性链公理。需要注意的一点是,现有数据有上箭头的形式,而想要的信息在下箭头。

    employs 子属性hasNationality-1 是不够的,因为您要确保玩家具有特定的国家身份。这是你需要的地方。您希望 employs 有一个子属性链 hasNationality-1 • p,其中 p 是一种特殊属性,仅将具有国家身份的玩家与他们自己联系起来。你可以通过 rolification 做到这一点。只需声明一个新的对象属性 RNationalPlayers 并断言公理

    1. hasNationalStatus value National_Player EquivalentTo R_NationalPlayer some Self
    2. inverse(hasNationality) o R_NationalPlayer subPropertyOf 雇用

    在描述逻辑语法中,这些会是这样的:

    1. =hasNationalStatus.National_Player ≡ ∃RNationalPlayer.自我
    2. 有国籍-1 • RNationalPlayer ⊑雇用

    这在某些推理机中会起作用,但不幸的是,这确实使我们脱离了 OWL 2 DL 并完全进入了 OWL。这在this answer 的 cmets 中进行了一些详细的讨论。正如更新问题中的错误消息所表明的那样,employs 现在是一个非简单属性,并且用于应该只使用简单属性的地方。请参阅11.1 Property Hierarchy and Simple Object Property Expressions 了解更多关于什么使属性简单或不简单的信息,11.2 The Restrictions on the Axiom Closure 了解更多关于属性可以出现在哪里的信息。

    但是,听起来您正在使用支持 SWRL 规则的推理器,在这种情况下,您可以简单地添加规则:

    hasNationality(?player,?country) ∧ hasNationalStatus(?player,National_Player) →雇员(?country,?player)

    【讨论】:

    • 那么 1. 是一个新的 ObjectProperty 吗?
    • 是的,新属性 R_NationalPlayer 具有一个特殊功能,即它只将具有国家球员身份的个人与他们自己联系起来。它被称为类的rolification(具有NationalStatus 值NationalPlayer),它仅在帮助确保属性链“到达您想要的地方”时才真正有用。
    • 当我尝试使用 FaCT++ 推理时,这会给出两条错误消息。我会将它们添加到主帖中。
    • @ChrisDLFC 它可能会让你脱离 OWL DL 进入 OWL Full。
    • 为确保一切正确,我将 R_NationalPlayer 添加为新角色(ObjectProperty),将“hasNationalStatus 值 National_Player EquivalentTo R_NationalPlayer some Self”添加为通用类公理和“逆(hasNationality)o R_NationalPlayer SubPropertyOf雇员”作为雇员链?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多