6.7 MODELADO FORMAL 145
6.7.1 TBox: modelando términos y relaciones 146
Tomando como punto de referencia la entidad SUCESO, eje central del modelo, dicha entidad establece una serie de relaciones con otras entidades (Localizacion, Informacion, Causa, Vialidad, Accion y Escenario) que bajo el criterio de modularidad elegido, estarán especificadas en otros subdominios.
Observando de nuevo en la figura 6.6 la relación entre la entidad Suceso y la entidad Escenario, éstas pasarán a convertirse en clases del nuevo modelo semántico formal. Como ya se comentó en la propuesta metodológica, algunos de los atributos de las entidades del modelo de datos semántico no tendrán representación en la especificación formal.
La relación binaria que aparece, puede ser vista de dos formas según se aplique como dominio o como rango una entidad o la otra, de ese modo, nos encontramos con que la relación “compuesto_por” tiene su correspondiente inversa en “es_contenido_en” y ambas expresan la relación que existe entre ambas entidades. El uso de ambas puede aportar una mayor expresividad a nuestro modelo.
Como queda patente en el diagrama de ER, y tras una revisión de su análisis de dominio, hay una serie de requerimientos o restricciones que el modelo semántico de datos cumple y por lo tanto el modelo formal también tiene que hacerse eco de ello. Veamos cuales son las restricciones que conciernen a esta parte del esquema:
• Un escenario está compuesto por al menos un suceso y además en un orden concreto.
• Un suceso siempre es contenido por un escenario (pero solo por uno). Es decir, no pueden existir dos escenarios que contengan al mismo suceso.
Hay que considerar, tal y como se comentó al hablar de agregación en el punto 6.6.2.5, que la relación binaria “compuesto_por”, posee un atributo que la caracteriza, denominado “orden”, el cual expresa la lista ordenada de sucesos que componen un escenario. Este tipo de atributos, obliga a la creación de una nueva clase “ListaOrdenadaSucesos”, que en realidad estará formada por todos aquellos sucesos que de forma ordenada han ido sucediendo en el escenario común. Para poder especificar este conocimiento, se creará una nueva relación binaria cuyo dominio sea la entidad “Escenario” y cuyo rango la lista ordenada de sucesos, representada por “ListaOrdenadaSucesos”. (Ver documento “Detalles de la especificación en las
ontologías creadas”, en la URL http://robotica.uv.es/tesis/javi/document.html y en el CD-ROM que acompaña esta memoria).
Estudiemos ahora el grado de la relación(es) o en su lugar las restricciones impuestas o requerimientos de esta parte del modelo. Lo expresamos en DL.
• Restricción 1:
La relación “compuesto_por” es la relación inversa de “es_contenido_en”. compuesto_por es_contenido_en-
• Restricción 2:
Un escenario está compuesto por al menos un suceso. Escenario ⊆ (≥ 1 compuesto_por.Suceso)
• Restricción 3:
Un suceso siempre es contenido por un escenario (pero solo por uno). Suceso ⊆ (=1 es_contenido_en.Escenario)
Proceso de edición29
Para explicar con mayor detalle como se lleva a cabo el proceso de edición, remitámonos a la figura 4.13, la cual expresa la relación de causalidad en un suceso. En esta relación, además de la entidad Suceso, aparece la entidad Causa (figura 6.8), la cual debe estar especificada formalmente.
Figura 6.8 Parte de la subtipación de la entidad Causa
29
La siguiente captura (figura 6.9) muestra la propiedad “causa” que representa la anterior relación, de tal forma que dicha propiedad especificada en el dominio de “sucesos” establece que las únicas causas posibles de la aparición de un suceso (Accidente, Incidente, Medida) serán valores de la entidad “Causa”, especificada en otro subdominio u ontología diferente (de ahí #5 que corresponde al subdominio “Relaciones_Sucesos”).
Figura 6.9 Edición de la propiedad “causa”, en el subdominio “sucesos”.
Por lo que a la hora de expresar nuestro conocimiento base en extensión, o dicho de otro modo, al completar nuestra base de conocimiento dinámicamente mediante instancias de sucesos, y más concretamente como veremos a continuación, instancias de incidente, podemos especificar sus diferentes atributos haciendo referencia a valores concretos de la entidad Causa, especificada en una ontología diferente a la de Sucesos.
Subtipación de la entidad Suceso: Concepto de Incidente
En la figura 6.10 podemos apreciar una vista parcial de la jerarquía de clases elaborada para el subdominio de “Sucesos”:
Figura 6.10 Vista parcial de la jerarquía de clases en el dominio de “Sucesos”
Para comprender mejor, el desarrollo y especificación de los conceptos, tratemos de ver un concepto determinado, el concepto “Incidente”.
Requerimientos de incidente: ¾ Ocurre en una de las vías. ¾ Tiene lugar en una fecha dada.
¾ Cada incidente está caracterizado por un nivel de servicio. ¾ Tiene lugar en una población.
¾ Tiene lugar en una provincia.
¾ Está localizado en un punto (latitud, longitud). ¾ Ocurre en uno de los sentidos de la vía.
¾ Se inicia en un punto kilométrico de la carretera y finaliza en otro punto kilométrico de la carretera.
¾ Sucede hacia algún lugar.
¾ Puede ser que haya sido originado por alguna causa. ¾ Puede ser clasificado por el tipo de incidente.
Los requerimientos que poseen los conceptos principales de la ontología de Sucesos, como es el caso del concepto Incidente, desde el punto de vista de las ontologías serán tratados como restricciones de los conceptos, en su mayoría de cardinalidad.
Incidente Æ Suceso ∧ {Restricciones} ó Incidente ⊆ Suceso ∧ {Restricciones}
Donde Restricciones equivale a la conjunción de todas aquellas restricciones sobre las propiedades que de manera local afectan al concepto de Incidente.
Por tanto, cualquier sistema de razonamiento podrá inferir que si “algo” es un incidente, de igual manera será también un Suceso y además deberá cumplir las restricciones (requerimientos) que completan su especificación.
En la figura 6.11 se describe la especificación del concepto “Incidente”.
Figura 6.11 Definición del término “Incidente”
Como se observa, se han empleado los dos tipos de propiedades que permite OWL para representar los parámetros que describen una incidencia: propiedades de tipo objeto, las cuales toman como rango otras clases de la misma ontología (suc_nivel_servicio) o clases definidas en diferentes ontologías de conceptos de tráfico (por ejemplo provincia o causa), y también propiedades de tipo datatype de XML Schema.
El hecho de hacer uso de namespaces o URI´s hará posible la reutilización o relación de conceptos ya especificados en otros subdominios, de tal manera que estos URI´s deberán de darse explícitamente en la especificación.
La figura 6.12 muestra la especificación de concepto “Incidente” en la ontología de “Sucesos”:
Class INCIDENTE ObjectProperty carretera ObjectProperty suc_nivel_ servicio ObjectProperty fechaincide ncia ObjectProperty provincia ObjectProperty sentido ObjectProperty poblacion Restriction Restriction Restriction Restriction Restriction Restriction subClassOf subClassOf subClassOf subClassOf subClassOf subClassOf onProperty onProperty onProperty onProperty onProperty onProperty 1 1 1 1 cardinality cardinality cardinality cardinality cardinality domain domain domain domain domain domain Class Time# Date Class Sucesos# Nivel_ Servicio Class Geografia# Provincia Class Geografia# Poblacion Class Localizacion# Sentido range range range range range DataTypeProperty pKini DataTypeProperty pKfin DataTypeProperty hacia Restriction Restriction Restriction domain domain subClassOf subClassOf subClassOf onProperty onProperty onProperty xsd: decimal xsd: String cardinalityQ 1 hasClassQ 1 cardinalityQcardinalityQ hasClassQ hasClassQ range range range domain Class Vias# Via range Class Relaciones _Sucesos# Causa Class Tipo_ Incidente ObjectProperty causa ObjectProperty tipo_ Incidencia domain range range Class Localizacion# Lugar_Geografico range Class Time# Time Restriction ObjectProperty horainiincide ncia domain range 1 onProperty subClassOf cardinality domain domain Restriction subClassOf 1 onProperty cardinality subClassOf onProperty cardinality Restriction Restriction onProperty cardinality cardinality subClassOf samePropertyAs Property geo/ wgs84_pos#lat Property geo/ wgs84_pos#long DataTypeProperty latitud DataTypeProperty longitud samePropertyAs
Figura 6.12 Esquema “Incidente”.
En el esquema anterior se aprecian las numerosas relaciones entre diferentes subdominios.
De esta forma y tal y como se comentó al hablar de la entidad Causa (especificada en un subdominio diferente al de Incidente), en la implementación podemos encontrarnos con la siguiente especificación:
<sucesos:causa rdf:resource= …/Relaciones_Sucesos#DESPRENDIMIENTOS>
<owl:Class rdf:about="http://localhost/OWL_files/Sucesos.owl#Incidente"> <rdfs:label>INCIDENTE</rdfs:label>
<rdfs:comment><![CDATA[Esta clase define el tipo o categoría "incidente" de entre los tres tipos de sucesos establecidos: Incidente, Accidente y Medida. Sus propiedades identifican claramente su localización, así como también el instante de tiempo, nivel de servicio etc.]]></rdfs:comment>
<rdfs:subClassOf>
<owl:Class rdf:about="http://localhost/OWL_files/Sucesos.owl#Suceso"/> </rdfs:subClassOf>
<rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource="http://localhost/OWL_files/ Sucesos.owl#carretera"/>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/ XMLSchema#nonNegativeInteger">1</owl:cardinality>
</owl:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction>
<owl:onProperty rdf:resource="http://localhost/OWL_files/ Sucesos.owl#fechaincidencia"/>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/ XMLSchema#nonNegativeInteger">1</owl:cardinality>
</owl:Restriction> </rdfs:subClassOf> . . .
<owl:ObjectProperty rdf:about="http://localhost/OWL_files/Sucesos.owl#fechaincidencia"> <rdfs:comment><![CDATA[Propiedad que indica la fecha en la que ocurre una incidencia]]></rdfs:comment>
<rdfs:label>FECHA_INCIDENCIA</rdfs:label> <rdfs:domain>
<owl:Class rdf:about="http://localhost/OWL_files/Sucesos.owl#Incidente"/> </rdfs:domain>
<rdfs:range>
<owl:Class rdf:about="http://localhost/OWL_files/Time.owl#Date"/> </rdfs:range>
</owl:ObjectProperty> ...
<owl:DatatypeProperty rdf:about="http://localhost/OWL_files/Sucesos.owl#latitude"> <rdfs:label>latitude in WGS84</rdfs:label>
<owl:samePropertyAs rdf:resource="http://www.w3.org/2003/01/geo/wgs84_pos#lat"/> </owl:DatatypeProperty> . . . </owl:Class> Especificación de la propiedad "fechaincidencia" Especificación de la clase “Incidente” Restricción de cardinalidad sobre la propiedad “carretera” Restricción de cardinalidad sobre la propiedad “fechaincidencia”
Concepto “Date” como rango de la propiedad “fechaincidencia” Concepto “Incidente” como dominio de la propiedad “fechaincidencia” Concepto “Incidente”
como clase hija del concepto “Suceso”
Propiedad “latitud” como propiedad
equivalente de
wgs84_pos#lat
Figura 6.13 Especificación en OWL del subdominio ontológico “Sucesos”.
Esta ontología, también recoge otros conceptos importantes, como son el concepto Prevision (carácter de un suceso) y los conceptos Restricciones_Mercancias_Peligrosas y Restricciones_Vehiculos_Pesados como subclases del concepto Restricciones definido en la ontología. Ver figuras 6.14, 6.15 y 6.16.
Figura 6.14 Esquema Restricciones a vehículos pesados.
Figura 6.16 Esquema del concepto Previsión de tráfico.