Pregunta

Tengo curiosidad acerca de la mezcla subClassOf y equivalentClass en una descripción de clase, y cómo un razonador comportaría.

En concreto, si tengo tanto un equivalentClass y una afirmación subClassOf de la misma clase, tienen que ser satisfechas para que un individuo se clasifican en dicha clase, o sólo el equivalentClass?

O se trata de una mala práctica?

Por ejemplo (Declaraciones omitido):

ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)
EquivalentClass(:Foo ObjectSomeValuesFrom(:format :Bar))
SubClassOf(:Foo :Sna)

Quiero asegurar que en el caso de abajo, :x se clasifica como :Foo, porque tanto los equivalentClass afirmaciones y subClassOf son satisfechas:

ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)

Pero :y no lo es, porque el subClassOf no está satisfecho:

ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)

Gracias,

Jonathan

¿Fue útil?

Solución

No entiendo por completo su pregunta, pero voy a tratar de aclarar algunas cosas. En primer lugar, los siguientes axiomas parecen irrelevantes para su pregunta (y la segunda es redundante porque todos modos es owl:Thing gama de cualquier propiedad):

ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)

La otra cosa es que los EquivalentClasses-axiomas pueden ser vistos como un azúcar sintáctica para SubClassOf-axiomas, por ejemplo.

EquivalentClasses(C1 C2)

es lógicamente equivalente a

SubClassOf(C1 C2)
SubClassOf(C2 C1)

Así se puede reescribir su EquivalentClasses como:

SubClassOf(ObjectSomeValuesFrom(:format :Bar) :Foo)
SubClassOf(:Foo ObjectSomeValuesFrom(:format :Bar))

Esto tal vez sería simplificar la comprensión de lo que sus vinculaciones marcas ontología.

Ahora, si usted dice:

ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)

Estoy asumiendo que usted quiere decir:

ClassAssertion(:x :Sna)
ClassAssertion(:someBar :Bar)
ObjectPropertyAssertion(:format :x :someBar)

Esto implica que es a la vez :x :Foo y :Sna, que es ciertamente posible porque :Foo es una subclase de :Sna.

Cuando dice

ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)

Asumo que decir:

ClassAssertion(:y :NotASna)
ClassAssertion(:someOtherBar :Bar)
DisjointClasses(:NotASna :Sna)
ObjectPropertyAssertion(:format :y :someOtherBar)

Esta es una inconsistencia lógica porque :y se implicó a ser un :Foo (que es una subclase de :Sna), pero al mismo tiempo :y se afirma que estar en una clase que es disjunta de :Sna.

Tenga en cuenta también que no usamos el conocimiento de que

SubClassOf(:Foo ObjectSomeValuesFrom(:format :Bar))

que siguió desde el EquivalentClasses-axioma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top