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.

OWL2: expresiones de clase complejas + comparación de dos fechas

¿Existe alguna manera en OWL2 de definir una clase que involucre una comparación de dos valores literales?
Digamos que tengo una clase “Persona” que tiene dos propiedades de datos:

  • dateA: Persona -> xsd:date
  • dateB: Persona -> xsd:date

Quiero definir dos subclases de la clase “Persona”:

  • PersonaConFechaAnteriorA = aquellas personas que tienen “dateA < dateB”
  • PersonaConFechaAnteriorB = aquellas personas que tienen “dateB < dateA”

La siguiente definición no parece funcionar en Protege 5.5.0: “PersonaConFechaAnteriorA Equivalente A ‘dateA some xsd:date[ < dateB ]'” + “PersonaConFechaAnteriorB Equivalente A ‘dateB some xsd:date[ < dateA ]'” (Protege se bloquea cuando intento inferir clases de individuos).

¿Es incluso posible en OWL2?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible definir una clase en OWL2 que involucre una comparación de dos valores literales utilizando restricciones de propiedad. En este caso, para definir las subclases PersonWithEarlierDateA y PersonWithEarlierDateB de la clase Person basadas en la comparación de las dos propiedades de datos dateA y dateB, podemos utilizar las siguientes restricciones de propiedad:

    • PersonWithEarlierDateA Equivalente a Person y dateA some xsd:date y dateB some xsd:date y dateA max dateB
    • PersonWithEarlierDateB Equivalente a Person y dateA some xsd:date y dateB some xsd:date y dateB max dateA

    Estas restricciones de propiedad utilizan el calificador max para indicar que el valor de una propiedad es mayor que el valor de la otra propiedad. Es importante destacar que max es una restricción de cardinalidad calificada que especifica el número máximo de valores para una propiedad dada. En este caso, el valor máximo para dateA es dateB para PersonWithEarlierDateA, y el valor máximo para dateB es dateA para PersonWithEarlierDateB.

    Este enfoque debería funcionar en Protege y otras herramientas de OWL2 para inferir las clases de los individuos basándose en las restricciones de propiedad definidas para PersonWithEarlierDateA y PersonWithEarlierDateB.

Comments are closed.