使用属性链在OWL本体(Protege)中获取推断知识

Chr*_*LFC 5 owl protege description-logic

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

俱乐部雇用一些玩家,玩家拥有国籍一些国籍,玩家拥有国家地位值National_Player,国家相当于国籍.

我希望Ontology推断:

如果一个玩家拥有一些国籍,而玩家拥有国家状态值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登录于星期二四月01 20:49:24 BST 2014 ReasonerInternalException:tRole.cpp:243:断言'Ancestor.empty()&& Descendant.empty()'失败

Jos*_*lor 9

这是可能的,它实际上非常类似于我在回答您之前的问题时提到的技术,将知识语句添加到Protege中的OWL本体论,并且这个答案的结构几乎与我对最近答案的答案相同.semanticweb.com问题,来自空白节点的OWL属性推断 - 建模.

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

diagrm

雇员提供子属性hasNationality -1是不够的,因为你想确保玩家具有特定的国家身份.这是您需要滚动的地方.您希望雇员拥有hasNationality -1 •p的子属性链,其中p是一个特殊属性,仅将具有国家身份的玩家与自己联系起来.你可以通过rol化来做到这一点.只需声明一个新的对象属性R NationalPlayers并断言公理

  1. hasNationalStatus National_Player EquivalentTo R_NationalPlayer some self
  2. (hasNationality)o R_NationalPlayer subPropertyOf使用

在描述逻辑语法中,这些类似于:

  1. = hasNationalStatus.National_Player≡∃R NationalPlayer.
  2. hasNationality -1 •R NationalPlayer ⊑采用

这将在一些推理者中起作用,但不幸的是,这确实将我们从OWL 2 DL中带出并进入OWL.在这个答案的评论中对此进行了详细讨论.正如更新的问题中的错误消息所示,使用现在是非简单属性,并且在仅应使用简单属性的地方使用.有关使属性简单与否的更多信息,请参见11.1属性层次结构和简单对象属性表达式.11.2有关属性的更多信息,可以在Axiom Closure的限制中出现.

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

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