Skip to content

OWL: el lenguaje de ontologías web del W3C

2012 diciembre 18
by classora

Con este post finalizamos la descripción de los tres estándares fundamentales para la Web Semántica: RDF, SPARQL y OWL.

No obstante, dada su importancia en este texto, antes de seguir deberíamos recordar qué es una ontología, ya que se trata de un concepto que en algunas ocasiones es difícil de explicar:

Una ontología es un conjunto de reglas que permiten describir y representar el conocimiento de un determinado contexto o dominio. En la práctica, lo único que hacen estas reglas es definir conceptos básicos y las posibles relaciones entre ellos. Las ontologías son utilizadas por personas, bases de datos y aplicaciones software que necesitan utilizar o compartir información en un determinado sector (medicina, economía y finanzas, deportes… etc.).

Semantic Web Cloud

OWL: Web Ontology Language

Como su propio nombre indica, OWL es un lenguaje para crear ontologías en la Web. Si bien existían lenguajes ontológicos previos, especialmente destinados a temas científicos y aplicaciones de comercio electrónico, no fueron definidos para ser compatibles con la arquitectura de la World Wide Web en general, y de la Web Semántica en particular.

Para que la Web Semántica funcione, los ordenadores deben tener acceso a bases de conocimiento y conjuntos de reglas de inferencia que puedan utilizar para llevar a cabo un razonamiento automatizado. Sin embargo, la representación del conocimiento se encuentra actualmente en un estado comparable al del HTML antes del nacimiento de la Web: es claramente una buena idea, y existen algunas demostraciones prácticas prometedoras, pero todavía no se ha extendido ni ha cambiado el mundo. Para desarrollar todo su potencial debe existir un estándar y estar conectado a un sistema global único. El lenguaje OWL es ese estándar, ya que sin él, otros lenguajes como RDF perderían su potencia al representar conocimiento de manera aislada.

Como referencia para evaluar el esfuerzo que se está llevando a cabo en este sentido a nivel mundial, cabe destacar que detrás de OWL y de los demás estándares de la Web Semántica (RDF y SPARQL) están varias empresas y organizaciones punteras. Entre ellas figuran el Gobierno de los EEUU (a través de DARPA y la NSF) y la Unión Europea (mediante las infraestructuras de 5ª y 6ª generación del programa IST).

Un caso práctico de ejemplo

Veamos un ejemplo básico de OWL. Cabe destacar que, de manera estrictamente resumida, OWL permite definir clases, relaciones entre clases, atributos de clases e instancias de clases. Todos estos conceptos se corresponden o guardan una gran analogía con la Programación Orientada a Objetos (POO), y por supuesto, con la ontología de Classora. Por ejemplo, una clase «Persona» puede tener una subclase «Deportista», un atributo «lugar de nacimiento», y una instancia llamada «Fernando Alonso». ¿Cómo se modelaría esto?

Definimos las clases principales de la ontología
<owlx:Class owlx:name="Person" owlx:complete="false" />
<owlx:Class owlx:name="Region" owlx:complete="false" />

Definimos la clase «Deportista», hija de la clase «Persona»
<owlx:Class owlx:name="Sportsman" owlx:complete="false">
  <owlx:Class owlx:name="#Person" />  
</owlx:Class>

Definimos la clase «Piloto», hija de la clase «Deportista»
<owlx:Class owlx:name="Driver" owlx:complete="false">
  <owlx:Class owlx:name="#Sportsman" />  
</owlx:Class>

Definimos las propiedades de la clase «Piloto»
<owlx:ObjectProperty owlx:name="birthPlace"> 
  <owlx:domain owlx:class="#Driver" /> 
  <owlx:range owlx:class="#Region" /> 
</owlx:ObjectProperty> 
<owlx:DatatypeProperty owlx:name="birthYear">
  <owlx:domain owlx:class="#Driver" /> 
  <owlx:range owlx:datatype="&xsd;positiveInteger" /> 
</owlx:DatatypeProperty> 

Una vez definida esta ontología básica, es posible utilizarla para representar conocimiento estructurado. Por ejemplo, podemos crear instancias sobre ella utilizando los típicos tripletes de RDF, o bien aplicando directamente OWL:

Creamos un individuo o instancia de la clase «Piloto»
<owlx:Individual owlx:name="Fernando Alonso"> 
  <owlx:type owlx:name="Driver" />
  <owlx:ObjectPropertyValue owlx:property="birthPlace"> 
    <owlx:Individual owlx:name="#Oviedo" /> 
  </owlx:ObjectPropertyValue> 
  <owlx:DataPropertyValue owlx:property="birthYear">
    <owlx:DataValue owlx:datatype="&xsd;positiveInteger">1981</owlx:DataValue> 
  </owlx:DataPropertyValue>
</owlx:Individual> 

Utilización de OWL

Hoy en día existe ya un gran número de ontologías OWL disponibles en la Web. Por ejemplo, cabe destacar la biblioteca DAML, que contiene unos 250 ejemplos hechos con OWL o DAML+OIL (hay un conversor de DAML+OIL a OWL disponible online). Además se han publicado en OWL varias ontologías especialmente extensas y de interés general, como la ontología del cáncer, desarrollada por el Centro de Bioinformática del Instituto Nacional del Cáncer de los EEUU (contiene cerca de 17.000 términos relacionados con el cáncer) o la conocida ontología médica GALEN desarrollada en la Universidad de Manchester.

W3C - OWL

En cuanto a la utilización de OWL en ontologías generales (no necesariamente publicadas en Web) cabe destacar Dublín Core (Dublín Core en OWL), SUMO, FOAF y muchas otras ontologías sectoriales. Además. las principales bases de conocimiento en Internet (Freebase, DBPedia, Classora) suelen manejar ontologías propias en OWL o lenguajes afines.

Variantes de OWL

La especificación W3C incluye tres sublenguajes OWL, con diferentes niveles de potencia: OWL Lite, OWL DL y OWL Full (ordenados de menor a mayor potencia). Como consecuencia, cada uno de estas variantes contiene una extensión sintáctica de su predecesora más simple.

  • OWL Lite: fue diseñado como una versión simple de OWL, que permitiera representar las necesidades básicas de una ontología. Sin embargo, en muchos casos dicha simplificación derivó en una serie de limitaciones no deseadas, que poco a poco lo han ido aparcando.
  • OWL DL: fue diseñado para mantener la integridad de la información, facilitando a su vez la aplicación de algoritmos de razonamiento automático. OWL DL incluye todas las construcciones del lenguaje OWL, pero sólo se puede utilizar bajo restricciones controladas.
  • OWL Full: se basa en una semántica distinta a la de OWL Lite o OWL DL. Fue diseñado para preservar cierta compatibilidad con RDF-schema. Por ejemplo, en OWL Full una clase puede ser tratada simultáneamente como una colección de individuos y como entidad por derecho propio, lo que no está permitido en las otras versiones de OWL. Sin embargo, y como contrapartida, OWL Full puede generar bucles infinitos durante el razonamiento.

Información adicional

Como en otras ocasiones te recomendamos que contactes directamente con nosotros si quieres obtener más información sobre este tema. Sin duda OWL es uno de los estándares que mayor peso están cobrando en el futuro de Internet, y estar al tanto sobre él es algo que no sobra para ningún profesional del sector. Cuenta con Classora Technologies para estar informado.

4 Responses leave one →
  1. febrero 21, 2013

    Hola que tal, muchisimas gracias por su post, me ha ayudado mucho porque es bastante claro y sencillo.

    Trate de pasar su ‘codigo’ a un archivo entero, pero protege no me lo acepta, complemente lo que ponen aqui con el inicio de una ontologia entera que encontre http://www.bpiresearch.com/BPMO/2004/03/03/cdl/Countries

    Asi es como va https://gist.github.com/orlybg/5002090

    Protege me esta dando este error:

    org.semanticweb.owlapi.rdf.syntax.RDFParserException: [line=43:column=58] Cannot answer characters when object properties are excepted.

  2. febrero 22, 2013

    Armando mi propia ontologia simple https://gist.github.com/orlybg/5013552

  3. Javier permalink
    noviembre 10, 2015

    Hola amigos como puedo hacer una consulta a base de datos con código (OWML), la base de datos esta alojada en CPANEL,
    La idea es consultar e imprimir los datos en una tabla.

    Alguien me guía gracias por el aporte.

Trackbacks and Pingbacks

  1. Principales tecnologías utilizadas en los proyectos de enriquecimiento semántico | El Blog de Classora

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS