3 votes

Pourquoi aucune propagation de type de propriété avec rdfs:subPropertyOf ?

Supposons que j'ai

:hasParent rdfs:subPropertyOf :hasAncestor . :hasAncestor rdf:type owl:TransitiveProperty .

Cela a pour résultat satisfaisant de déduire toutes les véritables relations entre les ancêtres, compte tenu de la filiation. Mais je suis surpris qu'elle n'ait pas l'effet secondaire négatif de rendre :hasParent efficacement transitif aussi. N'est pas p rdfs:subPropertyOf q signifie que p "hérite" des méta-propriétés de q, notamment a owl:TransitiveProperty ?

De façon apparemment asymétrique, nous voyons avec A rdfs:subClassOf B y B :hasFriend C que A :hasFriend C également depuis A rdf:type B . Pourquoi cela ne se produit-il pas aussi avec les sous-propriétés ?

4voto

Henriette Harmse Points 1

Stanislav a déjà donné une bonne réponse à cette question. Ce que je veux aborder ici est l'idée mentionnée dans le commentaire que "l'héritage des classes" est asymétrique avec "l'héritage des propriétés".

Orientation objet

(1) Dans les langages de programmation orientés objet, lorsque la classe A hérite de la classe B cela signifie que l'ensemble de toutes les instances de la classe A est un sous-ensemble de l'ensemble de toutes les instances de la classe B . De plus, comme les attributs appartiennent à une classe spécifique, cela signifie que la classe A aura tous les attributs de la classe B (c'est-à-dire classe A hérite de tous les attributs de la classe B ).

(2) Lorsque la classe A a un attribut c de type C elle affirme (plus ou moins) qu'il existe une association c entre les classes A y C .

OWL/RDFS

(1) Une grande différence avec OWL/RDFS est que les propriétés ne pas appartiennent à une classe. Lorsque nous disons que A rdfs:subClassOf B nous disons que l'ensemble A est un sous-ensemble de B . Il ne dit rien de plus. Par exemple, si nous avons

B a rdfs:Class .
B rdfs:label "Label for class B" .
A a rdfs:Class .
A rdfs:subClassOf B .

classe A sera pas "hériter" de l'étiquette de la classe B .

(2) Les propriétés dans OWL/RDFS sont spécifiées entre les instances, pas entre les cours. J'ai écrit sur ce en détail sur mon blog. Quand vous dites que P rdfs:subProperty R cela signifie que l'ensemble des paires d'individus dans P est un sous-ensemble de l'ensemble des paires d'individus dans R .

Mais les propriétés fonctionnelles sont héritées...

Non, ils ne le sont pas. Cela semble juste être le cas en raison de la sémantique des propriétés fonctionnelles. Si nous avons une propriété R c'est-à-dire fonctionnel, il signifie une affectation satisfaisante pour R peut être {(a,1), (b,2)} . C'est-à-dire que le même sujet ne peut pas être lié à 2 objets différents. C'est-à-dire que vous ne pouvez pas avoir {(a,1), (a,2)} .

Maintenant, si vous avez ce P rdfs:subPropertyOf R , P est un sous-ensemble de R et donc P sera également fonctionnel. C'est-à-dire que si R = {(a,1), (b,2)} tout sous-ensemble de R seront également fonctionnels.

3voto

Stanislav Kralin Points 7620

Non. P rdfs:subPropertyOf Q moyenne P "hérite" Q Les méta-propriétés de l'entreprise,
y compris a owl:TransitiveProperty ?

En général, non.

  • P rdfs:subPropertyOf Q signifie que ∀x∀y(P(x,y) → Q(x,y)) (1)

  • Q a owl:TransitiveProperty signifie que ∀x∀y∀z(Q(x,y) ∧ Q(y,z) → Q(x,z)) (2)

Malheureusement, (1) et (2) n'impliquent pas ∀x∀y∀z(P(x,y) ∧ P(y,z) → P(x,z)) .

Vous pouvez trouver un contre-modèle en ligne :

countermodel

D'ailleurs, une sous-propriété d'une propriété fonctionnelle est également fonctionnelle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X