门徒 owl ontology
Protege owl ontology
我有两个属性
- 赢了
- 有资格
两者的范围都是竞争,领域不限于任何class。
我想限制模型如下:
- 要赢得 (hasWon) 一场比赛,必须有资格参加 (hasQualifiedTo) 一场比赛。
在Protege中如何实现,如何用DL语法表达?
感谢任何建议。
To win (hasWon) a competition one must qualify to (hasQualifiedTo) a
competition. How to do it in Protege and how to express it in DL
syntax?
至少有两种解释方式。你的意思是(a)要赢得比赛,一个人必须有资格参加比赛,但不一定是同一场比赛; (b) 要赢得一场比赛,必须有资格参加同一场比赛。 (b) 实际上更容易一些; (a) 比较复杂。
如果比赛必须相同
如果比赛必须相同,那你就是说
赢得了(x,y) → hasQualifiedTo(x,y)
这是一个子属性公理,通常写成
赢得 ⊑已合格
您可以在 Protege 中轻松做到这一点:
如果比赛可以不一样
既然两者的范围都已经是比赛,你可以肯定,如果有人赢得了某件事,那么那件事就是一场比赛。现在你还想说,无论赢得了比赛,也必须有资格参加一些比赛。这是一个 domain 公理。您可以简单地将 class (hasQualifiedTo some Competition) 添加为 hasWon 的域。那么你可以推断if某个东西赢得了比赛,then它也有资格参加某个比赛。我不知道在 DL 语法中是否有一种完美的标准方式来表达域和范围,但是您可以说 属性 P 的域是 D,公理如下:
⊤ ⊑ ∀ P-1.D
这表示每个 X(即 ⊤ 的每个元素)是这样的,如果 P-1(X,Y)(这意味着 P(Y,X )), 然后 Y ∈ D. 这意味着 P(subject,object) 断言中的每个 subject 都必须是 D 的一个元素。因此,在本例中,我们有:
⊤ ⊑ ∀ hasWon-1.(∃ hasQualifiedTo)
用简单的英语来说,如果有人赢得了某些东西,那么他们也有资格获得某些东西(但不一定是相同的东西)。这是它在 Protege 中的样子,以及生成的 ontology(您可以下载并在 Protege 中打开)。
@prefix : <http://www.semanticweb.org/taylorj/ontologies/2015/4/untitled-ontology-39#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:Competition a owl:Class .
:qualified a owl:ObjectProperty ;
rdfs:range :Competition .
:won a owl:ObjectProperty ;
rdfs:domain [ a owl:Restriction ;
owl:onProperty :qualified ;
owl:someValuesFrom :Competition
] ;
rdfs:range :Competition .
我有两个属性
- 赢了
- 有资格
两者的范围都是竞争,领域不限于任何class。 我想限制模型如下:
- 要赢得 (hasWon) 一场比赛,必须有资格参加 (hasQualifiedTo) 一场比赛。 在Protege中如何实现,如何用DL语法表达?
感谢任何建议。
To win (hasWon) a competition one must qualify to (hasQualifiedTo) a competition. How to do it in Protege and how to express it in DL syntax?
至少有两种解释方式。你的意思是(a)要赢得比赛,一个人必须有资格参加比赛,但不一定是同一场比赛; (b) 要赢得一场比赛,必须有资格参加同一场比赛。 (b) 实际上更容易一些; (a) 比较复杂。
如果比赛必须相同
如果比赛必须相同,那你就是说
赢得了(x,y) → hasQualifiedTo(x,y)
这是一个子属性公理,通常写成
赢得 ⊑已合格
您可以在 Protege 中轻松做到这一点:
如果比赛可以不一样
既然两者的范围都已经是比赛,你可以肯定,如果有人赢得了某件事,那么那件事就是一场比赛。现在你还想说,无论赢得了比赛,也必须有资格参加一些比赛。这是一个 domain 公理。您可以简单地将 class (hasQualifiedTo some Competition) 添加为 hasWon 的域。那么你可以推断if某个东西赢得了比赛,then它也有资格参加某个比赛。我不知道在 DL 语法中是否有一种完美的标准方式来表达域和范围,但是您可以说 属性 P 的域是 D,公理如下:
⊤ ⊑ ∀ P-1.D
这表示每个 X(即 ⊤ 的每个元素)是这样的,如果 P-1(X,Y)(这意味着 P(Y,X )), 然后 Y ∈ D. 这意味着 P(subject,object) 断言中的每个 subject 都必须是 D 的一个元素。因此,在本例中,我们有:
⊤ ⊑ ∀ hasWon-1.(∃ hasQualifiedTo)
用简单的英语来说,如果有人赢得了某些东西,那么他们也有资格获得某些东西(但不一定是相同的东西)。这是它在 Protege 中的样子,以及生成的 ontology(您可以下载并在 Protege 中打开)。
@prefix : <http://www.semanticweb.org/taylorj/ontologies/2015/4/untitled-ontology-39#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:Competition a owl:Class .
:qualified a owl:ObjectProperty ;
rdfs:range :Competition .
:won a owl:ObjectProperty ;
rdfs:domain [ a owl:Restriction ;
owl:onProperty :qualified ;
owl:someValuesFrom :Competition
] ;
rdfs:range :Competition .