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.).
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).
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>
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.
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.
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.
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.
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.
Armando mi propia ontologia simple https://gist.github.com/orlybg/5013552
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.