1. Datos en la Web
2º Clase – Web semántica
Galiano, Sebastián
LCC, UNR
Rosario, 2008
2. Habíamos dicho que XML era una familia de tecnologías.
Conozcamos 3 lenguajes de esta familia que han sido adoptados
como estandartes por la W3C:
XPath : Localización de paths (y su extensión XPointer)
XSLT: Transformaciones XSL ( Extensible Stylesheet Language )
XQuery: lenguaje de consulta de bases de datos para XML
3. Xpath
XPath es un lenguaje empleado para seleccionar partes de un
documento empleando path expressions
Un path expression es una secuencia de pasos separados por “/”
Similar a la estructura de directorios en un filesystem
El resultado de una path expression: un conjunto de valores que,
junto con sus elementos/atributos hacen match con la ruta
especificada
4. Xpath
Operadores
Existen muchas funciones que se pueden aplicar a los valores de los elementos o bien
a los atributos, los cuales también son evaluados al momento de verificar el path
6. XPointer
XPointer o Lenguaje de punteros XML es un estándar del W3C que proporciona
una forma de identificar de forma única fragmentos de un documento XML con el
objeto de realizar vínculos.
La especificación XPointer ofrece un mecanismo para direccionamiento de
documentos XML en función de su estructura interna, lo que permite examinar su
estructura jerárquica al mismo tiempo que se seleccionan sus partes internas,
como elementos, valores de atributos, contenido de caracteres y posiciones
relativas.
XPointer se encuentra por encima del XPath. La extensión XPointer permite a
XPath:
Seleccionar puntos, intervalos y nodos.
Utilizar coincidencias de cadenas para buscar información.
Utilizar expresiones de direccionamiento en referencias de URI como
identificadores de fragmentos.
7. XPointer
Ejemplo
Una expresión XPointer se añade a un URI de esta manera:
#xpointer( expresión )
Se pueden concatenar expresiones Xpointer.
Estas se evalúan de izquierda a derecha mientras devuelvan un conjunto
vació de nodos
8. URI
Pero … qué es un URI (Uniform Resource Identifier)?
Un URI es una cadena corta de caracteres que identifica inequívocamente un recurso
(servicio, página, documento, dirección de correo electrónico, enciclopedia, etc).
Consta de las siguientes partes:
esquema:autoridad:ruta?consulta#fragmento
Esquema: nombre que se refiere a una especificación para asignar los identificadores (urn:,
tag:, cid:). En algunos casos también identifica el protocolo (http:, mailto:, ftp:)de acceso al
recurso.
Autoridad: elemento jerárquico que identifica la autoridad de nombres (“//es.wikipedia.org”).
Ruta: Información que identifica el recurso en el ámbito jerárquico del esquema URI.
Consulta: Información que identifica el recurso en el ámbito no jerárquico (usualmente pares
quot;clave=valorquot;) del esquema URI. Se indica su comienzo mediante el carácter '?'.
Fragmento: Permite identificar una parte documento. Se indica su comienzo mediante el
carácter '#'.
Hay dos tipos de URI:
URL identifica el recurso a través de cómo es accedido, lo da una dirección (where).
URN crea un nombre único a través de un namespace, le da un nombre (what).
9. XSLT – Transformaciones XSL
•Una stylesheet almacena las opciones de formato de un documento,
generalmente de manera separada de éste.
•Originalmente XSL fue diseñado para generar HTML desde XML y aunque
sigue siendo lo más popular, existen ya muchas más aplicaciones
•XSLT es un lenguaje de transformación de propósito general
•XML a XML, XML a HTML.
•Las transformaciones de XSLT son expresadas a través de reglas llamadas
templates
•Los templates combinan selecciones de XPath con construcciones nuevas a
partir de esos resultados
10. XSLT – Transformaciones XSL
Los match attributes de xsl:template
especifican un patrón en Xpath.
Dentro de cada template se procesan
los resultados obtenidos en XPath
xsl:value-of selecciona e imprime el
valor especificado ej. customer-name
Por default, en un documento XML, aquellos que no hacen match con ningún template
pasan directamente a la salida. Por ello la última regla, para evitar esta situación
<xsl:template match=“*”/>
12. XQuery
El porqué?:
Necesidad de un lenguaje para manejar colecciones de datos XML
DOM y SAX requieren mucho código y muy complejo
Bindings2 no son útiles en todas las situaciones que se usa XML
XSLT solo sirve cuando se desea obtener una representación diferente de
los datos
Un ejemplo donde no sirven ninguno de los tres mencionados es en las
bases de datos XML Nativas
Es necesario un lenguaje que permita definir de forma rápida y compacta,
consultas o recorridos complejos sobre colecciones de datos en XML, los
cuales devuelvan todos los nodos que cumplan ciertas condiciones. Además
debe ser declarativo. Por eso se hizo … Xquery.
13. XQuery
XQuery es un lenguaje de consultas diseñado para consultar
colecciones de datos XML.
Es un lenguaje funcional.
Es semánticamente similar a SQL, pero incluye algunas
capacidades de programación, referidas al manejo de jerarquías y
orden de los datos.
En XQuery las expresiones y valores devueltos son dependientes
del contexto
Se derivó de las propuestas previas: XML-QL, YATL, Lorel, y Quilt, que a su vez
derivó de Xpatch 1.0, XML-XQL, SQL y OQL.
Está basado en XPath y en los XML Schema datatypes
14. XQuery
En XQuery las consultas pueden estar compuestas por cláusulas de hasta cinco
tipos distintos. Las consultas siguen la norma FLWOR (leído como flower), siendo
FLWOR las siglas de For, Let, Where, Order y Return
15. XQuery
For y let pueden usarse tantas veces como se desee en una consulta,
incluso dentro de otras cláusulas. Las cláusulas where, order by y return
puede ser declaradas solo una vez.
La consulta siguiente es válida y devuelve los títulos de los libros que tienen algún
autor se nombre “Stevens”:
doc(quot;libros.xmlquot;)/bib/libro/titulo[/bib/libro/autor/apellido='Stevens']
17. XQuery
Expresiones Condicionales
XQuery también soporta expresiones condicionales del tipo “if-then-else”
con la misma semántica que en los lenguajes de programación más
habituales (C, Java, Delphi, etc..).
19. XQuery
Operadores y funciones principales
XQuery soporta operadores y funciones matemáticas, de cadenas, para el tratamiento
de expresiones regulares, comparaciones de fechas y horas, manipulación de nodos
XML, manipulación de secuencias, comprobación y conversión de tipos y lógica
booleana. Además permite definir funciones propias y funciones dependientes del
entorno de ejecución del motor XQuery.
20. XQuery
Motores XQuery open - source.
• Qexo: escrito en java, con licencia GPL, está dentro del paquete Kawa.
• Saxon: escrito en Java. Saxon-B, GPL, muy básico.
Saxon-Sa es propietario, muy completo.
• Qizx/Open es el motor con licencia GPL mas completo actualmente.
Otras herramientas relacionadas con XQuery
Xquark Bridge: es una herramienta que permite importar y
exportar datos a bases de datos relacionales utilizando XML.
Soporta manipulación y consultas de datos en XML usando
Xquery. Soporta MYSQL, Oracle, SQLServer, Sybase.
Tiene licencia GPL.
BumbleBee: se utiliza para evaluar motores Xquery.
Soporta los siguientes motores Xquery open-source: Qexo, Qizx/
Open, Saxon, Cerisent, Ipedo, Ipsi-xq, X-hivel.
Es propietario.
21. XML Databases
2 categorías de documentos XML:
• Data-Centric: usados para el transporte de datos ya que probablemente
estaremos hablando de datos estructurados organizados en XML.
• Document-Centric: tienen una estructura irregular y sobre todo, esa
estructura es importante
Para cada caso la manera de realizar una consulta es diferente:
• Data-Centric: podemos pensar en datos estructurados que pueden
extraerse del documento e indexarse con alguna base de datos convencional
• Document-Centric: el reto no es tan trivial ya que se pretende hacer
consultas pero no solo sobre el contenido, sino también sobre la estructura del
documento.
De modo que una base de datos XML es aquella que define un modelo lógico de un
documento XML y almacena y recupera documentos de acuerdo a ese modelo.
22. XML Databases
Bases de Datos Bases de Datos Nativas
Habilitadas para XML de XML
23. WEB Semántica
La Web actual posee una gran capacidad para almacenar datos y puede leer y
visualizar los contenidos, pero no es capaz de pensar ni de entender todo lo que
contiene.
Se precisa, por lo tanto, un nueva Web -la Web semántica- que hará posible no
sólo almacenar los datos, sino entender e interpretar el sentido de esta
información.
La Web Semántica ha sido impulsada por Tim Berners Lee, y otras personas
relacionados con el W3C
La Web semántica sería una red de documentos quot;más inteligentesquot; que permitan, a
su vez, búsquedas más inteligentes. La idea sería aumentar la inteligencia de los
contenidos de las páginas web dotándolas de contenido semántico.
De esta forma, Berners-Lee presenta la nueva arquitectura en que se basará la
Web Semántica, no entendida como una nueva Web, sino como una extensión de
la Web existente.
La Web Semántica vendría a ser una extensión de la Web actual dotada de
significado, esto es, un espacio donde la información tendría un significado bien
definido, de manera que pudiera ser interpretada tanto por agentes humanos como
por agentes computerizados.
25. RDF: resource description framework
Introducción
Es muy difícil automatizar cualquier cosa en la Web, debido al volumen
de información que contiene, no es posible gestionarla manualmente.
La solución que se propone en RDF es el uso de metadatos para
describir los datos contenidos en la Web.
Los metadatos son quot;datos sobre los datosquot; o en nuestro caso
quot;datos que describen recursos Webquot;. La distinción entre quot;datosquot; y
quot;metadatosquot; no es incuestionable; es una diferencia creada en primera
instancia por una aplicación particular, y muchas veces el mismo recurso
se interpretará de ambas formas simultáneamente.
XML introduce de cierta forma semántica a través de los propios metadatos
(etiquetas), pero eso está ligado a la sintaxis principalmente.
Necesitamos algo preciso y formal para poder definir la semántica de un
documento XML.
26. RDF: resource description framework
Definición:
RDF es una base para procesar metadatos; proporciona interoperabilidad
entre aplicaciones que intercambian información legible por máquina en la
Web. Se destaca por la facilidad para habilitar el procesamiento
automatizado de los recursos Web.
El objetivo general de RDF es definir un mecanismo para describir recursos
que no cree ninguna asunción sobre un dominio de aplicación particular, ni
defina (a priori) la semántica de algún dominio de aplicación. La definición
del mecanismo debe ser neutral con respecto al dominio, sin embargo el
mecanismo debe ser adecuado para describir información sobre cualquier
dominio.
RDF puede definirse como un sistema simple. Un mecanismo de
razonamiento debe construirse sobre este sistema de referencia.
27. RDF: resource description framework
Reglas
RDF usa URIs para identificar recursos. Describe estos Recursos con
sus Propiedades, y a su vez los Valores de estas Propiedades.
Rdf:RDF es la raíz de todo
documento RDF y contiene los
namespaces
Rdf:Description identifica el recurso
con el atributo.Contiene elementos
que describen el recurso.
28. RDF: resource description framework
Contenedores: Un contenedor es un recurso que contiene cosas, las cuales
son llamadas miembros, y no listas de valores.
El elemento <rdf:Bag> es usado para
describir miembros sin orden alguno.
El elemento <rdf:Seq> es usado para
describir miembros en forma ordenada
El elemento <rdf:Alt> es usado para describir
una lista de valores alternativos.
El usuario solo puede seleccionar un valor.
29. RDF: resource description framework
Un contenedor solo dice que los recursos contenidos son miembros, pero no si
otros miembros no son permitidos. Por lo tanto no puedo cerrarlo.
Las Colecciones se usan con el propósito de describir grupos que contengan
solo los miembros especificados.
Una colección es descripta por el atributo rdf:parseType=quot;Collectionquot;.
30. RDF: resource description framework
Reification: son afirmaciones de alto nivel que permiten expresar conocimiento
sobre otras afirmaciones. Permite ver a una afirmación como un recurso,
representando explícitamente al sujeto, predicado, objeto y tipo de la
afirmación..
31. RDF: resource description framework
Desventajas
Dos documentos pueden usar definiciones diferentes del mismo
concepto y no se puede decidir que son equivalentes.
Tiene problemas de ambiguedad en la definición de sus elementos.
No se permite el manejo/definición de restricciones de integridad.
RDF no se ajusta bien a documentos XML.
Algunas partes de RDF son complejas.
32. RDFS: RDF Schema
Definición:
Es un conjunto de Recurso y Propiedades y esta echo para facilitar la definición de
vocabularios
RDF Schema implementa un modelo de datos orientado por objetos.
Se diferencia de los modelos de datos OO en que se debe seguir una metodología
bottom-up
Se definen las propiedades y luego se establece a que clases caracterizan.
XML: elementos, atributos y notación de las etiquetas.
URI: Identificación Universal.
NameSpaces: identificación de los vocabularios.
RDF: modelo de tripletas (sujeto – predicado - valor)
Estructuras:
Clases: grupo de entes o recursos con características comunes. Están usualmente
caracterizados por un URI.
Instancias: objetos de clases o interrelaciones. La extensión de una clase, es el conjunto de
instancias de la misma.
Relación IS-A: relación de subclase entre clases.
Propiedades: representa la característica de un ente o asociaciones entre grupos de entes.
Dominio: representa el dominio de una propiedad.
33. RDFS: RDF Schema
Elementos:
rdfs:Class: representa una clase. Se usa conjuntamente con rdf:Property,
rdfs:rango y rdfs:domain para asignar propiedades a una clase.
Requiere de un URI como identificador en el atributo rdf:about.
Los elementos <rdfs:label>, <rdfs:subclassOf>, <rdfs:comment>,
<rdfs:isDefinedBy> se usan como subelementos.
34. RDFS: RDF Schema
Elementos:
rdfs:label: define una etiqueta para una clase o propiedad.
rdfs:subClassOf: especifica que una clase es la especialización de otra
clase. La clase hereda todas las propiedades de la clase madre.
<rdfs:comment>: permite añadir comentarios a las clases y propiedades.
<rdfs:isDefinedBy>: define el nameSpace del sujeto.
rdfs: domain: define cual es la clase a la que una propiedad pertenece.
rdfs:range: define el conjunto de valores posibles de una propiedad.
rdfs:subPropertyof: declara que la propiedad sujeto es subpropiedad de otra
propiedad.
rdfs:seeAlso: permite referirse a un recurso que provee información
adicional al recurso actual.
rdfs:Literal: representa un valor constante representado como una cadena
de caracteres.
36. Lenguaje SPARQL
En el marco de la recuperación y organización de la información las siglas
SPARQL (SPARQL Protocol And RDF Query Language) definen un lenguaje de
recuperación para RDF/RDFS, debido a que SPARQL permite consultas que
consisten en patrones de tripletas.
Esta tecnología de consulta SPARQL permite que las personas pueden centrarse
en la información que quieren, sin tener en cuenta la tecnología de la base de
datos o el formato utilizado para almacenar esos datos.
Debido a que las consultas en el lenguaje SPARQL expresan objetivos de alto
nivel, es fácil extenderlos a orígenes de datos inesperados, o incluso transferirlos a
nuevas aplicaciones.
El lenguaje de recuperación SPARQL ha sido diseñado para un uso a escala de
la Web, así permite hacer consultas sobre orígenes de datos distribuidos,
independientemente del formato. A la hora de recuperar información la creación de
una sola consulta a través de diferentes almacenes es mejor que múltiples
consultas, además de tener un coste menor y de ofrecer unos resultados mejores.
38. Taxonomías
Una taxonomía es una jerarquía semántica en la cual entidades de
información son relacionadas ya sea por subclasificaciones o
subclases
Por qué usar taxonomías ?
Es importante tener presencia, si algo no se encuentra no tiene
valor para el que lo busca.
Encontrar productos y servicios
Para navegar por la información
Actualmente existen muchas formas de generar taxonomías, un
ejemplo son los XML TopicMaps (http://www.topicmaps.org/xtm)
que proveen un modelo y gramática para representar la estructura
de recursos de información usados para definir tópicos y las
asociaciones (relaciones) entre ellos.
39. Ontologías
Algunas definiciones previas
quot;Una ontología es un vocabulario acerca de un dominio: términos +
relaciones + reglas de combinación para extender el vocabularioquot;. Neches,
1991.
quot;Una ontología es la especificación de una conceptualizaciónquot;. Gruber, 1993.
(Aquí el término conceptualización se refiere a un modelo conceptual).
quot;Una ontología es una especificación formal de una conceptualización
compartidaquot;. Borst, 1997. (Aquí el término forma se refiere a que es procesable
por ordenador).
quot;Una ontología es una base de datos que describe los conceptos generales o
sobre un dominio, algunas de sus propiedades y cómo los conceptos se
relacionan unos con otrosquot;. Weingand, 1997.
Una ontología necesariamente incluirá un vocabulario de términos y una
especificación de su significado (definiciones e interrelaciones entre conceptos)
que impone estructura al dominio y restringe las posibles interpretaciones.
Uschold-Jasper.
40. Ontologías
En resumen, una ontología es un sistema de representación del conocimiento
que resulta de seleccionar un dominio o ámbito del conocimiento, y aplicar
sobre él un método con el fin de obtener una representación formal de los
conceptos que contiene y de las relaciones que existen entre dichos conceptos.
Una ontología es una especificación de una conceptualización, esto es, un
marco común o una estructura conceptual sistematizada y de consenso no sólo
para almacenar la información, sino también para poder buscarla y recuperarla.
Una ontología define los términos y las relaciones básicas para la compresión
de un área del conocimiento, así como las reglas para poder combinar los
términos para definir las extensiones de este tipo de vocabulario controlado.
Todas las conceptualizaciones (definiciones, categorizaciones, jerarquías,
propiedades, herencia, etc.) de una ontología pueden ser procesables por
máquina.
41. Ontologías
Beneficios
• proporcionan una forma de representar y compartir el
conocimiento utilizando un vocabulario común
• permiten usar un formato de intercambio de conocimiento
• proporcionan un protocolo específico de comunicación
• permiten una reutilización del conocimiento
• son generalmente expresadas en un lenguaje basado en
lógica, lo que les permite ser detalladas, exactas, consistentes y
completas.
42. Ontologías
Componentes
• Conceptos: son las ideas básicas que se intentan formalizar. Clases de
objetos, métodos, planes, estrategias, procesos de razonamiento, etc.
• Relaciones: representan la interacción y enlace entre los conceptos de un
dominio. Suelen formar la taxonomía del dominio. Subclase-de, parte-de,
parte-exhaustiva-de, conectado-a, etc.
• Funciones: son un tipo concreto de relación donde se identifica un elemento
mediante el cálculo de una función que considera varios elementos de la
ontología. Asignar-fecha, categorizar-clase, etc.
• Instancias: se utilizan para representar objetos determinados de un concepto.
• Reglas de restricción o axiomas: son teoremas que se declaran sobre
relaciones que deben cumplir los elementos de la ontología.
Los axiomas, junto con la herencia de conceptos, permiten inferir conocimiento que
no esté indicado explícitamente en la taxonomía de conceptos
43. Ontologías
Conceptos Claves
Clase: Es un objeto que define una categoría. Describe conceptos en el dominio del
discurso. Existen las Subclase, clases hija de alguna otra clase.
Clase jerárquica: colección de clases conectadas por relaciones(class hierarchy).
Casos (instance): Ejemplos específicos pertenecientes a alguna clase,objetos de una clase.
Roles (Slots): Propiedades de cada concepto que describen varias características y
atributos del concepto.
Facetas: Se utilizan para definir qué tipo de valor puede contener un slot particular, valores
permitidos, número de valores, etc. También se denominan restricciones de roles.
Valor: Describe una propiedad que se aplica a alguna clase o instance.
Tipo: Define el tipo de valor (como cadena de caracteres, número, booleano, etc.)
Cardinalidad: Define cuántos valores puede tener un slot individual (máximo y mínimo).
Herencia (inherence): Es el proceso por el cual las subclases e instances de alguna clase
heredan propiedades y valores definidos más arriba en la jerarquía.
Variable: Espacio vacío que puede llenarse preguntando a clases e instances. Cada variable
comienza con un signo de interrogación.
Relación: Nuevo conocimiento que se obtiene por deducción, partiendo del conocimiento
que se encuentra en la ontología. Las relaciones utilizan variables.
También hay que tener en cuenta: primitiva, base de conocimiento y refinamiento
44. Ontologías
Clasificaciones:
Según el ámbito del conocimiento al que se apliquen:
Generales: son las ontologías de nivel más alto ya que describen conceptos generales
(espacio, tiempo, materia, objeto, etc.)
De dominio: describen el vocabulario de un dominio concreto del conocimiento.
Especificas: son ontologías especializadas que describen los conceptos para un campo
limitado del conocimiento o una aplicación concreta.
Según el tipo de agente al que vayan destinadas:
Lingüísticas: se vinculan a aspectos lingüísticos, esto es, a aspectos gramáticos, semánticos y
sintácticos destinados a su utilización por los seres humanos.
No lingüísticas: destinadas a ser utilizadas por robots y agentes inteligentes.
Mixtas: combinan las características de las anteriores.
Según el grado o nivel de abstracción y razonamiento lógico que permitan:
Descriptivas: incluyen descripciones, taxonomías de conceptos, relaciones entre los
conceptos y propiedades, pero no permiten inferencias lógicas.
Lógicas: permiten inferencias lógicas mediante la utilización de una serie de componentes
como la inclusión de axiomas, etc.
45. Ontologías
A la hora de diseñar un ontología debemos tener en cuenta 5 cuestiones
clave:
claridad: una ontología debe poder comunicar de manera efectiva el
significado de sus términos. Las definiciones serán lo más objetivas
posibles y deben explicarse también en lenguaje natural.
coherencia: una ontología debe permitir hacer inferencias que sean
consistentes con las definiciones.
extensibilidad: deben anticiparse nuevos usos para así poder permitir
extensiones y especializaciones.
especificidad: se debe especificar a nivel de conocimiento, sin que
dependa de una codificación particular a nivel de símbolo.
precisión: debe hacerse la menor cantidad de quot;suposicionesquot; acerca del
mundo modelado.
46. Ontologías
Lenguajes de Ontologías
Simple HTML Ontology Extensions: Fue el primer lenguaje de etiquetado para diseñar
ontologías en la Web. Este lenguaje nació antes de que se ideara la Web Semántica.
Las ontologías y las etiquetas se incrustaban en archivos HTML.
Ontology Inference Layer: Este lenguaje, derivado en parte de SHOE, fue impulsado
también por el proyecto de la Unión Europea On-To.Knoledge. Utiliza ya la sintaxis de
XML y está definido como una extensión de RDFS. La principal carencia de este
lenguaje es la falta de expresividad para declarar axiomas.
DAML y OIL: Se basa ya en estándares del W3C. El lenguaje DAML se desarrolló como
una extensión del lenguaje XML y de RDF y para extender el nivel de expresividad de
RDFS. DAML- OIL aleja del modelo basado en clases y potencia la lógica descriptiva. Es
más potente que RDFS para expresar ontologías
OWL: OWL Web Ontology Language (http://www.w3.org/TR/owl-features/).
Lo veremos a continuación. Es la solución que propone el W3Cpara describir ontologías.
Knowledge Interchange Format: es un lenguaje para representar ontologías basado
en la lógica de primer orden.
47. Ontologías
Las ontologías, son pues, vocabularios comunes que, junto con otras tecnologías que
proveen de herramientas y lenguajes para generar marcado y procesamiento
semántico, harán posible la WebSemántica.
Por esto, es necesario que los documentos generados para la Web posean una
semántica formalizada en ontologías con el fin de que este conocimiento, sea
intercambiado por los agentes de software.
Un repositorio de ontologías y recursos sobre ontologías, que también ofrece un
buscador y un navegador internos, se encuentra en SchemaWeb:
http://www.schemaweb.info/schema/BrowseSchema.aspx
También podemos encontrar en la red numerosos recursos sobre ontologías:
herramientas, aplicaciones y software, tutoriales y acceso a ontologías publicadas en
OpenDirectory:
http://dmoz.org/Reference/Knowledge_Management/Knowledge_Representation/Ontologies/
y en otras muchas webs como Kaon:
http://kaon.semanticweb.org/ontologies
48. Ontologías
También existen herramientas y programas para realizar anotaciones en
páginas web con lenguajes de marcado propios.
CORESE: una herramienta RDF basada en grafos conceptuales.
Kowari: escrita en Java y de código abierto que soporta RDF y OWL.
Ontomat: herramienta de código abierto que soporta marcado OWL
PROTÉGÉ: editor de ontologías de código abierto para construir ontologías
sobre RDFS, OWL y XML Schema. Es uno de los editores más autilizados.
SUMO (Suggestd Upper Merged Ontology): http://www.ontologyportal.org/
TM-Builder: es un constructor de ontologías basado en Topic Maps
WSMO Studio: es un editor de ontologías para modelado de servicios de la
Web Semántica
49. Ontologías
Además, para potenciar el uso de ontologías, se han desarrollado
aplicaciones específicas de búsqueda de ontologías en la Web.
Tales como OntoAgent: http://www.i-u.de/schools/eberhart/ontoagent/,
para que indiquen a los usuarios las ontologías ya existentes y sus
características para poder utilizarlas en su sistema.
Herramientas como OntoJava: http://www.i-u.de/schools/eberhart/ontojava/
un compilador que traslada ontologías realizadas con Protégé a bases de
datos de objetos Java.
OntoSQL que permite usar una base de datos relacional como una base de
datos deductiva http://www.i-u.de/schools/eberhart/ontosql/
O RDFCrawler para buscar y escanear datos RDF en la Web:
http://www.i-u.de/schools/eberhart/rdf/
50. OWL - Web Ontology Language
Su antecedente es DAML+OIL, en los cuales se inspiraron los creadores de
OWL para crear el lenguaje.
Desarrollado por el Web Ontology Group del W3C Consortium, actualmente es
el lenguaje estándar para descripción de ontologías en la Web.
OWL extiende RDFS para permitir la expresión de relaciones complejas entre
diferentes clases RDFS, y mayor precisión en las restricciones de clases y
propiedades específicas.
OWL proporciona más vocabulario que RDF(S) para describir propiedades y
clases tal como: relaciones entre clases (por ejemplo “clases disjuntas”),
cardinalidad (por ejemplo “exactamente uno”), igualdad, más tipos para las
propiedades, características de las propiedades (por ejemplo “simetría”), y
clases enumeradas.
51. OWL - Web Ontology Language
De acuerdo al nivel de expresibilidad que se quiera:
1. OWL Lite da soporte a aquellos usuarios que primordialmente necesitan una
clasificación jerárquica y restricciones simples. Por ejemplo, soporta restricciones
cardinales, pero solamente permite valores cardinales de 0 ó 1. OWL Lite tiene una
más baja complejidad formal que OWL DL.
3. OWL DL da soporte a aquellos usuarios que quieren la máxima expresividad
mientras conservan completamente la computacionalidad y resolubilidad. OWL DL
incluye todos los constructores del lenguaje OWL, pero pueden usarse solamente
bajo ciertas restricciones OWL DL se denomina así debido a su correspondencia
con las descripciones lógicas (DL), un campo de investigación que han estudiado
los lógicos para la fundación formal de OWL.
5. OWL Full da soporte a usuarios que requieren el máximo de expresividad y la
libertad sintáctica de RDF sin garantías computacionales. Por ejemplo, en OWL Full
una clase puede ser tratada simultáneamente como una colección de individuos y
como un individuo por derecho propio. OWL Full permite a una ontología aumentar
el significado del vocabulario predefinido (RDF ó OWL).
52. OWL - Web Ontology Language
Sintaxis y Semántica
53. OWL - Web Ontology Language
Sintaxis y Semántica
57. Protégé
Protégé es un editor de ontologías de código abierto
para construir ontologías sobre RDFS, OWL y XML
Schema.
La plataforma Protégé soporta dos formas de modelar
ontologías mediante los editores “Protégé-Frames” y
“Protégé-OWL”.
Protégé está basado en Java, es extensible, y provee un
ambiente plug-and-play que lo hace una base flexible
para el rápido prototipado y descubrimiento de
aplicaciones.