4. Results and Discussions
4.2 Repellency & Durability
4.2.2 Polyester/Cotton
Aunque las ontologías y diagramas de clases UML tienen muchas características en común, existen construcciones que solo pertenecen a uno de los dos modelos. El trabajo de (Xu et al., 2009) solo se enfoca hacia las construcciones del diagrama de clases UML que permiten representar información ontológica, como clases, asociaciones entre clases, atributos, rol, multiplicidad, generalización entre clases, se descarta la generalización entre asociaciones, y restricciones de disjuntos o cubrimiento presentes en la generalización. Otras construcciones de UML se ignoran porque el objetivo de los lenguajes ontológicos como OWL DL no tienen suficiente expresividad para soportar o construcción apropiada para capturar su semántica.
2.4.1 Formalización matemática para diagramas de clases UML
Los diagramas de clases UML pueden ser formalizados en términos de Lógica de Primer Orden o Descripción Lógica (Berardi et al., 2005, Calvanese et al., 1999) y sobre la base de esta idea formalizan:
Un diagrama de clases UML lo define como U=(LU,attU,assU,multU,geneU,dsjtU,covrU) donde LU=CUAUSURU TU, es un alfabeto finito particionado en CU un conjunto de símbolos de clases, incluyendo las clases de asociaciones; AU un conjunto de símbolos de atributos; SU un conjunto de asociaciones; RU conjunto de roles; TU un conjunto de tipos de datos, cada TTU tiene una asociación predefinida a tipos de datos básicos.
attU: CU[ AUxTU]
assU: SU[RUxCU] Asumen sin perder generalidad que (i) cada rol se especifica exactamente a una asociación en una clases participante, (ii) para cada rol RRU, existe una asociación SSU y CCU tal que ass(S)=[…,R:C,…] La función asigna una colección de roles a cada asociación, determinando implícitamente la n-aridad de la asociación.
multU:(CUxSUxRU)(TUxCUxAU)N0x (N1(Lee et al.)) donde N0 son los enteros no negativos y N1 son los enteros positivos.
La primera componente de multU la denomina minmultU que representa la cardinalidad mínima, mientras que la segunda componente maxmultU representa la cardinalidad máxima. La función restringe la cantidad mínima y máxima de veces que una instancia de una clase puede participar en una asociación a través de algún rol o cuantos valores de un tipo de dato puede tener un atributo de una clase. Si sólo se especifica un valor, se considera que el valor de minmult y maxmult coinciden. Si no se especifica se considera que el valor de minmult es cero y el de maxmult es para los roles, pero para los atributos se asume que siempre es el mismo e iguala 1.
geneUCxC es una relación binaria inyectiva y acíclica sobre C que modela la relación de generalización, como varias clases pueden tener una superclase en común entonces pueden ser agrupadas en un conjunto: C1geneUC, C2geneUC,… CngeneUC donde C1, C2,… CnCU.
dsjtUCU1xCU2x… xCUm donde CUi=CU, i=1,2,..m, m2 es una relación m-aria sobre CU que modela una restricción de disyunción sobre un conjunto de generalización, o sea, que las subclases en el conjunto de generalizaciones no tienen instancia alguna en común.
covrUCU1xCU2x… xCUmxCU donde CUi=CU, i=1,2,..m, m2 es una relación m+1-aria sobre CU que modela una restricción de cubrimiento, o sea, el conjunto de subclases es cubierto por la superclase, cada instancia de la superclase también es instancia de la menos una subclase.
2.4.2 Algoritmo de traducción
La transformación se sustenta en un conjunto de correspondencia entre ambos modelos.
Un paquete UML se corresponde con una ontología OWL, el nombre del paquete se corresponde con el espacio de nombre de la ontología.
Una Clase UML se corresponde con una clase OWL (puede ser nombrada clase entidad).
Una asociación UML entre dos o más clases se corresponde con una clase OWL (puede ser nombrada clase relación).
Un atributo UML de una clase se corresponde con un propiedad de dato cuyo dominio es la clase OWL correspondiente a la clase UML y el rango el predefinido en el esquema XML correspondiente tipo de dato.
Un rol de una asociación UML se representa a través de una propiedad de objeto entre dos clases, donde una representa a una asociación y la otra una clase UML. La multiplicidad, una característica que va ligada al rol, se define a través de las restricciones de cardinalidad (mínima y máxima) que se asocia la propiedad de objeto que representa al rol.
Una generalización UML se hace corresponder con la estructura subClassOf. Las diferentes restricciones de disjoint y covering presentes en una generalización se representara a través de las estructuras DisjointClasses y EquivalentClasses respectivamente.
Debe notarse que en UML el alcance de un atributo está limitado a la clase en que se define, de ese modo el nombre de un atributo no tiene por qué ser único dentro del diagrama, cada vez que aparezca tendrá un significado o semántica diferente. De manera análoga el nombre de las asociaciones no tiene por qué ser único. Sin embrago, en OWL todas las clases y propiedades tienen un nombre único y unívocamente identificadas por referencias URI, esta incompatibilidad debe ser tratada en el proceso de traducción renombrado y globalizando los identificadores.
Sobre la base de las correspondencias semánticas antes mencionadas, el autor propone este algoritmo:
Algoritmo U2OTrans (U)
Salida: La ontología OWL DL en sintaxis abstractaO= (IDO,AxiomO)=φ(U) definiendo la traducción a través de una funciónφ: U O, de modo que IDO =φ(LU) y AxiomO
=φ(attU,assU,multU,geneU,dsjtU,covrU)
Pasos:
1. Se traducen los símbolos UML a identificadores OWL:
1.1. por cada símbolo de clase C∈CU se crea un identificador de clase φ(C)∈CIDO
1.2. por cada símbolo de asociación S∈SU,S∉CUse crea un identificador de clase φ(S)∈CIDO 1.3. por cada símbolo de atributo A∈AU se crea un identificador de tipo de dato φ(A)∈ DPIDO
1.4. por cada símbolo de tipo de dato T∈TU se crea un identificador de rango de dato
φ(T)∈DRIDOpor ejemplo mapearlo a un tipo de dato predefinido en la referencia de esquema XML
1.5. por cada símbolo de rol R∈RU crear dos identificadores para un par de mutuamente inversas propiedades objetos φ(R)∈OPIDOy V=inv_φ(R)∈OPIDO donde “inv_” es un símbolo no
terminal parte de los identificadores.
2. Se traducen los elementos de UML a axiomas OWL:
2.1. Por cada clase C∈CU tal que attU(C)=[A1:T1,…,Ah:Th], A1,…,Ah∈AU,T1,…,Th∈TU,h≥1, 2.1.1. crear un axioma de clase:
Class(φ(C)partial
restriction(φ(A1)allValuesFrom(φ(T1))) cardinality(1)...
restriction(φ(Ah)allValuesFrom(φ(Th)) cardinality(1))).
(
I)
2.1.2. FORi=1 ..h DO
crear un axioma de propiedad:
DatatypeProperty(φ(Ai)domain(φ(C)) range(φ(Ti)); (II)
IF(l←minmultU(Ti,C,Ai);l≠0)THEN
reemplazar la restricción de cardinalidad en φ(Ai)
generada en (i) por minCardinality(l); (III)
IF(u←maxmultU(Ti,C,Ai);u≠∞)THEN
reemplazar la restricción de cardinalidad en φ(Ai)
generada en (i) por maxCardinality(u)). (IV)
2.2. Por cada asociación S∈SUtal que assU(S)=[R1:C1,…,Rn:Cn],R1,…,Rn∈RUC1,…,Cn∈CU,n≥2 2.2.1. crear un axioma de clase:
Class(φ(S) partial
restriction(φ(R1)allValuesFrom(φ(C1)) cardinality(1))...
restriction(φ(Rn) allValuesFrom(φ(Cn) ) cardinality(1))). (V) 2.2.2. FORi=1 ..n DO
crear axioma depropiedad y clase:
ObjectProperty(Vi domain(φ(Ci))range(φ(S)) inverseOf(φ(Ri))); (VI) Class(φ(Ci)partial restriction(Vi allValuesFrom(φ(S)))). (VII) 2.3. Por cada rol R∈RUtal que assU(S)=[…,R:C,…],S∈SU,C∈CU,
2.3.1. crear un axioma de propiedad:
ObjectProperty(φ(R)domain(φ(S))range(φ(C)); (VIII)
2.3.2.
IF(l←minmultU(C,S,R);l≠0)THENadicionar restricción de cardinalidad a la restricción de
IF(u←maxmultU(C,S,R);u≠∞)THEN
adicionar restricción de cardinalidad a la restricción de
propiedad de V generada en (VII)por maxCardinality(u). (X)
2.4.
Para cada conjunto de generalización C1 geneU C,C2 geneU C,...,Cm geneU C,
donde C1,C2,…,Cm,C∈ CU, m≥1
2.4.1. FORi=1 ..m DO
crear axioma de clase:
Class(φ(Ci) partialφ(C)); (XI)
2.4.2. IFdsjtU(C1,…,Cm),THEN
crear axioma de clase:
DisjointClasses(φ(C1)…φ(Cm)); (XII)
IFcovrU(C1,…,Cm,C),THEN
crear axioma de clase:
EquivalentClasses(φ(C)unionOf(φ(C1)…φ(Cm))). (XIII)
El algoritmo propuesto implementa el conjunto de correspondencias especificadas. La ontología se construye en la sintaxis abstracta OWL, pero es posible fácilmente traducir el resultado al lenguaje de intercambio basado en RDF/XML sobre la base de las reglas de mapeo establecidas por las especificaciones de W3C (World Wide Web Consortium) en (2004).