Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2representación Del Conocimiento
2representación Del Conocimiento
Web Semántica
Raúl Castro Fernández
NIA:100061617
Universidad Carlos III de Madrid
100061617@alumnos.uc3m.es
RESUMEN
En este documento se trata la relación de la web semántica con la
representación del conocimiento, y se muestra una
implementación a modo de ejemplo.
Categorías y Descriptores
I. [Knowledge Representation Formalisms and Methods]:
Relation Systems [4], Representation Languages [5],
Semantic Networks [7].
Términos Generales
Documentación, Experimentación, Factores Humanos, Lenguajes,
Teoría.
Palabras Clave
Representación del conocimiento, ontologías, taxonomías, web
semántica, redes semánticas, grafos semánticos, RDF, RDFa,
RDFS, OWL, SPARQL.
1.INTRODUCCIÓN
La ingeniería del conocimiento es una disciplina perteneciente a la
rama de la inteligencia artificial que busca el desarrollo de
sistemas expertos, para lo cual se apoya en la representación del
conocimiento de un determinado campo, bajo un sistema
artificial.
La web semántica se concibe con la idea de añadir a la web
tradicional unos metadatos que describan la información
contenida en la página. Estos metadatos se suponen entendibles
por parte de las máquinas. La idea inicial es conseguir que
mediante estos metadatos se amplíe la interoperabilidad entre las
máquinas sin que el humano intervenga de una forma activa.
Los metadatos semánticos que conforman la web semántica son
una forma de representación del conocimiento, que deben ser
cuidadosamente elegidos e introducidos en la práctica para
alcanzar el fin último del concepto, el cual sería desde un punto
de vista optimista, que la web en general conformase un sistema
experto, y que éste sistema experto no se centrase en un dominio
concreto, sino que aprovechase la universalidad de la web para
alcanzar el máximo número de dominios.
Aunque se conciba como utópico lo expuesto en el apartado
anterior, sí es mucho más viable representar el conocimiento
asociado a un determinado dominio, para la web semántica esto
supone crear un vocabulario, que forme una red semántica, la cual
a la vez sea capaz de representar todo el conocimiento asociado a
un campo concreto.
2.ACERCAMIENTO A LA WEB
SEMÁNTICA
La web semántica por tanto, es el hecho de añadir metadatos
semánticos al contenido de la página, del mismo modo que se
añade el estilo con una hoja CSS, por ejemplo.
Cuando observamos una web, entendemos lo que nos dice porque
leemos el texto y sabemos en qué contexto esta esa web. Lo cual
no supone ningún problema, puesto que conseguimos de la web lo
que buscamos. Como ejemplo, cuando queremos buscar algo en
concreto, y para ello usamos un buscador para acceder a la
información que nos interesa, debemos indicar las palabras clave
de esa información, puesto que, a grosso modo, el buscador
explorará su base de datos buscando coincidencias de esas
palabras para devolver un resultado. De esta manera, si
escribimos: "universidad telecomunicaciones", el sistema nos
devolverá aquellas páginas donde aparezcan tanto temas
relacionados con universidad, como temas relacionados con
telecomunicaciones, lo cual es un resultado lógico.
El problema surge cuando nos interesa algo como por ejemplo,
"las universidades donde exista carrera de telecomunicaciones",
en este caso nos gustaría esta información en concreto y no toda la
que devolvería el sistema al introducir: "universidad,
telecomunicaciones", que sería la correspondiente a los términos
'universidad' y 'telecomunicaciones' por separado.
Los metadatos, o más concretamente, la red semántica que
conforma la base de la web semántica provee de una solución para
este problema. Si dotamos a una página de una universidad de
información semántica relevante, que asocie la carrera de
telecomunicaciones a esa universidad, cuando introduzcamos algo
como: "universidad que imparta telecomunicaciones", será mucho
más sencillo para las máquinas ofrecer unos resultados mucho
más acotados, de hecho, sólo nos ofrecerían las páginas de
universidades donde se ofrezca la carrera de telecomunicaciones.
Este sencillo ejemplo no es concluyente, puesto que con la
potencia actual de los buscadores, entre los resultados que nos
ofrecería el servidor, con seguridad, se encontraría alguno que
respondiese a nuestras necesidades, pero si imaginamos un
ejemplo más preciso como pueda ser: "aquellos pisos de 2
habitaciones en Punta Cana, con aire acondicionado, fachada de
color rojo y cuyo precio se encuentre entre 700€ y 800€" deja de
ser trivial encontrar información válida usando un buscador
actual, en cambio, sería igual de fácil que en el caso anterior para
la máquina encontrar la información correcta si nos apoyásemos
en la web semántica, puesto que ésta clasificará esa información
sobre una base de conocimiento, que será una red semántica.
3.REPRESENTACIÓN DEL
CONOCIMIENTO
Para llegar a la solución anterior, debemos, antes de nada, definir
el conocimiento asociado a una web, los elementos que la
conforman, así como las relaciones que asocian estos elementos
entre sí. Para esto hacemos uso de metadatos, como se ha
comentado más arriba. Estos metadatos los conforman triplas
OAV (Objeto-Atributo-Valor). Por ejemplo si queremos expresar:
"Coche de color rojo", la tripla asociada podría ser: "coche(O)-
tiene_color(A)_rojo(V)".
Para definir una red semántica que trate sobre un dominio
concreto deberemos en primera instancia conocer los elementos
que lo conforman y las relaciones entre ellos. Una vez conocemos
esto, debemos crear los metadatos que describan ese
conocimiento. Para esto creamos un esquema conceptual lo más
fiel posible al conocimiento que hemos extraído. Este esquema
conceptual recibe el nombre de ontología, y es una estructura
fácilmente explorable por los sistemas, de modo que se facilita
muchísimo la labor de búsqueda o clasificación de la información.
Una ontología es por tanto una forma de representación del
conocimiento. A continuación se muestra una red semántica, en el
formato más habitual en el que lo podemos encontrar, que es
representarlo como si de un grafo se tratara. De esta forma queda
muy claro para un humano las relaciones entre los elementos que
conforman la red semántica (nodos) y las relaciones entre ellos
(las uniones entre nodos).
En el grafo anterior estamos agrupando un conocimiento
taxonómico, como son las relaciones entre los distintos seres del
reino animal, así como varias propiedades que los caracterizan.
Vemos que en el grafo, cada nodo corresponde a una entidad, ya
sea gato(un ser), mamífero(una característica de algunos seres), o
agua(refiriéndose al lugar donde vive, lo cual también termina por
ser una característica). Para conformar el grafo estos nodos se
unen mediante líneas etiquetadas con el nombre de ciertos
atributos que relacionan un nodo con otro. Como podemos
apreciar las líneas son dirigidas, indicando en qué sentido existe,
o se cumple el atributo etiquetado en la propia línea. Si
extrajésemos el conocimiento que el grafo representa, deberíamos
ir a un nodo, que sería el objeto (O), seguir la línea que lo
relacione con otro nodo, siendo la etiqueta de esta línea, el
atributo (A), y finalmente llegaríamos al nodo destino, que sería el
valor (V) para el que se cumple la relación.
De este modo extraemos las triplas OAV de una representación
del conocimiento en forma de grafo. En este punto, si juntásemos
todas las triplas OAV que hemos extraído del grafo,
conformaríamos una ontología que trataría sobre las relaciones del
reino animal, es decir, sobre la representación del conocimiento
que buscamos.
Con lo que tenemos hasta ahora, no obstante, no proveemos de
una solución, una tecnología, con la que podamos representar este
conocimiento en un formato más amigable para las máquinas, (un
formato procesable por las máquinas) que al final en el caso de la
web semántica, serán las que tengan que tratar los datos. En el
siguiente apartado se verá las principales tecnologías que nos
permitirán hacer esto y empezaremos algunos de los ejemplos
implementados.
4. ACERCAMIENTO A LOS FORMATOS
DE LA WEB SEMÁNTICA.
Para conseguir que, tras haber recopilado el conocimiento que
queremos representar, podamos expresarlo de tal forma que las
máquinas sean capaces de procesarlo, el W3 lleva años trabajando
en varios lenguajes, basados en su mayoría en la sintaxis XML
que están definidos para tener la capacidad de representar las
ontologías y vocabularios que veamos necesario a través de ir
programando las triplas, y con algunas construcciones un poco
más complejas.
Estos lenguajes son RDFa, RDF, RDFS (una extensión de RDF),
y OWL. Haré una pequeña presentación de cada uno de ellos para
centrarnos luego en RDF para los siguientes ejemplos.
En general, todos estos lenguajes, que en su forma normal se
basan en una sintaxis XML, definen su sintaxis mediante espacios
de nombres XML (XML namespaces). Además, en la cabecera de
un archivo con algún lenguaje de este tipo, también podemos
encontrar espacios de nombres XML definidos e implementados
por terceros, que se pueden incluir en cualquier otro fichero para
ayudar a formar una ontología. Por ejemplo, si queremos hacer
una ontología sobre marcas de motos, modelos y motor, quizá
exista alguien que previamente haya definido y escrito una
ontología sobre las piezas de la moto, de su motor, y en ese caso
podríamos incluir el vocabulario a la hora de definir nuestra
propia ontología.
4.4 OWL
Una vez visto cómo podemos aumentar las posibilidades del
lenguaje RDF, gracias a la extensión RDFS, nos queda ver en qué
consiste OWL, el que es sin duda el lenguaje que mayor
significado semántico nos permitirá añadir, así como el que mayor
libertad otorga a la hora de implementar una ontología.
Del mismo modo que en el caso de RDFS, OWL (Web Ontology
Language), se construye sobre una base en RDF, además, el
propio lenguaje OWL posee las estructuras que añadía RDFS.
Se escribe usando una sintaxis XML como en los casos anteriores,
pero en este caso hay tres variantes del lenguaje, Lite, DL, y Full,
cada una de las cuáles posee unas características propias. A rasgos
generales la versión Lite es más fácilmente procesable por las
máquinas pero ofrece menos posibilidades, en cambio la versión
DL ofrece características de lógica descriptiva lo que lo
convierten en una forma del lenguaje mucho más potente que la
versión Lite. Por último la versión Full se compone de una mezcla
de las anteriores versiones a la vez que procura ser compatible con
RDFS, para que, como hemos comentado, se pueda ampliar una
ontología que esté haciendo uso de RDFS, o bien podamos
implementar una nueva ayudándonos de alguna que estuviera
implementada previamente en RDFS.
Desde un punto de vista técnico, lo que hace OWL es proveer de
una serie de axiomas que dotan de ciertas restricciones a unas
clases que hemos definido (es parecido al concepto del domino de
RDFS) y las relaciones permitidas entre estos elementos. Además
OWL es capaz de usar lógica descriptiva. Esto es, en los
problemas de representación del conocimiento, es habitual que
cuando se escribe una ontología muy grande no se consiga una
claridad total en las definiciones que se hagan de ciertos recursos.
Este problema se puede solucionar casi totalmente aplicando una
lógica a los datos que estamos implementando, pero no es algo
trivial cuando, como decimos, nos encontramos ante una
ontología muy extensa. Es aquí donde entra la capacidad del
lenguaje OWL (en sus formas DL y Full) de aplicar cierta lógica
descriptiva a la ontología.
Conviene por tanto ver qué es exactamente la lógica descriptiva,
para entender como ayuda a la representación del conocimiento, y
en concreto, a las ontologías, y de este modo entender realmente
una de las principales ventajas que ofrece OWL con respecto a los
otros formatos vistos.
4.4.1 Lógica de Descripción
La lógica de descripción puede entenderse como una metodología
a la hora de representar el conocimiento, como puedan ser los
grafos semánticos, pero en este caso, este método, implementado
en la sintaxis de varios lenguajes (entre los cuales se encuentra
OWL), provee de ciertas ventajas que se presentan a continuación.
- La principal ventaja que ofrecen con respecto a otras formas
de representación del conocimiento es que permiten plasmar
ese conocimiento de un modo formal, lo que le dota de
mayor comprensión, y sobre todo de una forma estructurada.
El hecho de que permita representar el conocimiento de una forma
estructurada, es precisamente lo que ayuda a preservar el orden
cuando estamos implementando una ontología muy larga, puesto
que las restricciones estructurales y formales de las que dota a la
implementación hacen más fácil mantener la forma y la estructura,
así como no perjudicar el contenido semántico de la ontología en
cuestión.
Los elementos a destacar de la lógica de descripción son:
- Formalismo descriptivo: Ofrece conceptos, individuos, roles
y constructores para definir los recursos que queremos
representar.
- Formalismo terminológico: Para definir las propiedades de la
terminología descriptiva, es decir, conceptos, individuos,
roles y constructores.
- Formalismo asertivo: Introduce propiedades específicas de
individuos.
- La última característica a destacar y una de las mas
importantes es que son capaces de inferir conocimiento a
partir de un conocimiento dado, mediante algoritmos de
razonamiento.
A la hora de representar el conocimiento con una lógica de
descripción, desde un punto de vista teórico, se usan dos
construcciones, llamados, Tbox (Teminological Box) y Abox
(Assertion Box).
Se usan las Tbox para describir conceptos que tienen una
estructura jerarquizada. Además, son precisamente éstas
estructuras las que contienen todo el vocabulario de un dominio.
Las Abox se usan para describir las relaciones entre los individuos
y conceptos que tengamos. Contienen aserciones (descripción de
propiedades) de individuos (recursos de la ontología en
definitiva).
Una base de conocimiento conformada por Tboxes y Aboxes es
precisamente la estructura desde la cual se puede inferir
conocimiento nuevo a partir del conocimiento ya declarado o
representado.
Tras ver un atisbo de lo que la lógica de descripción nos puede
facilitar las cosas y dotar a la vez de más potencia a las ontologías
que se implementen con OWL, vamos a ver un ejemplo de OWL
para ver las diferencias que introduce con respecto a los otros
formatos vistos anteriormente.
<owl:Ontology
rdf:about="http://ebiquity.umbc.edu/ontology/person.owl#person
">
<owl:versionInfo>0.1</owl:versionInfo>
<rdfs:label>eBiquity Person Ontology</rdfs:label>
<cc:License
rdf:resource="http://creativecommons.org/licenses/by/2
.0/"/>
</owl:Ontology>
<owl:Class rdf:ID="Person">
<rdfs:label>Person</rdfs:label>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#name"/>
<owl:maxCardinality
rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativ
eInteger">1</owl:maxCardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
En el ejemplo anterior, se comienza declarando una ontología,
con un atributo propio de OWL (OWL:Ontology), y vemos
después que la ontología va a tratar sobre “Person”, esto está
descrito con el atributo “about”. Dentro también vemos como se
indica la versión de la ontología (owl:versionInfo), y un
comentario sobre la misma , para lo cual se usa la etiqueta “label”
de RDFS (aquí observamos el primer ejemplo de la extensión que
puede suponer OWL de RDFS, valiéndose de las etiquetas que ya
aportaba RDFS y de las nuevas que introduce OWL) .
Tras cerrar la declaración de la ontología, el ejemplo continua con
la declaración de una clase “Person” (sobre lo que trata la
ontología), por medio de la etiqueta “owl:Class”.
Dentro de esta clase, se usa RDFS (segundo ejemplo de la
reutilización de las etiquetas propias de RDFS en OWL), para
definir una etiqueta para la clase, y una subclase.
Para finalizar el ejemplo, encontramos un caso claro de la
semántica adicional que proporciona OWL con respecto a RDFS,
y es la variedad de restricciones que se pueden definir con OWL a
las propiedades, clases, subclases, que definamos. En RDFS esto
no era tan trivial, podíamos definir un dominio al que sería
perteneciente una propiedad, y también podríamos definir un
rango al que sería aplicable la misma. Con OWL podemos definir
un número mucho mayor de restricciones, y esto lo vemos en el
ejemplo mediante el uso de la etiqueta, “owl:Restriction”.
Vemos con la etiqueta “owl:onProperty”, que hace referencia a la
propiedad #name, (que deducimos será el nombre de la persona),
que ajusta una restricción, con la siguiente etiqueta
(“owl:maxCardinality”), tras la que restringe el número de
nombres de la persona a uno.
Con este sencillo ejemplo se ha ilustrado como OWL es capaz de
reutilizar aquellas etiquetas de RDFS que dotan de tanto
significado a la ontología, y como es capaz de potenciarlas
mediante la aplicación de restricciones mucho más fuertes que las
que podemos aplicar con el uso de RDFS.
Para ejemplificar la aplicación de la lógica de descripción del
lenguaje OWL, nos haría falta un ejemplo mucho más elaborado
que no merece la pena
CONCLUSIONES
La web semántica es a día de hoy aún un proyecto, cada vez más
palpable, en el que todos podemos colaborar si queremos. Desde
el punto de vista de muchas empresas no es rentable
económicamente pasar de la web 2.0 (la actual), a la web 3.0 (la
web semántica), y esto por supuesto es un inconveniente a la hora
de propulsar la tecnología.
No obstante, como viene siendo habitual, la necesidad irá
marcando el paso, y a la velocidad que avanzan las redes de datos
actualmente, llegará el momento en el que se verá necesario ese
cambio, el cambio de la información, al conocimiento.
Para cuando ese momento llegue, la inteligencia artificial en el
campo de la representación del conocimiento será una disciplina
mucho más experimentada y mucho más óptima. El hecho de que
actualmente se creen ontologías para describir ciertos dominios
del conocimiento, y que esto se haga empleando distintas
tecnologías, fomenta precisamente el desarrollo y la evolución de
estos métodos de representación del conocimiento. Y esto último
por supuesto, desemboca en una mejora de la web semántica.
7 REFERENCIAS
[1] ACM Inc. ACM SIG Proceedings Templates
http://www.acm.org/sigs/pubs/proceed/template.html
[2] ACM Inc. ACM Computing Classification System [V.1998]
http://www.acm.org/class/1998/
[3]W3C Semantic Web Activity
http://www.w3.org/2001/sw/
[4]The Friend of a Friend (FOAF) Project
http://www.foaf-project.org/
[5]Dublin Core Metadata Iniciative
http://www.dublincore.org/
[6]RDFa, RDF, OWL, RDFS, SPARQL
http://en.wikipedia.org/wiki/
[7]Faculty of Computer Science, Free University of Bozen-
Bolzano, Italy . Description Logics
http://www.inf.unibz.it/~franconi/dl/course/
[8]Apuntes de IRC, Universidad Carlos III, Julio Villena.
http://www.it.uc3m.es/jvillena/irc/indice.html