• No results found

Arguments for the Referential Analysis

Las reglas de transformación tienen dos cometidos, controlar que el contenido de los recursos de entrada se transforme correctamente a una representación basada en el modelo de salida, y controlar la redundancia de datos en el

proceso de transformación. Se denen dos tipos de reglas, de correspondencia y de identidad.

7.1.2.1 Reglas de correspondencia

Las reglas de correspondencia se basan en la relación de congruencia. En el modelo de transformación, se dene la relación de congruencia de una entidad a respecto a otra entidad b como la relación lógica que garantiza que se puede obtener a a partir de b y a será consistente respecto a su modelo de representación y respecto a b. Las reglas de correspondencia denen las relaciones de congruencia de las entidades del modelo de salida S respecto a las entidades del modelo de entrada E, es decir, una entidad C1 del modelo

de salida es congruente a una entidad C2 del modelo de entrada, si cualquier

instancia de C1, creada a partir de información asociada a una instancia de

C2, es lógicamente consistente respecto al modelo de salida y su denición es

consistente respecto a la instancia de C2.

El conjunto de reglas de transformación R está formado por una serie de reglas que se denen como qE 7→ qS, donde qE es una consulta en base al

modelo de entrada E y qS una consulta en base al modelo de salida S, de

manera que una regla expresa que las instancias que satisfacen la consulta qE

son congruentes con las instancias que satisfacen la consulta qS. Si denimos

qIE como el conjunto de instancias que cumplen q

E según el modelo E y qIS

como el conjunto que cumplen qS según el modelo S, se cumple:

qIE ⊆ I

E, qIS ⊆ IS; ∀tS ∈ qIS, ∃tE ∈ qIE | tS ∼= tE (7.3)

Es decir, las reglas de transformación denen dos consultas que se tra- ducen en la obtención de individuos de ambos modelos congruentes entre sí.

Las reglas de correspondencia son unidireccionales, es decir, dan la infor- mación suciente para que el modelo de transformación obtenga las instancias del repositorio de entrada necesarias para crear las instancias congruentes en el modelo de salida. De esta forma, en la ecuación 7.3, tS ∼= tE signica que

parte de los datos en tE han sido utilizados para construir su congruente tS

en el modelo de salida S.

La creación en el modelo S de instancias que cumplan los criterios para pertenecer al conjunto IS requiere denir consultas qE y qS de distinta com-

plejidad para cubrir todos los componentes de una instancia. Atendiendo a la naturaleza de las consultas qS, se denen tres tipos de reglas de correspon-

7.1. Denición del modelo de transformación 125 Reglas de clase. Son el conjunto de reglas que enlazan entidades del mo- delo de entrada con entidades del modelo de salida. Las consultas qE, qS en

estas reglas crean la correspondencia entre una entidad del modelo de entra- da y una entidad del modelo de salida. Una regla de clase entre una entidad C1 del modelo de entrada y una entidad C2 del modelo de salida se formaliza

como:

Regla_clase(C1, C2) : ∀i1 ∈ C1, ∃i2 ∈ C2 | i1 ∈ IE, i2 ∈ IS, i2 ∼= i1 (7.4)

En la ecuación 7.4 vemos que para todo individuo i1 en el repositorio

de entrada que sea instancia de la entidad C1, se crea un nuevo individuo

congruente i2, que es instancia de la entidad C2.

Reglas de propiedad. Las reglas de propiedad enlazan un atributo de una entidad del modelo de entrada con un atributo de una entidad del modelo de salida, de esta manera la regla permite dar valores a las propiedades de los nuevos individuos creados. Las consultas qE, qS en estas reglas se denen

cada una a través de una entidad de los modelos de entrada y uno de sus atributos enlazados. Una regla de propiedad entre un atributo A1 asociado

a una entidad C1 del modelo de entrada y un atributo A2 asociado a una

entidad C2 del modelo de salida se formaliza como:

Regla_propiedad((C1, A1), (C2, A2)) : ∀i1 ∈ C1, ∃i2 ∈ C2 |

value(C1, A1, i1) = value(C2, A2, i2) (7.5)

En la ecuación 7.5 vemos que para toda instancia de C1en el repositorio de

entrada, que tenga un valor para el atributo A1, existe una nueva instancia

congruente i2 de la clase C2, con el mismo valor para una propiedad A2

congruente con A1.

Reglas de relación. Estas reglas enlazan una relación utilizada para aso- ciar dos entidades del modelo de entrada con una relación que asocie dos entidades del modelo de salida, de esta manera la regla permite relacionar dos nuevos individuos creados. Las consultas qE, qS en estas reglas se denen

cada una a través de dos entidades y una relación. Una regla de relación entre una regla R1 que enlaza dos entidades CE1 y CE2 del modelo de entrada, y

una relación R2 que enlaza dos entidades CS1 y CS2 del modelo de salida, se

Regla_relacion((CE1, R1, CE2), (CS1, R2, CS2)) :

regla_clase(CE1, CS1) ∧ regla_clase(CE2, CS2)

∧ {∀iE1 ∈ CE1, iE2 ∈ CE2, ∃iS1∈ CS1, iS2∈ CS2|

relacion(iE1, R1, iE2), relacion(iS1, R2, iS2)}

⇒ R2 ∼= R1 (7.6)

En la ecuación 7.6 vemos que si para dos entidades del modelo de entrada CE1 y CE2, cuyos individuos se asocian a través de una relación R1, se cumple

la regla de clase, es decir, para cada individuo de CE1 y de CE2 existe un

individuo congruente en el modelo de salida, entonces también existe una relación R2 en el modelo de salida que asocie dichos individuos congruentes.

7.1.2.2 Patrones de transformación

Las reglas básicas de correspondencia anteriormente planteadas son, en al- gunos casos, insucientes. Por un lado, transformar las instancias de datos a una representación de salida con una semántica precisa puede requerir infor- mación que no está explícita en los datos de entrada. Esto está relacionado con las limitaciones semánticas de algunos formalismos como XML o las bases de datos relacionales. Por ejemplo, puede ser necesario añadir una propiedad adicional a todas las instancias transformadas de una entidad del modelo de entrada, para así enriquecer su semántica. Por otro lado, puede ocurrir que una regla de correspondencia requiera crear varias instancias y sus relaciones entre sí, bajo condiciones especícas, lo cual no se puede hacer con las reglas de clase, propiedad y relación. Por ejemplo, crear una instancia a relaciona- da con una instancia b, sólo en el caso de que b esté relacionada con una instancia c.

Para dar una solución a este problema, se ha adaptado la aproximación de ingeniería del software e ingeniería ontológica, en las que se denen patrones para facilitar la construcción de software o de ontologías por medio de la modularización y reutilización de componentes (ver sección 3.2.3.1).

Los patrones en el modelo de transformación son plantillas sobre el modelo de salida que se denen para diferentes situaciones de modelado. Representan parte o la totalidad de la denición de una entidad en el modelo de salida, situándose entre el modelo de entrada y el modelo de salida a la hora de denir las correspondencias entre ambos y creando una vista que aísla al usuario de la complejidad del modelo de salida. Los patrones permiten denir correspondencias más complejas de manera más simple. Son plantillas cuya

7.1. Denición del modelo de transformación 127 aplicación a un conjunto de datos genera instancias en el modelo de salida. Se diseñan utilizando un conjunto prejado de entidades, atributos, relaciones y asociaciones del modelo de salida, que junto a una serie de variables que parametrizan instancias de entidades y valores de atributos, crean plantillas de reglas.

Un patrón se formaliza como la tupla h S0, V , P

R i, donde se cumple:

• S0 ⊂ S, es decir, todas las entidades, atributos, relaciones, instancias

y asociaciones denidas en el patrón en S0 son un subconjunto de las

que componen el modelo de salida S.

• V es el conjunto de variables que parametrizan la instancia de una entidad o el valor de un atributo del conjunto S0.

• PR es el conjunto de plantillas de reglas. Un patrón se dene a partir

de las asociaciones entre los elementos del conjunto S0 y las variables

del conjunto V . Aquellas asociaciones en las que estén implicadas las variables generan una serie de plantillas de reglas para denir reglas de correspondencia entre elementos del modelo de entrada y las variables del patrón. Las plantillas permiten que para cualquier tipo de regla sólo se tengan que especicar los elementos del modelo de entrada y las variables del patrón. El resto de información, como los elementos del modelo de salida involucrados, es aportado por la plantilla.

Las ecuaciones 7.7, 7.8 y 7.9 muestran las plantillas tipo para una regla de clase, una regla de propiedad y una regla de correspondencia que forman parte de la denición de un patrón.

Dada una entidad C1 del modelo de entrada y una variable V2 que para-

metriza las instancias de la entidad C2 ∈ S0, congruente a C1, se cumple:

P lantilla_regla_clase(C1, V2){

V2 ∈ C2∧ ∀i1 ∈ C1∃i2 ⊆ V2 | i2 ∼= i1} (7.7)

Es decir, la plantilla dene una correspondencia de clase entre C1 y C2.

Para ello sólo requiere la especicación de la entidad del modelo de entrada (C1) y la variable del patrón (V2). De la información del patrón obtiene que

V2 parametriza las instancias de C2. Como resultado, por cada instancia i1

de C1 en el repositorio de entrada, se creará una instancia i2 de C2 en el

repositorio de salida, que será congruente con i2 y seguirá la denición de V

Dada una entidad C1 y un atributo A1 del modelo de entrada y una

variable V que parametriza los valores de la entidad C2 congruente a C1 para

el atributo A2 congruente a A1, se cumple:

P lantilla_regla_propiedad((C1, A1), (V2, V 3)){

V2 ∈ C2∧ ∀i1 ∈ C1, ∃i2 ⊆ V2 | value(C2, A2, i2) ⊆ V3∧

value(C1, A1, i1) = value(C2, A2, i2)} (7.8)

Es decir, la plantilla dene una correspondencia de propiedades entre (C1, A1) y (C2, A2). Para ello sólo requiere la especicación de la entidad y

el atributo del modelo de entrada (C1, A1) y la variable del patrón (V2). De

la información del patrón se obtiene que V2 parametriza los valores de las

instancias de C2 para el atributo A2.

Dadas las entidades C1, C2 y su relación R1 del modelo de entrada y las

variables V3 y V4 que parametrizan las instancias de las entidades C3 y C4,

pertenecientes a S0 y congruentes a C 1 y C2 respectivamente, se cumple: P lantilla_regla_relacion((C1, R1, C2), (V3, V4)){ V3 ∈ C3∧ V4 ∈ C4∧ P lantilla_regla_clase(C1, V3)∧ P lantilla_regla_clase(C2, V4)∧ {∀i1 ∈ C1, i2 ∈ C2, ∃i3 ⊆ V3, i4 ⊆ V4 | relacion(i1, R1, i2) ∧ relacion(i3, R2, i4)} ⇒ R2 ∼= R1} (7.9)

Es decir, la plantilla dene una correspondencia de relación entre (C1, R1,

C2) y (C3, R2, C4). Para ello sólo requiere la especicación de las entidades

y relación del modelo de entrada (C1, R1, C2) y las variable del patrón (V3,

V4). De la información del patrón obtiene que V3 parametriza las instancias

de C3 y V4 las instancias de C4, además de que existe R2 que asocia C3 y C4.

7.1.2.3 Reglas de identidad

Las reglas de identidad denen el conjunto de atributos y relaciones que per- miten identicar de forma inequívoca cada instancia en el conjunto de datos de salida. Estas reglas se utilizan para evitar la redundancia en la creación de nuevos individuos. Esta característica da soporte a la transformación de dis- tintos repositorios de entrada en un mismo repositorio de salida, ya que una

7.2. Aplicación a una representación semántica en OWL 129