es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo producir un triple con diferentes vocabularios en OWLAPI

Intenté crear distintos axiomas individuales utilizando OWLAPI 5 en Java. Lo que quiero es un triple simple utilizando el vocabulario owl:differentFrom, como este:

test:A owl:differentFrom test:B

Pero lo que obtengo es un triple utilizando owl:AllDifferent:

_:genid234 rdf:type owl:AllDifferent
_:genid234 owl:distinctMembers _:genid236
_:genid236 rdf:rest _:genid235
_:genid236 rdf:rest rdf:nil
_:genid235 rdf:first test:A
_:genid235 rdf:type rdf:List
_:genid236 rdf:first test:B
_:genid236 rdf:type rdf:List

Y el código simple es:

OWLNamedIndividual op1 = factory.getOWLNamedIndividual(baseIRI + A);
OWLNamedIndividual op2 = factory.getOWLNamedIndividual(baseIRI + B);
ont.add(factory.getOWLDifferentIndividualsAxiom(op1, op2));

Y ya lo intenté con Protege 5.5.0, produce exactamente el mismo triple que OWLAPI.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código parece ser correcto y utiliza correctamente la OWLAPI. La diferencia entre el triple esperado y el triple actual se debe al uso de diferentes clases OWL.

    El triple esperado utilizando owl:differentFrom resulta en un simple triple afirmando que A es diferente de B. Esto puede ser representado utilizando el OWLDifferentIndividualsAxiom.

    Sin embargo, al utilizar OWLDifferentIndividualsAxiom, el triple actual producido utiliza la clase OWL owl:AllDifferent en lugar de owl:differentFrom. Esto se debe a que la implementación de OWLDifferentIndividualsAxiom en OWLAPI utiliza owl:AllDifferent para representar el concepto de individuos diferentes.

    Por lo tanto, el triple actual producido sigue siendo correcto y transmite el mismo significado que el triple esperado. La diferencia radica en las clases OWL utilizadas para representar el concepto.

Comments are closed.