Inferencia de tipo OWL con una restricción
Estoy estudiando la noción de restricciones OWL con Protege 4 usando FaCT ++ y una ontología trivial. Supongamos que tengo un individuofoo
de claseSomething
:
:Something a owl:Class.
:foo a :Something, owl:NamedIndividual.
y otra clase definida a partir de una restricción en elhasBar
propiedad:
:hasBar a owl:ObjectProperty.
:SomethingElse owl:equivalentClass [a owl:Restriction;
owl:onProperty :hasBar;
owl:allValuesFrom :Something].
Si afirmo que:
:x :hasBar :foo.
¿Por qué no puedo inferir quex
es unSomethingElse
(a través del hecho de quefoo
es unSomething
)? La única manera de hacerlo funcionar es si elrange
dehasBar
se define:
:hasBar a owl:ObjectProperty;
rdfs:range :Something.
Pero me gustaría evitar eso, porque restringe lo que puede ser el tema dehasBar
(lo que me causa más problemas).