Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ontologias
Ontologias
30/03/2005
Agenda
Introduccin Qu es una ontologa? Aplicaciones Elementos de una ontologa Beneficios de las ontologas Principios de construccin Pasos para construir ontologas
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Agenda
Desarrollo de ontologas
Lenguajes
RDF/RDF-S DAML+OIL OWL
Herramientas
Protg RACER
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Introduccin
Nuevas tecnologas Web proponen nuevas tcnicas y paradigmas para la representacin de conocimiento que faciliten localizar, compartir e integrar recursos Conocimiento semntico explcito que describe y estructura la informacin y los servicios disponibles Creciente inters en la reutilizacin, para reducir recursos, costos y tiempo
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Qu es una ontologa?
El trmino es tomando de la filosofa y se refiere a existencia Para la IA, lo que existe es aquello que puede ser representado Definicin ms completa y utilizada es la de Gruber (1993) y extendida por Studer (1998):
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Aplicaciones
Comercio electrnico Gestin de conocimientos Sistemas de agentes Portales de pginas Web Indexacin de pginas Web Recuperacin de informacin Procesamiento de lenguaje natural Web semntica
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
Principios de construccin
Claridad y Objetividad Completitud Coherencia Mxima Extensibilidad Montona Principio de Distincin Ontolgica Diversificacin Estandarizacin Minimizacin
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
10
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
11
Lenguajes
Es la forma en que se representa un contexto en particular Garantiza que la ontologa sea una especificacin formal explcita Existen muchos lenguajes que van a permitir esa definicin No todos van a permitir el mismo nivel de expresividad a la hora de definir ontologas
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
12
Lenguajes (cont.)
Honrubia expone que un lenguaje debe tener los siguientes requisitos:
Sintaxis bien definida Semntica bien definida Suficiente expresividad Fcilmente maleable Eficiente a la hora de realizar razonamiento
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
13
Lenguajes (cont.)
El lenguaje a utilizar para modelar ontologas depende de las caractersticas y condiciones que se necesiten Existen lenguajes para definicin de ontologas clasificados de acuerdo a su representatividad y objetivo Algunos son:
RDF/RDF-S DAML+OIL OWL
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
14
RDF (Resource Description Framework) Especificacin propuesta por W3C Declara meta-informacin de forma global (URI) Informacin manejable por una mquina Basado en XML Modelo simple (grafo dirigido) Modelo de datos bsico consta:
Recursos Propiedades Declaraciones
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
15
RDF (Resource Description Framework) (cont.) RDF es un conjunto de tripletas: sujeto (recurso), predicado (propiedad) y objeto (valor de la propiedad)
Predicate Subject Predicate Object Object
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
16
RDF-S (RDF Schema) Proporciona un sistema entendible por la mquina para definir esquemas para vocabularios especficos Permite especificar clases de tipos de recursos y propiedades Es un conjunto de recursos RDF (incluyendo clases y propiedades), y las restricciones en sus relaciones
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
17
RDF/RDF-S RDF/RDF-S:
Ofrece los mnimos requerimientos para el desarrollo de una ontologa Expresividad es limitada Es un lenguaje semntico que une la informacin de una pgina a semntica legible por mquinas Ofrece pocas restricciones y muy poco razonamiento (casi no ofrece mecanismos de inferencia)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
18
DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) Lenguaje de marcado semntico para los recursos Web Basado en estndares de W3C como RDF/Esquema RDF, y extiende estos lenguajes modelando primitivas ms poderosas DAML+OIL une RDF/RDF-S con una capa de inferencias para ontologas brindado:
Una semntica precisa para la descripcin de significados de los trminos Un buen razonamiento
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
19
DAML+OIL (DARPA Agent Markup Language + Ontology Inference Layer) (cont.) Surge de la unin:
DARPA Agent Mark-Up Language (DAML) Ontology Inference Layer (OIL)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
20
OWL (Web Ontology Language) Basado en RDF y DAML+OIL ltimo estndar en los lenguajes para construir ontologas, desarrollado por W3C Tiene fundamentos matemticos formales basados en las Lgicas Descriptivas Eso permite usar un razonador (RACER) para comprobar la ontologa segn se construya
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
21
viveEnPas
s Pa n eE viv
Persona
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
casad oC on
Kryscia
Espaa
Pas
as M ne tie t co a
Fido Fuffly
Mascota
22
OWL (Web Ontology Language) Representa el significado de trminos explcitamente en vocabularios y las relaciones entre esos trminos Es la representacin de conocimiento ms expresiva para la Web Semntica Proporciona tres lenguajes expresivos:
OWL Lite OWL DL OWL Full
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
23
OWL (Web Ontology Language) (cont.) No le agrega ms funcionalidades a DAML+OIL, toma los elementos que este lenguaje proporciona para adecuarlos y mejorarlos:
Agrega ms elementos para enriquecer la representacin semntica e inferencia Elimina algunos elementos cuyo significado era opaco para agentes que utilizan el RDF/RDF-S, y los elementos de restricciones de cardinalidad calificadas Cambia el nombre de otros elementos manteniendo su funcin
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
24
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
25
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
26
Caractersticas de propiedad
ObjectProperty DatatypeProperty inverseOf TransitiveProperty SymmetricProperty FunctionalProperty InverseFunctionalProperty
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
27
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
28
Elementos para definir la informacin de la versin, la informacin del encabezado y otras propiedades de anotacin
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
29
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
30
Conceptos (clases), Individuos (instancias o ejemplares de las clases) y Relaciones entre los individuos
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
31
OWL (Web Ontology Language) (cont.) Clases Definidas versus Clases Primitivas:
Clases Definidas: Se define un conjunto de condiciones suficientes para reconocer cualquier subclase o instancia de la clase Clases Primitivas: Se define slo, se indican, las condiciones necesarias que se aplican a todas las instancias de la clase
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
32
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
33
OWL (Web Ontology Language) (cont.) El principio bsico para ontologas normalizadas
Construir ontologas a partir de rboles puros de clases primitivas Cada clase primitiva tiene slo un padre primitivo
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
34
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
35
OWL (Web Ontology Language) (cont.) Razonamiento Mundo Cerrado versus Razonamiento Mundo Abierto:
Mundo Cerrado:
La negacin como fallo Si no lo encuentro (o no puedo probarlo) en este mundo, se asume que es falso Se usa en sistemas de BD, en programacin lgica, lenguajes de restricciones, entre otros.
Mundo Abierto:
La negacin como contradiccin Si no lo encuentro en este mundo, se asume que es posible, a no ser que sea imposible en cualquier mundo (es una contradiccin). La negacin debe ser explcita Se usa en los demostradores automticos de teoremas y en los razonadores DL (y en OWL)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
36
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
37
OWL (Web Ontology Language) (cont.) Restricciones Universales versus Restricciones Existenciales:
Las restricciones se usan para limitar las relaciones vlidas entre individuos La mayora de los usuarios tienden a usar las restricciones universales (que afectan todos los valores) Sin embargo, la mayora de las veces, el tipo de restriccin corresponde con las restricciones existenciales Cualquier restriccin existencial (someValuesFrom, ) que se rellene con una contradiccin es en s misma una contradiccin Una restriccin universal (allValuesFrom, ) que se rellene con una contradiccin puede ser cumplida de forma trivial
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
38
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
39
OWL (Web Ontology Language) (cont.) Otros aspectos que suelen ser fuente de confusin:
Aspectos lgicos clsicos
Uso lingstico frente al uso lgico AND y OR
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
40
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
41
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
42
Herramientas
Las herramientas para desarrollar ontologas son tan variadas como los lenguajes Las herramientas que sern discutidas y utilizadas son:
Protg RACER
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
43
Protg
Es gratis, open source Est basado en Java, es extendible Es un editor de ontologas y marco de trabajo de bases de conocimiento Define la estructura de una ontologa Define y administra instancias
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
44
Protg
Integrado con GUI y plugins:
OWLWizard Plugin para guiar paso a paso en la construccin de clases, propiedades, etc. OWLViz Plugin para el despliegue grfico de las jerarquas de las clases ezOWL Plugin para el despliegue grfico de las jerarquas de las clases, las propiedades y restricciones de cada clase JADEBean Generator Plugin para producir clases Java a partir de la ontologa, para que JADE puede utilizar y entender la ontologa
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
45
RACER
Razonador (clasificador) basado en lgicas descriptivas Sistema de razonamiento de lgica descriptiva Motor de inferencia semntico para desarrollar ontologas Proveedor de la lgica modal KM con calificadas modalidades y axiomas.
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
46
Agentes y ontologas
Una ontologa se escribe en algn lenguaje de formalizacin de ontologas que la hace independiente del contexto de uso Varios agentes pueden compartir conocimiento si estn de acuerdo en la semntica dada por una cierta ontologa Una ontologa comn define el vocabulario con el que los agentes intercambian mensajes (consultas y asertos)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
47
Un compromiso de un agente con una cierta ontologa garantiza la consistencia pero no la completitud respecto a las consultas y asertos utilizando el vocabulario de la ontologa
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
48
Qu se necesita?
Lenguaje OWL Protg, versin 3.0
Plugin Plugin Plugin Plugin Plugin OWL OWLWizard OWLViz ezOWL BeanGenerator
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
50
Lo primero es
Instalar Protg, completo Colocar el ejecutable de RACER en la ruta deseada Abrir Protg Seleccionar OWL Files como formato para el nuevo proyecto
New para empezar un proyecto nuevo, o Build para usar un archivo OWL existente
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
51
Lo primero es (cont.)
Seleccionar en el men Project la opcin Configure y marcar:
OWLViz ezOWL
Seleccionar en el men OWL la opcin OWL Preferences y, en la pestaa General en la parte llamada Language Profile escoger OWL DL Guardar el proyecto como pizzaOntology-v1 Poner a ejecutar RACER
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
52
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
53
Construccin de la ontologa
Primeras clases a crear:
DomainEntity SelfStandingEntity (subclase de DomainEntity) Con el Wizard hacer el grupo de clases:
Pizza PizzaBase PizzaTopping (subclases de SelfStandingEntity) ThinBase HeavyBase (subclases de PizzaBase) VegetableTopping MeatTopping FishTopping CheeseTopping - FruitTopping (subclases de PizzaTopping)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
54
Construccin de la ontologa
Primeras clases a crear:
Con el Wizard hacer el grupo de clases:
Mushroom Tomato HotPepper Onion (subclases de VegetalTopping) Pepperoni Jam SpicyBeef (subclases de MeatTopping) Anchovies Tuna (subclases de FishTopping) Mozzarella Parmesan (subclases de CheeseTopping) Pineapple (subclase de FruitTopping)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
55
Construccin de la ontologa
Propiedades a crear:
hasPart, dominio Pizza Subpropiedades de hasPart:
hasBase, dominio Pizza y rango PizzaBase, nico valor, por lo menos una base, funcional y funcional inversa hasTopping, dominio Pizza y rango PizzaTopping, multiple, al menos un ingrediente
hasFatContent, dominio PizzaTopping y rango FatContent hasSpiciness, dominio PizzaTopping y rango Spiciness
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
56
Construccin de la ontologa
Clases a crear (subclases de Pizza):
MargheritaPizza: mozzarella y tomato SpicyBeefPizza: mozarrella, tomato y spicy beef ProteinLoversPizza: MeatTopping FishTopping CheeseTopping (clase definida, anaranjado) HotSpecialPizza: mozzarella, tomato, hot pepper y spicy beef CheesePizza: CheeseTopping (clase definida, anaranjado) VegetarianPizza: VegetableTopping CheeseTopping (clase definida, anaranjado)
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
57
Construccin de la ontologa
Clase a crear:
ValuePartition (los valores son disjuntos), usar Wizard Create Value Partition:
Spiciness, valores: Hot, Medium, Bland FatContent, valores: LowFat, HighFat
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
58
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
60
Referencias
RDF, DAML+OIL y OWL:
http://www.w3.org http://www.daml.org
Protg:
http://protege.stanford.edu
RACER:
http://www.sts.tu-harburg.de/~r.f.moeller/racer/
Elaborado como parte del Proyecto @LisTechNet - WP4 Escuela de Ciencias de la Computacin e Informtica
61