Aplicación empresarial de Ontologías Informáticas SWWS. 3ra Parte - (El Diseño)

Escrito por Javier Urrutia en September 9th, 2006

diseño En esta parte de la serie de post acerca de ontologías informáticas y como aplicarlas a la empresa, trabajaremos en el diseño de las formas mas interesantes en relación a utilizar este tipo de tecnologías en el ámbito empresarial. En particular, trabajaremos en el diseño conceptual y de arquitectura básica de Web Services Semánticos. Y como poder utilizarlos, que herramientas necesitamos, cual es mi propuesta de aproximación y que consideraciones deberemos tener para la fase de construcción a desarrollar en futuros post del tema.

En el post anterior escribí acerca de OWL-S y sus componentes como ontología para poder describir un Web Service. Ahora veremos en la practica como se utiliza para el descubrimiento de Servicios Web de forma automática. Para ello necesitaremos, para no partir desde cero, de alguna api o framework que provea distintos componentes para ello. Desde el repositorio de ontologías hasta el razonamiento de lógica descriptiva que también vimos anteriormente.


jena

Mi mejor candidato para ello es Jena. Un Framework en Java OpenSource que provee la mayoría de los elementos básicos que necesitamos, y OpenSource por supuesto. Jena es un muy buen candidato ya que incluye muchas APIs y utilidades a requerir en trabajos de aplicaciones semánticas en Java. Adicionalmente Jena, no se limita a sus propias soluciones, incluye componentes de tipo Plug-In e interfaces con otras soluciones externas, de manera de poder conectar a Jena con un razonador independiente si se requiere. Por si los que incluye Jena no le satisfacen.

DigJena

Aquí esta el diagrama base del Estándar de interfase que define Jena para comunicarse con razonadores o motores de inferencia, el mismo es llamado DIG (Description logic reasoner interface).

Otras gracias de Jena es que provee soporte para RDF, OWL y otros estándares de semántica informática, incluyendo un motor de SPARQL para consultas de este tipo llamado ARQ. Además Jena Incluye una variedad de tipos de razonadores; Transitivo, en base a reglas RDFS, para OWL, para DAML y un Razonador genérico para reglas. Dada esta potencia y flexibilidad en Jena, llegado el momento de requerir de inferencias, se tendrá que manejar el modelo de uso según la elección que tengamos. Para ello Jena provee el siguiente modelo en cuanto al uso de sus motores de inferencia.

modelojena

Acompaño aquí un ejemplo de código java llamando componentes de la Api de Jena, utilizando el modelo OWL y su razonador, muy básico el ejemplo.

  1. <br />Model schema = ModelLoader.loadModel(&quot;file:data/owlSchema.owl&quot;);    <br />Model data = ModelLoader.loadModel(&quot;file:data/owlData.rdf&quot;);    <br />Reasoner reasoner = ReasonerRegistry.getOWLReasoner();    <br />reasoner = reasoner.bindSchema(schema);    <br />InfModel infmodel = ModelFactory.createInfModel (reasoner, data);    <br />Resource nForce = infmodel.getResource(&quot;urn:x-hp:eg/nForce &quot;);    <br />System.out.println(&quot;nForce *:&quot;);    <br />printStatements(infmodel, nForce , null, null);    <br />

En este ejemplo se busca inferir todo sobre la instancia "nForce".

Quiero detenerme en este punto para hablar de SPARQL , su uso y las confusiones que se producen al hablar de consultas, inferencias o reglas. Y que entendemos por razonamiento mediante motores de inferencia o razonadores de lógica descriptiva. Aunque ya hablamos de esto en el post anterior, me parece muy pertinente aclarar estos temas:

SPARQL puede ser usado para consultar a documentos en RDF Schema o OWL, de forma de filtrar ciertos individuos que cumplen con ciertas características especificas. De esta forma SPARQL puede generar los siguientes tipos de consulta:

Consultas de Selección:
query11.png

Consultas de Reestructuración:
query2.png

Consultas de Inferencia:
query3.png

La confusión que normalmente se da, es pensar que SPARQL es solo un lenguaje de consultas, lo anterior ocurre básicamente por desconocimiento y confusión respecto a otras distinciones como los razonadores (Pellet por ejemplo, o los que incluye Jena) que no nacieron en base a un motor de consultas semánticas. Pero debido a que SPARQL incluye entre sus primitivas la sentencia CONSTRUCT, que es la que permite devolver información de las nuevas relaciones posibles dado un cierto numero de condiciones. Es que también se entiende a SPARQL como capas de inferir conocimiento, de forma tal vez indirecta, pero sin lugar a dudas capas de realizar deducciones.

Por otro lado la distinción de Razonadores o Motores de Inferencia se asocia mas a aquellas herramientas que no se limitan solamente a inferir sobre documentos RDF o OWL, sino además a herramientas capaces de ofrecer razonamiento genérico basado en reglas, razonamiento transitivo, etc. Como por ejemplo las capacidades de razonamiento que posee Jena (Que indistintamente también tiene un motor de SPARQL).

Dejando a Jena y SPARQL de lado por un momento, veremos ahora el modelo de solución planteado para utilizar todas las piezas que hemos discutido anteriormente desde el inicio de esta serie de post. Veamos por ello la siguiente figura del diseño de uso de semántica informática en WebService, para el descubrimiento y uso automático de ellos:

mono1

En el podemos observar el distintas componentes y sus flujos, a saber:

a) La aplicación consumidora del Web Service.
b) El Web Service que se consumira y acoplara de forma automática a la aplicaciones
c) Un procedimiento en ciertos pasos para consultar a una entidad denominada. MatchMaker externa a la aplicación.
d) Un resultado de esta consulta en la forma de OWL-S Profiles
e) Una selección del mejor candidato.
f) Una instancia de máquina Virtual para invocar y enlazar el servicio web seleccionado.

En el diseño superior, no esta presente el repositorio de ontologías de servicios. Viendo la siguiente figura podremos visualizar esta componente y su relación con el repositorio de ontologías y el MatchMaker, las opciones de subselección en el cuadro siguiente están fuera del contexto de la aplicación solo de manera visual de forma de explicar mejor los pasos intermedios.

matchmaker.png

Hoy en día existen distintas iniciativas de soluciones MatchMaker a utilizar.En el ejemplo de la figura anterior, el MatchMaker se apoya en un motor de SPARQL para hacer sus inferencias, pero esto no es necesariamente obligatorio, podrían ser cualquier de los razonadores provistos por Jena. Pero para ilustrar mejor el diseño conceptual he puesto a SPARQL como entidad de inferencia.

En los próximos post ahondaremos en este diseño inicial, y revisaremos en detalle como Jena proveerá de la interfaz hacia una base de datos relacional para generar un repositorio o servidor de ontologías, y como participara del Matchmaker en detalle.

Javier Urrutia

6 Votes | Average: 4.17 out of 56 Votes | Average: 4.17 out of 56 Votes | Average: 4.17 out of 56 Votes | Average: 4.17 out of 56 Votes | Average: 4.17 out of 5 (6 votos, promedio: 4.17 de 5)
Loading ... Loading ...
Envie a un Amigo este Post (Click Aqui)Enviar a un Amigo | Version para Impresion del Post (Click Aqui)Version para Impresion

Informacion y Links

Unase a la comunidad de comentaristas, utilice las herramientas presentes, o linque a hacia su blog.


Otros Posts
Recuperando Archivos Borrados en su HD (Muy Borrados!)
Contratos Informáticos (Puntos a no olvidar)
Herramientas
English Traducir al Ingles
Español Traducir al Español
Stumble it!



Posibles articulos relacionados


Aplicación empresarial de Ontologías Informáticas SWWS. 1era Parte - Introducción (El próximo salto)
Hoy día quiero dar un salto, de forma y estilo de los post que escribo en este blog. Después de interactuar mediante la red con distintas personas y en particular después de visitar el Blog de Jorge Fernandez Gonzales ,

Aplicación empresarial de Ontologías Informáticas SWWS. 2da Parte - (Conceptos a Fondo)
Hoy, sigo desarrollando el concepto de aplicar Ontologías informáticas en el ámbito de las empresas. Sin embargo para poder explicar estos temas de manera completa, será necesario un viaje de varios post. En la primera parte, realice

Pramati Application Server
A estas alturas si sigue leyendo esta pagina imagino esta un poco relacionado con tecnologías de desarrollo actuales y emergentes, por lo tanto seguramente esta algo familiarizado con Jboss (Servidor de Aplicaciones J2EE) y tal vez otros servidores Java

VMware (El Hardware hecho Software)
A estas alturas la palabra virtualización puede que ya la conozca, pero si no es así, permítame contarle como va este mundo y su rápido crecimiento tanto en el área empresarial y en el nivel de sofisticación que las soluciones

Jboss JBPM (Open Source)
Aquí estamos una vez mas hablando de BPMs, Anteriormente escribí un articulo de una BPM Suite denominada Intalio, bastante completa y con la gracia de ser Open Source. Ahora voy a escribir de una alternativa llamada JBPM de Jboss.


Link de trackback a este post

Boton derecho para copiar enlace de trackback Aplicación empresarial de Ontologías Informáticas SWWS. 3ra Parte - (El Diseño)


Escriba un comentario

Tome un momento y escriba su pensar hacerca de este post. Algunos codigos HTML son permitidos para el formato.

Comentarios escritos

Hola, buen día, escribo de la ciudad Sonora México, y me gustaría que me porporcionaran información sobre JENA.
1.- Qué es?
2.- Cómo se implementas razonadores en Jena?
3.- Cómo so y qué tipo es el razonador en Jena?
4.- Cómo se integra a OWL?

agradeceré me ayude con esta información

Estimada Elisa,

El post en el que comentaste entrega la informacion que solicitas. Si deseas mayor informacion, puedes encontrala en http://jena.sourceforge.net , adicionalemnte si desea una respuesta de jena de caracter tecnico (programacion) puedes ver en el grupo de discucion de jena en la siguiente direccion http://tech.groups.yahoo.com/group/jena-dev

Saludos Cordiales
Javier Urrutia

Felicidades por los Post que presenta, son interesantes.
la verdad trato de no perderme ninguno y los leo todos.

saludos !!
Navojoa, Sonora México

Muchas gracias Elisa, comentarios como el tuyo siempre son bien recibidos, me alientan a seguir escribiendo.

Saludos Cordiales
Javier Urrutia

Realmente son excelentes tus articulos Javier, en estos momentos estoy en proceso de investigaciòn de un tema para la realizaciòn de mi tesis de grado, hasta ahora ha sido bastante riguroso ya que aunque no quiero reinventar la rueda si me gustaria trabajar con algo novedoso y que involucre tecnologias orientadas hacia la web, tus articulos me han inspirado a perseguir el tema de las ontologias informaticas para el desarrollo de mi tesis, sin embargo todavia no he encontrado una aplicaciòn digamos “sistemica” para las ontologias ya que la universidad me exige la realizaciòn de un sistema como parte de la tesis. Por ahora continuo con la investigaciòn y tus articulos son una fuente de inspiraciòn e investigaciòn muy grande, de verdad gracias por todo el esfuerzo que le pones a tus articulos de verdad son geniales.

Saludos!
Caracas, Venezuela

Esimado Roger,

Gracias por tus comentarios (muy motivantes), espero puedas desarrollar tu tesis en algun tema interesante como las Ontologias Informaticas o temas similares que encuentres. Entiendo que como tesis te exijan algun desarrollo o sistema en particular (tambien me ocurrio cuando realice la mia). Dandole vuelta a tu comentario, he decidido empezar a escribir hoy una serie de articulos respecto a una nueva tecnologia que en combinacion con otras (como las ontologias informaticas por ejemplo) podran ayudarte con una idea interesante a pensar en una solucion mas practica, donde no solo puedas utilizar las Ontologias Informaticas como tecnologias emergentes, sino ademas combinarla con otros temas que pudieses encontrar para tu tesis.

Saludos Cordiales.
Javier Urrutia

hola tus commentarios son muy propios, la verdad que te agradesco un mundo por tu colobaracion en lo referente a ontologias con jena. A por cierto me pudes acolitame con informacion de como realizar las consultas a un archivo .owl con rdql desde jsp. Enviame cualquier informacion a mi email

atte:
wmjimene@utpl.edu.ec

Hola te agradecería me pudieras enviar una liga en donde hable sobre JENA, pero en español¡¡.

trato de hacer un sistema de Razonamiento , pero en Jena y me gustaría adentrarme mas en el tema.

saludos ¡¡

Estimados Wuilmer y EGMV,

Adjunto links de respuestas a sus consultas, en relacion a informacion de Jena y como operar con buscquedas y archivos rdf. Lamentablemente en español no hay nada de esto, pero estos articulos en ingles son de muy facil compresion, he incluyen ejemplos de codigo.

http://www.xml.com/pub/a/2001/05/23/jena.html
http://www-128.ibm.com/developerworks/java/library/j-jena/index.html

Saludos Cordiales
Javier Urrutia.

Estimado Javier Urrutia, me llamo Pablo y soy un estudiante de ingenieria informática de una universidad española. En la actualidad me encuentro haciendo el proyetco fin de carrera sobre Ontologias, y tus post (concretamente el de aplicación de ontologias en el ámbito empresarial), me parece brillante, muy actual, me parece un enfoque genial, tanto es así que me estoy replanteando pegar un giro a mi proyecto y orientarlo a los servicios web semánticos. Enhorabuena, y estoy deseando que salga el proximo artículo!.

Saludos
Pablo

Hola Pablo,

Me alegra saber que algunos de mis post te han ayudado en tus temas de tesis, ultimamente no he tenido el tiempo que quisiera para escribir todos los post que tengo dando vueltas en mi cabeza, a veces simplemente escribo lo primero que se me viene a la mente (para no olvidarlo), se que tengo un par de series como el caso de las de Ontologias en que no he avanzado mucho ultimamente, pero te aseguro que a lo mas en las proximas semanas retomare esta serie.

Saludos Cordiales
Javier Urrutia

Me paece chevere la información y se entiende, solo los graficos que no se entienden muy bien

Hola mi nombre es carolina quisiera que por favor me ayudes a encontrar informacion de jena con OWL. Necesito revisar codigo para manejar OWL con jena y demas sera que me puedes ayudar?

Realmente los posts que has puesto acerca
la la web semántica me han venido súper bien pues hace muy poco tiempo empecé a trabajar en un proyecto acerca del tema; pues queremos hacer un repositorio de ontologías, y ahora estaba buscando información acerca de Jena y justo lo que necesitaba lo encontré en tus post, espero que sigas con el tema, y yo seguiré documentándome aquí.
Gracias.


Technorati Z22 XML-Sitemap RSS a PodCast Usa Firefox es mejor