【发布时间】:2015-05-05 13:57:42
【问题描述】:
我有两个属性
- 赢了
- hasQualifiedTo
两者的范围都是竞争,并且领域不限于任何类别。 我想将模型限制如下:
- 要赢得 (hasWon) 比赛,必须有资格参加 (hasQualifiedTo) 比赛。 在 Protege 中如何做,如何用 DL 语法表达?
感谢任何建议。
【问题讨论】:
我有两个属性
两者的范围都是竞争,并且领域不限于任何类别。 我想将模型限制如下:
感谢任何建议。
【问题讨论】:
要赢得 (hasWon) 比赛,必须有资格获得 (hasQualifiedTo) a 竞赛。如何在 Protege 中进行以及如何在 DL 中表达 语法?
至少有两种解释方式。您的意思是 (a) 要赢得比赛,必须有资格参加比赛,但不一定是同一个人;或 (b) 要赢得比赛,必须有资格参加同一比赛。 (b) 实际上更容易一些; (a) 更复杂。
如果比赛一定是一样的,那你就是说
hasWon(x,y) → hasQualifiedTo(x,y)
这是一个子属性公理,通常写成
赢了 ⊑ hasQualifiedTo
您可以在 Protege 中轻松做到这一点:
由于两者的范围都已经是比赛,你可以确定如果有人赢得了某件东西,那么那件事情就是一场比赛。现在您还想说,无论赢得比赛,都必须有资格参加某些比赛。这是一个域公理。您可以简单地将类 (hasQualifiedTo some Competition) 添加为 hasWon 的域。那么你可以推断如果某样东西赢得了比赛,那么它也有资格参加某项比赛。我不知道在 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 和生成的本体(您可以下载并在 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 .
【讨论】: