ESPECIFICACIÓN DE RESTRICCIONES Y DE COMPORTAMIENTO EN OWL
5.3 El Lenguaje SWRL .1 Introducción y Objetivos
5.3.3 Expresividad y otras características
Como se ha indicado, SWRL permite incorporar cláusulas de horn. Estas se tratan de reglas del tipo si se verifica el antecedente, entonces también debe verificarse el
consecuente. Algunas de las reglas o restricciones que se pueden construir con SWRL también pueden crearse con OWL, teniendo en cuenta que su ámbito de expresividad se solapa en parte.
Definición de condiciones complejas
SWRL permite la definición de condiciones complejas a cumplir en el antecedente de las reglas, mediante la utilización de los built-ins, el operador AND, y la utilización de átomos: átomos referidos a propiedades concretas, átomos referidos a clases y relaciones entre ellas, rangos de datos, propiedades valuadas, o funciones propias de tipo matemático, cadenas de caracteres o fechas. El uso de variables en los átomos permite definir restricciones que no son posibles en RDF o en OWL.
Fórmulas lógicas de primer orden
En lógica de primer orden, una cláusula de implicación puede incluir el uso de operadores básicos tanto en el antecedente como en el consecuente: OR, AND, NOT, y otros derivados como XOR, etc. Ello permite la definición de fórmulas arbitrarias con cualquier composición de expresiones (p.e.: A OR (B AND NOT C) AND (D OR C)).
Sin embargo, SWRL no incluye los operadores NOT ni OR para la definición de los átomos, lo que limita su expresividad. En el seno del W3C existe una propuesta de extender SWRL para poder definir este tipo de fórmulas lógicas de primer orden llamada SWRL-FOL [Patel-Schneider05], pero se trata de momento de una propuesta poco difundida.
No obstante, mediante determinadas transformaciones, es posible conseguir un grado de expresividad casi tan alto como el de las reglas lógicas de primer orden. En el caso de la condición de la regla SWRL, existe la posibilidad de conseguir expresar una regla con una fórmula lógica de primer orden en el antecedente mediante varias reglas SWRL [Prieto06]:
• Hallar el desarrollo en maxterms equivalente de la expresión lógica, es decir, una expresión donde sólo hay dos niveles de operadores binarios, las negaciones sólo se aplican a términos irreductibles (los átomos), los operadores de primer nivel son OR y los de segundo nivel son AND. Un ejemplo sería A OR (B AND NOT(C)) OR
(NOT(D) AND NOT(E)) OR NOT(F), donde las letras mayúsculas representan los átomos, que son los términos irreductibles.
• Definir una regla SWRL diferente con cada operando asociado al operador OR y con el consecuente de la expresión completa. Nótese que la existencia de átomos concatenados mediante el operador AND no es ningún problema, ya que así es como se especifica el antecedente de forma interna en las reglas SWRL
• Por último, convertir las negaciones de átomos individuales en átomos simples. Para ello, hay que tener en cuenta el tipo de átomo concreto:
o Para los átomos de clase (indican la pertenencia de un ejemplar a una clase) es necesario definir una nueva clase auxiliar como complemento de la clase de interés.
o Para los átomos de propiedad (indican que un par sujeto-objeto verifica una propiedad), es necesario:
Si la propiedad es de tipo ObjectProperty, entonces hay que sustituir el ejemplar que desearíamos que apareciese como objeto del átomo negado por una variable, y crear un nuevo átomo de desigualdad entre esta variable y el ejemplar de interés.
Si la propiedad es de tipo DatatypeProperty, entonces el mecanismo es similar, pero ahora se necesita recurrir a un átomo built-in de desigualdad para establecer la desigualdad entre ambos literales tipados.
o Para los átomos de igualdad y desigualdad entre ejemplares, basta con utilizar el contrario a cada uno de ellos.
o Para átomos built-in (distintas operaciones con literales tipados), es necesario crear variables y mediante un nuevo átomo built-in de desigualdad establecer explícitamente la distinción entre ambos.
En cuanto al consecuente, en el caso de requerir el uso de operadores OR dentro del consecuente, no existe ningún método automático para hallar un conjunto de reglas SWRL equivalente. Se puede estudiar la posibilidad de definir lo mismo mediante las siguientes estrategias:
• Utilización de varias reglas auxiliares para tratar de trasladar el consecuente a los antecedentes de éstas, y sustituyendo los antecedentes complejos por otros más simples.
• Explotar los mecanismos de definición de clases para crear nuevas clases auxiliares y utilizarlas en las reglas SWRL. Por ejemplo, si se desea establecer en un consecuente que un recurso (ejemplar) es de un tipo (clase) u otro, basta con definir una nueva clase auxiliar como unión de las dos anteriores. Si lo que se desea es establecer que un recurso (ejemplar) debe tener como valor de un atributo (propiedad) uno u otro, basta con definir una nueva clase mediante la unión de dos restricciones de valor, y sustituir el consecuente objetivo por un átomo de clase que establezca que el recurso pertenece al nuevo tipo creado.
De esta forma se permite una gran expresividad en cuanto a la composición de las clases que aparezcan en el consecuente de las reglas. En comparación con las restricciones de OWL expuestas en el apartado anterior:
- Las restricciones de OWL funcionan relativamente bien cuando se trabaja con propiedades de tipo owl:ObjectProperty, pues permiten indicar los ejemplares que pueden existir de una determinada clase, ya que están orientadas a hacer razonamientos de tipo clasificativo. No obstante, la expresividad de SWRL es muy superior en cuanto al conjunto de operaciones y funciones que permite representar en el antecedente de la regla, como se ha visto en la descripción de tipos de átomos, frente a las permitidas en la cláusula owl:restriction
- En cuanto a restricciones sobre propiedades de tipos de datos (owl:DatatypeProperty), mientras que OWL no permite fácilmente las restricciones para permitir rangos de valores arbitrarios, SWRL sí permite, mediante la utilización de los built-ins y funciones (propiedades de las ontologías) en el antecedente o condición, la especificación de este tipo de restricciones con una mayor riqueza y amplitud
- No obstante, la utilización de un gran número de características para la restricción de los tipos de datos pueden resultar en reglas demasiado largas y complejas. Además, los built-ins de SWRL no incluyen muchas operaciones matemáticas complejas (como integrales). Para superar estas limitaciones, tal y como se indica en [Sanchez-Macian07], es posible integrar SWRL con algún lenguaje para representar objetos matemáticos, como OpenMath [Buswell04], a partir de un built-in genérico (mathext) que informa al motor de inferencia de la necesidad de aplicar una fórmula matemática mediante una llamada a una aplicación externa. Esta solución puede ser aplicada a cualquier problema que requiera de la representación
y aplicación de funciones matemáticas mediante ontologías, y permite la definición de rangos de valores mucho más complejos. Otras consideraciones en el uso de SWRL
Es necesario tomar precauciones a la hora de utilizar SWRL. Para incrementar la interoperabilidad, reutilización, extensibilidad, escalabilidad de implementación o facilidad de uso de SWRL, puede ser necesario restringir la expresividad de las reglas. La restricción más útil y común es obligar a que las clases empleadas en los átomos estén referenciadas por nombres [Grossof03b]. OWL permite definir las clases a partir de restricciones, uniones, intersecciones, etc., y el estándar de SWRL no impide incluir estas descripciones de clase en las propias reglas. Con esta restricción, se consigue que las reglas SWRL sean estrictamente claúsulas de horn. Esto aporta los siguientes beneficios:
• Se maximiza la interoperabilidad con herramientas que sólo soportan OWL, ya que toda la información relativa a las clases está en formato OWL exclusivamente • Se maximiza la interoperabilidad con programas lógicos, al ser reglas
exclusivamente de tipo horn.
• Se facilita la implementación de los intérpretes de OWL+SWRL • Se facilita la interoperabilidad con posibles extensiones lógicas futuras
Para aprovechar estos beneficios, a lo largo de esta tesis se seguirá esta recomendación de no utilizar estas construcciones.