2016-05-06 1 views
0

Imaginez que, étant donné les deux relations suivantes:
a (x, y)
b (y, z)
nous avons pu tirer que:
c (x, z)
cela peut EXPRIMER explicitement dans Protégé par l'ajout d'un superpropriété de (chaîne) pour la propriété c comme ceci:
aob subPropertyOf csuperpropriété de Chaînage

Avec cette exprimions, imaginons que nous savons que:
a (x, y)
c (x, z)
comment pouvons-nous exprimer explicitement que nous savons donc aussi:
b (y, z)
et ce serait encore une de superpropriété (chaîne), mais pour la propriété b?

Je pensais d'abord essayer:
une inverse o (c) subPropertyOf b

Ce n'aimait pas Protégé, disant qu'il y avait un cercle. Maintenant, je suis juste très confus.

Répondre

1

L'expression correcte pour la b(y,z) serait inverse(a) o c SubPropertyOf b, comme vous voulez exprimer que le chemin de la propriété de y à z correspond à b. Si vous avez seulement cet axiome cela devrait vous donner l'inférence nécessaire. Cependant, vous ne pouvez pas l'utiliser avec le premier axiome, a o b SubPropertyOf c. Dans ce cas, vous "définissez" c via b dans l'axiome avec des propriétés directes et le b via c dans l'axiome avec la propriété inverse. Vous devez donc connaître c pour définir c. Ce type de boucles n'est pas autorisé dans OWL 2 DL, c'est pourquoi Protege vous parle de définitions cycliques. Dans l'ensemble, vous ne pouvez avoir qu'un de ces axiomes, mais pas les deux en même temps.

+0

Merci! Cela a vraiment fait beaucoup de sens! :) –

0

Connaître a et c ne signifie pas b. Cela peut être facilement ilustarted l'exemple classique, la définition de l'oncle:

:hasUncle 
    rdf:type owl:ObjectProperty ; 
    owl:propertyChainAxiom (
     :hasParent 
     :hasBrother 
    ) . 

Ensuite, si :David :hasParent :Mary et :Mary :hasBrother :John, un raisonneur DL serait en effet en déduire que :David :hasUncle :John. Mais si nous affirmons que :David :hasUncle :John et :David :hasParent :Mary, cela ne suffit pas à déduire que :Mary :hasBrother :John. Et en effet John peut être un frère d'un autre parent de Marie.

Veuillez noter que l'instruction de définition indique que la chaîne de propriétés est sous-propriété de :hasUncle et qu'elle n'est pas équivalente. Donc, même si vous affirmez :hasParent comme fonctionnel, le raisonneur n'en déduirait toujours pas b de un et c. Cependant, OWL2 ne permet pas d'avoir une combinaison équivalente de propriétés d'objet.

Les chaînes de propriétés doivent être appliquées avec précaution. Par exemple, dans S1 º S2 º S3 º ... º Sn ⊑ R, R ne peut être que sur le premier ou le dernier endroit du côté gauche de l'expression. Sinon, ce ne sera pas décidable. C'est l'une des restrictions pour les RBox régulières. Et les chaînes de propriétés, ou plus formellement "l'inclusion de rôle général", ne peuvent être décidées que si elles sont appliquées aux RBox régulières.

+0

Je pense que vous avez mal compris. Je dis que nous connaissons b (y, z) si nous connaissons a (x, y) et c (x, z).Je sais que ce n'est pas forcément le cas en fonction de ce que sont ces relations, mais j'ai dit que dans ce cas, si nous connaissons a (x, y) et c (x, z), nous connaissons donc aussi b (y, z). J'ai juste besoin d'aide pour exprimer que cela devrait être le cas. –