ONTOLOGIAS EN LA INTEROPERATIBILIDAD Presentado por: Franklin José Sandoval Sucre William Bustamante 1 De qué Hablaremos • • • • • • • • • • Introducción Definiciones Componentes Ventajas Herramientas Lenguajes de representación – RDF – OWL Editores Familiarización con Protégé para crear una ontología Ejemplos Prácticas 2 Tendencias ... Actualmente Futuro próximo La Interconexión será una realidad en todas los equipos 3 2007 Crecimiento de la Web 2008 Contexto: Universo de información Web : Futuro 2009 Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/ 2010 4 Evolución de la Web Agentes Web que conocen, aprenden y razonan como los humanos. Artificial Intelligence IntelligentAgents Personal Assistants 3 Ontologies SemanticWebiste La Web Semántica & UI Conecta Conocimiento SemanticSearch Thesaurus& Taxonomies Knowledge Bases Semantic Desktop Bots Enterprise Portals SearchEngines Web sites 1 PIMS La Web Conecta Información Databases “Push ContentPortals Publish& Subscribe P2P file sharing File Servers ” Incrementar conectividad Social SemanticAgents Autonomic Smart Ecosystems Intellectual Markets Natural Property Semantic Language Communities 4 Blogets La Web UbicuaSemantic Enterprise Conecta Inteligencia Semantic Semantic Blog Wiki Semantic email Mash-up Blogs Email Wiki Semantic Social Network Multi-user Gaming Community Portals Marketplaces &auctions Social Bookmarking 2 La Web Social Conecta Gente RSS Conferencing Social network Instantmessages 5 Cada vez más datos Sistemas de Información, Administraciones públicas, sanidad, conocimiento general, información de empresas, vuelos, restaurantes, información geográfica, entretenimiento, servicios al ciudadanos etc etc etc etc ... Problema: datos aislados en silos 6 Cada vez más Datos Hay que interconectar los aislados en silos Hay que Identificar todas las cosas en la Web Pero necesitamos describir esos recursos… 7 Optimización de Procesos… ¿Cómo puedo empezar a optimizar mis proceso de negocio? Es indispensable consensuar una manera de documentar los procesos 8 Ciclo de Vida Información • En la Web: Fuentes de información Web Semántica Consumidores de conocimiento BD Ontología Usuario XML Otra Ontología WWW Agente 9 Pero el Problema es… Cuestión de Estándares ¿No puedes hacer nada bien? Problema esencial Pero las máquinas no entienden el sentido de las palabras, mucho menos el sentido de los textos… 10 Problemas Existentes • Duplicidad y heterogeneidad de la información • Falta de integración de la información • Falta de información en el momento oportuno y por ende imposibilidad de intercambio de información en línea • Diferencias en los conceptos utilizados para el intercambio de información que causa incongruencias en los resultados. • La falta de estandarización de estructuras, calidad, consistencia y disponibilidad en los datos. • Existencia de problemas de seguridad informática que afectan la calidad de los datos 11 El Modelo del Dominio 12 ...Pero qué Significa “Dominio”? Matemáticas: se llama “dominio de definición” de una función al conjunto de valores para los cuales la función esta definida. Por ejemplo: f(x) = 1/x el dominio de esta función es el conjunto de los reales menos el cero 13 ...Pero qué Significa “Dominio”? Internet: se habla de “nombre de dominio” al conjunto de caracteres que identifican un sitio de internet accesible por un usuario. Por ejemplo: .com (comercial-empresas) .edu (educación, centros docentes), .org (organización sin fines de lucro), .net (operación de la red), .gov (Gobierno USA) .mil (ejército USA). www.cnti.gob.ve 14 ...Pero qué Significa “Dominio”? Ingenieria de software : se llama “modelo del dominio” a la representación visual de los conceptos u objetos del mundo real en un dominio de interés. Este modelo agrupa los conceptos de un dominio. Mecanismo fundamental para comprender el dominio del problema y para establecer conceptos comunes 15 Modelo del Dominio En él se representan los conceptos del dominio que nos interesa, sus características y las relaciones entre dichos conceptos Es un diccionario visual del dominio del problema Qué es un concepto ? Una idea Es el elemento básico del pensamiento Conocimiento propio sobre una categoría de objetos o acontecimientos Las ONTOLOGIAS son herramientas que sirven para esquematizar el modelo del dominio de un sistema particular 16 Herramientas de Codificación del Conocimiento de un Dominio • Hay tres niveles de comunicación semántica • Cada nivel proporciona una estructura sobre la que se apoya el inmediatamente superior • Un nivel más alto proporciona mayor expresividad pero conlleva mayor complejidad 17 (1)… Lenguajes de Marcados • Para describir la semántica se requiere un lenguaje apropiado (llamado lenguaje de representación) • Tienden a estar basados en XML – OML (Ontology Markup Language) – XOL (Ontology Exchange Language) – SHOE una extensión de HTML – RDF y RDFS impulsados peor el W3C consortium – Mapas Temáticos (Topic Maps) estándar ISO • RDF y Topic Maps son los más comunes 18 (2)… Metadatos • Son datos que describen otros datos • En este contexto – Datos que describen recursos de la Web. • La distinción entre datos y metadatos es relativa – Depende de la aplicación. – Los metadatos de una aplicación pueden ser los datos que maneja otra aplicación. 19 (3)… Ontología • Es un conjunto de – términos – relaciones entre los términos – que describen un dominio de aplicación concreto • Objetivo – Creación de un diccionario de términos • compartidos y • comprensibles – para diferentes aplicaciones y/o comunidades que permita la interoperabilidad • compartir información y conocimiento entre ellas • Especificación de una conceptualización Metadatos y Ontologías forman parte del campo de la representación del conocimiento 20 Ontología • Las ontologías son usadas para clasificar los términos en una aplicación particular, caracterizar sus posibles relaciones, y definir posibles restricciones en el uso de esas relaciones – Las especificaciones de restricciones puede usarse para la realización de tareas de validación de los datos o para llevar a cabo inferencias • Dos tipos de enfoques: – Lenguajes de ontologías. Orientados a la representación del conocimiento • OWL. Se basa en la estructura de RDF y es el lenguaje de ontología de referencia en la actualidad – Lenguajes de reglas ontológicas. Establecimiento de reglas lógicas • SWRL. Reglas para las definiciones expresadas en la ontología común de OWL 21 Fundamentos Teóricos de Ontologías: Definición Ontologías usadas_en Ciencias de la Computación Inteligencia Artificial Ingeniería del Conocimiento En la actualidad muchas de las aplicaciones relacionadas con: Comercio electrónico Bioinformática Recuperación de información Web Semántica Educación Gestión de conocimiento Procesamiento lenguaje natural 22 ¿Qué es una Ontología? Es un Vocabulario Controlado Ontología Con el Objetivo de Especificar el Conocimiento Para Describir Objetos Relación Con una Gramática Relevantes de un Del Dominio Una Ontología es una especificación formal, explícita de una conceptualización compartida Conocimient o consensual Procesable por una máquina Conceptos, propiedades, relaciones, funciones, restricciones, axiomas. Modelo abstracto de algún fenómeno en el mundo 23 Fundamentos Teóricos de Ontologías: Definición Las ontologías se fundamentan en el principio de reutilizar y compartir Reutilizar: Construir nuevas aplicaciones a partir de componentes ya existentes Compartir: Diferentes aplicaciones utilizan un mismo recurso Ventajas: Más barato Menos tiempo Más fácil 24 Objetivos de las Ontologías Proporcionar un vocabulario común entre personas o agentes de software. Permitir reutilizar el conocimiento de un dominio Permitir separar conocimiento de dominio del conocimiento operacional Analizar conocimiento Sistematizar conocimiento Proporcionar una estructura de datos bien justificada Reducir la ambigüedad (disminuir confusiones semánticas) Permitir la interoperabilidad 25 Clasificación de las Ontologías Nivel de dependencia Proporcionan el vocabulario necesario para describir un dominio Describen conceptos muy generales que son independientes de un problema particular o dominio. Proveen un vocabulario sistemático para resolver problemas Contienen las definiciones necesarias para modelar el conocimiento requerido para una aplicación particular en un dominio dado Dependencia del contexto (Fundación para Agentes Físicos Inteligentes) -FIPA- 26 Áreas de Aplicación de las Ontologías Desarrollo de servicios Web: Descripción de significados de los contenidos de los portales Desarrollo de mecanismos de comunicación: Entre personas y máquinas por medio del lenguaje natural Desarrollo de aplicaciones en salud: Recuperación de información, búsqueda de respuestas en fragmentos de textos que responden preguntas, clasificación de documentos Desarrollo de aplicaciones para gestionar conocimiento:Para representar conocimiento tácito y explicito de los integrantes de una organización, para describir pasos de procesos, entre otros 27 27 Áreas de Aplicación de las Ontologías Desarrollo de aplicaciones lingüísticas: Descripción de construcciones semánticas (palabras, adjetivos, grupos nominales, etc) Ejemplo: WordNet Desarrollo de aplicaciones de comercio electrónico: Para intercambiar información entre clientes/proveedores, identificar productos y servicios en un mercado global 28 Componentes de las Ontologías Estructura muy completa que permite describir conocimiento Ontología Clases Axiomas Relaciones Funciones Reglas Taxonomía Vocabulario Propiedades Instancias 29 Conceptualización Simplificada de una Ontología 1. Conceptos: Computador, Dispositivos de Almacenamiento, Procesador, Memoria, Dispositivos de Entrada/Salida y Categoría; 2. Relaciones: “tiene Componentes” vincula los conceptos Computador y sus respectivos módulos; y la relación “pertenece A” une los conceptos Computador y Categoría; 3. Objetos o instancias de conceptos: Volátil y Permanente, son instancias de la clase o concepto Memoria; y 4. Subclases: Portátil, Computador Personal y Servidor son subconceptos 30 de Categoría Ventajas del Uso de las Ontologías En tiempo de desarrollo… * Consenso entre * participantes Comprensión del dominio Reutilización del conocimiento * * * Mejor comunicación entre agentes Integración fuentes de datos * * Validación En tiempo de ejecución… Interoperabilidad * * Aplicaciones comercio electrónico Modelado contenido semántico págs. web * Desambigüación lenguaje natural 31 Ejemplo de una Ontología Órgano Tabique parte_de Aurícula Ventrículo parte_d e es_un afecta_una Corazón parte_de tiene_un Tratamiento tipo_de tipo_de Intervención Medicación Aplicaciones Laboratorio Protocolos Radiología Farmacia Guías médicas Ontología Bases de datos Anatomía Patológica Sistemas Clasificación …….. Requerimiento Sistemas parte_de Estructura Anatómica tiene_una …….. Historias médicas Resultados 32 Taxonomía… 33 Taxonomía… ES… la ciencia de descubrir nombrar describir clasificar dominios Taxonomía proviene de las palabras griegas: taxis = división/orden y nomos = ley 34 Modelo Grafo • Proporcionar marco global con reglas de mapeo para interoperabilidad a nivel semántico – Subclase – Disjunto – Clase equivalente – Propiedad equivalente – Mismo individuo –… ? 35 Ejemplo de Taxonomía Documento Doc.Papel rd fs rdfs:subClassOf bC la s sO f rd f s:s u bC l as sO f rd fs: su rdf u s:s f sO s la bC Doc.Web Doc.Disco :s ub C la ss O rdf s:s ub Cla ssO f f Articulo Libro rdfs:subClassOf DVD CD rdfs:subClassOf VideoLibro 36 Ejemplo 1 Taxonomía 37 Esquema de su Uso 38 Ejemplo 2 Objeto Perro Nombre Raza Edad Beto Pastor 2 años Atributo Valores 39 Resource Description Framework “RDF” 40 RDF Significa: Resource Description Framework o Marco de Descripción de Recursos Desarrollado: World Wide Web Consortium (W3C). Sirve: modelo de datos para expresar siempre los datos sobre cualquier cosa de la misma forma Expresión: RDF es independiente de XML, aunque suele expresarse con esta sintaxis Sintaxis y estructura Similar a la de los lenguajes orientados a objetos Validadores: http://www.w3.org/RDF/Validator/ RDF: RDF:http://www.w3.org/RDF http://www.w3.org/RDF 41 En modo gráfico: E l s itio h ttp ://w 3 c .o r g Ejemplo RDF T ie n e e l tí tu lo W o r ld W id e W e b C o n s o r tiu m … <rdf:Description rdf:about=“http://www.w3c.org/”> dc:title>World Wide Web Consortium</dc:title> <rdf:Description> … 42 Taxonomía del RDF Sujeto Propiedades Propiedades Objeto Propiedades Objeto Objeto 43 RDF • Permite la descripción y el procesamiento de metadatos – No hace ninguna suposición sobre el dominio o campo de aplicación – No define ninguna semántica a priori – Tiene la capacidad de describir metadatos de cualquier dominio • Sintaxis y estructura similar a la de los lenguajes orientados a objetos – Clases y subclases 44 RDF • Las clases y subclases se disponen en una jerarquía. – Les subclases pueden heredar propiedades de les clases – Es posible la herencia múltiple, que permite • La mezcla de diferentes esquemas semánticos • Que los agentes enfrentados con una semántica desconocida la puedan trazar hasta encontrar elementos comunes a partir de los cuales deducir el resto • Un conjunto de clases que definen un dominio o aplicación se llama esquema 45 Características de RDF Basado en XML hereda todos los conceptos que permiten especificar propiedades de los elementos (por ejemplo los namespaces). Es una infraestructura de descripción de recursos. Propone un modelo de datos coherente y lenguajes para definir vocabularios (RDFS) Los Componentes de RDF: • Un modelo de datos formal. • Una sintaxis para intercambiar datos. • Un esquema. • Una sintaxis legible por máquina del esquema. • Protocolos de interrogación. 46 Modelo de Datos de RDF El Modelo de datos de RDF, está constituido por tres tipos de objetos: Propiedades Sentencias Recurso PROPIEDAD VALOR Propiedad / descripción •Basado en un modelo matemático = triple •Recursos Web representados por nodos URI •Los conjuntos de propiedades se conocen como “descripciones” 47 Modelo de Datos de RDF Recursos (Sujeto) Es de lo que se desea hablar y que puede ser referenciado Los recursos tienen URIs Las definiciones RDF son recursos por sí mismas Propiedades (Predicado) Slots, definen las relaciones con otros recursos o valores individuales Sentencias (Objeto o Valor) ‘Un recurso tiene una propiedad con un valor’ Son tripletas <sujeto,predicado,valor> Ej. <España, capital, Madrid> Los valores pueden ser recursos o datos individuales XML El modelo de datos de RDF está basado, en declaraciones, afirmaciones o aserciones (statements) 48 Ejemplo Explicado de RDF RDF: un modelo de metadatos flexible para WEB AUTOR DC:Title DC:Creator EVA “Eva Méndez” BIB:Aff “UC3M” uc3m BIB:Name BIB:Email “Eva Méndez” “[email protected]” Los valores pueden ser: strings, fechas y URIs 49 Ejemplo de Texto en RDF ABREVIADA SELIALIZADA <RDF:RDF> <RDF: Description about= ”http://www.bib.uc3m.es/~mendez/rdf.htm”> <Title> Explicando RDF</Title> <Author>Eva Méndez </Author> </RDF: Description> </RDF:RDF> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.0/"> <rdf:Description rdf:about="http://www.bib.uc3m.es/~mendez/rdf.htm" dc:creator=”Eva Méndez" dc:title=”Explicando RDF" dc:date=“2005-04-12" /> </rdf:RDF> http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm 50 Ejemplo de RDF Sintaxis Básica Serializada [1] RDF ::= ['<rdf:RDF>'] description* ['</rdf:RDF>'] [2] description ::= '<rdf:Description' idAboutAttr? '>' propertyElt* '</rdf:Description>' [3] idAboutAttr ::= idAttr | aboutAttr [4] aboutAttr ::= 'about="' URI-reference '"' [5] idAttr ::= 'ID="' IDsymbol '"' [6] propertyElt ::= '<' propName '>' value '</' propName '>' | '<' propName resourceAttr '/>' [7] propName ::= Qname [8] value ::= description | string [9] resourceAttr ::= 'resource="' URI-reference '"' [10] Qname ::= [ NSprefix ':' ] name [11] URI-reference ::= string, interpreted para [URI] [12] IDsymbol ::= (any legal XML Name symbol) [13] name ::= (any legal XML name symbol) [14] NSprefix ::= (any legal XML namáspace prefix) [15] string ::= (any XML texto, with "<", ">", and "&" 51 RDFS o RDF Schema Algunos términos RDFs Class, property Type, SubClassOf, domain Estos términos son los elementos constitutivos de RDF Schema, o core primitives Definición del vocabulario <Country, type, class> <Capital, subClassOf, city> <hasCapital, domain, Country> Estas son sentencias RDF donde: El predicado es un término RDF Schema El sujeto u objeto es un término RDF 52 RDFS Recurso Clase rdfs:Resource rdfs:Class rdf:Property rdfs:ConstraitProperty rdfs:Literal Propiedad •rdf:type •rdf:subClassOf •rdfs:subPropertyOf •rdfs:comment •rdfs:label •rdfs:seeAlso •rdfs:isDefinedBy ConstraintProperty •rdfs:range •rdfs:domain RDF(S) proporciona las primitivas básicas para el modelado de ontologías, alcanzando balance entre expresividad y razonamiento 53 Jerarquía de clase para el Esquema RDF Fuente: http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfsch.htm RDF, RDFS y RDF (S) no se consideran lenguajes ontológicos per se, más bien son lenguajes para describir meta data en la Web 54 Chequeo de Sintaxis para RDF http://www.w3.org/RDF/Validator/ 55 ¿Por qué RDF o RDFS? Proporcionan un convenio aceptado por las partes, un estándar para anotar recursos Web y hacer explícita su semántica Es un lenguaje ontológico que da una especificación formal de una conceptualización compartida RDF Schema posibilita: Especificación Compartición (para eso esta la Web, ¿no?) ¿Formalidad? ¿Es RDF Schema suficientemente expresivo? 56 ¿Por qué RDF o RDFS? RDF es un modelo de datos basado en grafos para la representación de meta-datos La idea básica consiste en definir recursos mediante sus propiedades Es posible escribir RDF en XML RDF Schema permite definir el vocabulario para RDF, y proporciona un grado más hacia lo que debe ser un lenguaje ontológico Clases, subclases, propiedades, limitaciones de rango y dominio, ... Todavía no se puede expresar todo lo que se necesita 57 ¿Por qué RDF o RDFS? ¿Qué falta? Restricciones de cardinalidad Un país sólo puede tener una capital Conjunción, disyunción, negación, equivalencia Países y ciudades son disjuntos: no se puede ser a la vez, país y ciudad Restricciones de valores localizados Cuando la propiedad ‘población’ se utiliza sobre una ciudad, su valor debe ser entre 10.000 y 20 millones Especificación formal de la ontología Por ahora sólo se tiene una especificación en lenguaje natural Una forma de acceder a la información Si se quiere usar para responder preguntas es necesario un lenguaje de consultas (como SQL para bases de datos, o XQL para XML) 58 Ventajas RDF sobre XML • Muy utilizado y mayor capacidad de interoperar – Clases y propiedades son fácilmente identificadas – Vocabulario estandarizado (en cuanto a clases y en cuanto a propiedades) [problema: se deben conocer los namespaces para referenciarlos] • RDF se escribe de forma normalizada a diferencia de XML [quita la libertad en la creación de documentos de XML] • Da un formato legible en la Web Semántica 59 Lenguajes de Representación del Conocimiento 60 Lenguajes de Representación del Le Conocimiento • RDF (Resource Description Framework): – XML, herencia de clases (RDF-class, RDF-property) – Expresividad similar a OO • OWL (Ontology Web Language) – Pensado para la Web Semántica – Nivel Lite (similar RDF), DL (SHIQ), OWL full (autoextensible) – OWL-S – Estándar de W3C (Febrero 2004) Los lenguajes proporciona las primitivas básicas para el modelado de ontologías, alcanzando balance entre expresividad y razonamiento 61 Herramientas para el Desarrollo de Ontologías Herramienta Dirección Protégé http://protege.stanford.edu/ Ontostudio http://www.ontoprise.de/en/products/ontostudio/ KAON http://kaon.semanticweb.org/ WSMO Studio http://www.wsmostudio.org Apollo http://www.softpedia.com/get/Science-CAD/Apollo-KMI.shtml CORESE http://www-sop.inria.fr/acacia/soft/corese/ KIM http://www.ontotext.com/kim swoop http://code.google.com/p/swoop/ Ontopia http://www.ontopia.net/solutions/products.html 62 RAP API PHP –Framework para almacenamiento, consulta y razonamiento con RDF y RDF Schema –Gestión de ontologías, almacenamiento y consultas contra ellas. –Soporta RDF y es independiente del lenguaje. –Soporta MySQL, Oracle, PostgreSQL –Incluye varios componentes: • ARP: un parser de RDF • API RDF • API de Ontologías y RDF Schema. • Sistema de razonamiento • Soporte para persistencia • RDQL: Lenguaje de consultas de RDF Almacenamiento Persistente Desnormalizado http://sourceforge.net/projects/rdfapi-php/ Memoria Normalizado 63 Trabajando con RAP Framework para la creación de aplicaciones que Nivel Genérico proporciona las interfaces y clases para la creación y RDF Ontología Recursos manipulación de los repositorios RDF. Bajo un OntProperty conjunto herramientas de para desarrolladores de PHP que analizar, almacenar, manipular, consultar y servir a los modelos RDF, Es una OntClass aplicación código abierto. Roles Cargo Nivel de Aplicación Perfil bajo 64 Modelo Normalizado Consiste en varias tablas que en conjunto guardan también las tripletas: rdf_statements, rdf_resources y rdf_literals). Clase en RAP DbStore • Se utiliza para establecer la conexión de base de datos, así como crear y recuperar los modelos persistentes DbModel • Proporciona métodos para la manipulación de estos modelos. • También hay una clase Model, con algunas de las funciones generales comunes para ambos MemModel y DbModel 65 Creando la Base de Datos 1- Ajuste de la conexión de base de datos y crear tablas $mysql_database = ModelFactory::getDbStore('MySQL', 'host', 'db_name', 'user_name', 'password'); $access_database = ModelFactory::getDbStore(); 2- Creación y recuperación de DbModels Se crea el Modelo $modelURI = "http://somewhere.edu/rap-v-06/tutorial/DbModel1"; $dbModel1 = $access_database->getNewModel($modelURI); // Create a new memory model $memModel = ModelFactory::getDefaultModel(); // Load and parse document Se establece $memModel->load("example1.rdf"); Dbmodel 3. Manipulación de una DbModel $modelURI = "http://somewhere.edu/rap-v-06/tutorial/DbModel1"; if ($access_database->modelExists($modelURI)) echo “Modelo ya Existe: '$modelURI' already exists"; else $dbModel1 = $access_database->getNewModel($modelURI); 66 Usando la Base de Datos <?php Incluir la Clase // Incluir RAP // Se define una constante con la carpeta donde se encuentra el archivo define ("RDFAPI_INCLUDE_DIR", "./../api/"); // Se define el api include(RDFAPI_INCLUDE_DIR . "RDFAPI.php"); // Se crea el Modelo Dbstore que permite la conexión a la base de datos $rdf_database = ModelFactory::getDbStore('MySQL', ‘localhost', 'db_name', 'user_name', 'password'); // Carga modelo mediante el URI $dbModel = $rdf_database->getModel ("example1.rdf"); // Output the model as HTML table $dbModel->writeAsHtmlTable(); Se crea el Modelo Se carga el Modelo 67 Impresión del Modelo HTML – // Output $model1 as HTML table echo "<b>Output the MemModel as HTML table: </b><p>"; $model1->writeAsHtmlTable(); – // Output the string serialization of $model1 echo "<b>Output the plain text serialization of the MemModel: </b><p>"; echo $model1->toStringIncludingTriples(); String – // Output the RDF/XML serialization of $model1 echo "<b>Output the RDF/XML serialization of the MemModel: </b><p>"; echo $model1->writeAsHtml(); RDF/XML 68 Salida del Modelo HTML Predicado Sujeto Objeto 69 Consulta con SPARQL 70 Operando con RAP • Ajuste de la conexión de base de datos y crear tablas $mysql_database = ModelFactory::getDbStore('MySQL', 'host', 'db_name', 'user_name', 'password'); • Creación y recuperación (DbModel) se le asigna un URI único (modelURI) $modelURI = "http://somewhere.edu/rap-v-06/tutorial/DbModel1"; $dbModel1 = $access_database->getNewModel($modelURI); if ($access_database->modelExists($modelURI)) echo "WARNING! DbModel Ya Existe"; else $dbModel1 = $access_database->getNewModel($modelURI); • Manipulación del DbModel http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/ 71 Modelo Relacional • SELECT: SELECT * FROM libro WHERE precio > 100.00 ORDER BY titulo; – – – – – FROM (tables) WHERE (predicate) GROUP BY (rows) HAVING (predicate on GROUP BY rows) ORDER BY (columns) 72 SPARQL SELECT ?name ?email WHERE { ?person rdf:type foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email. } PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?email WHERE { ?person rdf:type foaf:Person. ?person foaf:name ?name. ?person foaf:mbox ?email. } 73 Data: SPARQL – Example 1 <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> "SPARQL Tutorial" . Query: SELECT ?title WHERE { <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title . } SPARQL permite realizar consultas “semánticas” recorriendo las diferentes relaciones establecidas en los grafos. 74 Caso práctico Ejercicio Crear una Ontología en Protégé 3.4.8 75 ¿Por qué Protégé? Permite: • Edición de ontologías • Creación de herramientas de adquisición de conocimiento – mediante formularios relacionados con las ontologías descritas • Creación de bases de conocimiento – mediante la entrada de instancias particulares de los datos de la ontología • Ejecución de aplicaciones que operen sobre la base de conocimiento • Tiene una colección interesante de Plug-ins Protégé RDF 3.4.8 OWL 4.1 76 Protégé • Es gratis, open source • Está basado en Java, es extendible • Es un editor de ontologías y marco de trabajo de bases de conocimiento • Define la estructura de una ontología • Define y administra instancias Protégé RDF 3.4.8 OWL 4.1 Homepage http://protege.stanford.edu/ Download http://protege.stanford.edu/download/protege / Documentation http://protegewiki.stanford.edu/index.php/ 77 Formalización de la Ontología con Protégé 78 78 Protégé 79 Protégé Edición de condiciones. Botón para más opciones de consulta. Área de resultado de la consulta Botón para ejecutar la consulta. 80 Pasos para Crear una Ontología con Protégé 1. Determinar el domino y alcance de la ontología 2. Considerar la reutilización de ontologías existentes 3. Enumerar términos importantes para la ontología 4. Definir las clases y la jerarquía de clases 5. Definir las propiedades de las clases: slots 6. Definir las facetas de los slots 7. Crear instancias 81 Componentes de la Ontología de Ejemplo propietario tipo color Transporte matricula * propietario modelo * tipo * color personas Sub-Clase-de Terrestre Aéreo * propietario * tipo * color Galpón Sub-Clase-de Carros Instancia-de Carro Deportiv o Camiones Sub-Clase-de Motos Instancia-de Camión Cisterna Aviones Helicópteros * propietario * tipo * color * Galpón Instancia-de Moto de Carrera Organización taxonómica del ejemplo * matricula * propietario * modelo * tipo * color Clase Instancia 82 Aplicación de los Pasos para Crear la Ontología 1. Domino y alcance de la ontología Transporte 2. Reutilización de ontologías existentes???? No 3. Términos importantes para la ontología a. Trasporte b. Carros c. Vehiculos …… 83 Aplicación de los Pasos para Crear la Ontología 4. Clases y jerarquía 5. Propiedades de las clases: slots 84 Aplicación de los Pasos para Crear la Ontología 6. Facetas de slots: Cardinalidad, Value-type, ennumerated, boolean, instance rango: clases permitidas para slots de tipo instance dominio: clases a las que pertenece el slot 85 85 Aplicación de los Pasos para Crear la Ontología Valor de un slot Tipo Descripción Any Cualquiera de los siguientes tipos Boolean Valor Lógico Ejemplos Verdadero, Falso Class Otra Clase de la base de conocimiento Organización Float Número real 1.0, 3.410, -0. Instance Instancia de una clase Integer String Symbol instance_00010 Número entero 1, 2, -4 Cadena de caracteres “Luis Alberto Pérez" Lista enumerada de valores Rojo, Azul y Verde 86 Aplicación de los Pasos para Crear la Ontología 7. Crear las instancias Listo a utilizar su ontología 87 Caso práctico Vídeos de implementación en PHP 88 Caso práctico Ejercicio Libre Consulta de una Ontología con Java o PHP 89 SESAME vs. JENA vs. RacerPro Jena Soporta OWL RacerPro Soporta OWL Sesame Soporta RDF Schema Jena Expresión de busqueda con SPARQL RacerPro Expresión de busqueda con SPARQL Sesame Mayor expresión SeRQL. Se puede usar diferentes lenguaje de busqueda (RQL, RDQL, SeRQL, SPARQL ) Jena Potente Motor basado en reglas de inferencia RacerPro Potente Motor basado en reglas de inferencia Sesame Muy bajo razonamiento. 90 Cierre • Existen un conjunto de herramientas de la Web Semántica para desarrollador… RAP JENA… • Iniciar con ontologías sencillas y hay que hacer muchas prueba prueba prueba… • Se recomienda usar los plugin de Protégé ante de entrar a una aplicación…. • Reutilizar y compartir todo lo que se pueda… 91 Conclusiones ¿Que Podemos Decir? • La Interoperatibilidad Semántica es aún una visión que ha comenzado a caminar pero aún tiene mucho camino por delante • Comienzan a haber herramientas apropiadas y estándares emergentes • Les posibilidades que tiene justifican al menos no perder de vista este tema • Algunas organizaciones comienzan a utilizarla • Existen herramientas para desarrollador… RAP JENA… Piense iniciar con ontologías sencillas y hay que hacer muchas prueba prueba prueba… • Se recomienda usar los plugin de Protégé ante de entrar a una aplicación….Reutilizar y compartir todo lo que se pueda 92 Conclusiones Posibilidades • Recuperación de información mejorando las posibilidades de los motores de cerca • Catalogación para describir el contenido y las relaciones entre los contenidos de una pagina o sede web, una Intranet, o una biblioteca entera • Los agentes de software inteligentes se pueden beneficiar de RDF para encontrar y "entender" más fácilmente el significado de la información que procesan y detectar el nivel de relevancia. • Calificación de contenidos. Para facilitar la valoración del contenido de artículos, páginas web, etc. • Para describir los derechos de propiedad de las páginas web, para expresar las preferencias de privacidad de un usuario, las políticas de privacidad de una sede Web • Para facilitar la seguridad al comercio electrónico unido con las firmas digitales. 93 Para Cerrar…. “La interoperabilidad es una cuestión de Estado que requiere un liderazgo claro y un avance en todos los sectores de la sociedad para que el ciudadano tenga un beneficio pleno” Fuente: Grupo de trabajo Administración Electrónica de Sectorial CRUE-TIC España de la 94 Referencias de Interés • PlanetRDF Planetrdf.com/guide/ • RDF Model and Syntax Specification (W3C Recommendation) http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm http://www.w3.org/TR/REC-rdf-syntax • RDF Schema Specification (W3C Candidate Recommendation) http://www.w3.org/TR/rdf-schema/ • RDF tutorial (rather technical...) http://www710.univ-lyon1.fr/~champin/rdf-tutorial/ • W3C's RDF links collection http://www.w3.org/RDF/ • The Semantic Web: the roles of XML and RDF http://www.cs.vu.nl/~jbroeks/papers/IEEE-IC.pdf 95 Algunas Referencias de Interés…. • Borst, W., (1997), Construction of Engineering Ontologies for Knowledge Sharing and Reuse: Ph.D. Dissertation, University of Twente. Disponible en: http://doc.utwente.nl/17864/1/t0000004.pdf • Devedzic Vladan. (2002). Understanding ontological Engineering. University of Belgrade. Yugoslavia. School of business Administration Department of Information Systems. Yugoslavia Communications of the ACM. Volume 45. Issue 4. • Gómez-Pérez, A., Fernández-López, M., Corcho, O. (2004) Ontological Engineering. Springer Verlag. Londres. • Gruber, T. (1993). Toward Principles for the Design of Ontologies Used for Knowledge Sharing. Available as Technical Report KSL 93-04, Knowledge Systems Laboratory, Stanford University. Disponible en: http://citeseer.ist.psu.edu/gruber93toward.html • Ramos, E. y Nuñez, H. (2007). ONTOLOGÍAS: componentes, metodologías, lenguajes, herramientas y aplicaciones. RT 2007-12. Lecturas en Ciencias de la Computación. ISSN 1316-6239 • Tramullas, J. (1999). Agentes y ontologías para el tratamiento de información: clasificación y recuperación en Internet. IV Congreso ISKO España. Granada 22-24 Abril. p.247-252 Disponible en: http://www.tramullas.com/papers/isko99.pdf • Uschold, M. (1996). Building Ontologies: Towards a Unified Methodology. Artificial Intelligence Application Institute. University of Edinburgh. Reino Unido. Disponible en: 96 http://citeseer.nj.nec.com/uschold96building.html 96 Preguntas….. Gracias por su tiempo... 97 Muchas gracias! Franklin Sandoval [email protected] William Bustamante [email protected] 98 98