[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
Web Semantica
1. 1
Aplicaci´on de Web Sem´antica utilizando protege
para la Universidad Nacional de Loja
G. Rodr´ıguez, M. Chinchay,
Tutor: H. Paz.
Abstract—This article talks about how to make semantic web,
to using the Protege ontology creation.
Index Terms—ontologies, semantics, metadata.
I. INTRODUCCI ´ON
Desde su aparici´on, la Web ha tenido un gran crecimiento
que ha sido posible, gracias a la r´apida evoluci´on de
las tecnolog´ıas que la sustentan. En pocos a˜nos, hemos sido
testigos de la transformaci´on producida desde la forma m´as
b´asica (Web 1.0) en la que el usuario s´olo pod´ıa “leer”
documentos, hasta otra m´as avanzada (Web 2.0) en la que
tambi´en puede interactuar, colaborar y compartir. A pesar de
las diferencias, en el fondo las dos son “webs sint´acticas”
en las que los ordenadores se ocupan de la presentaci´on de
la informaci´on y es el usuario el que interpreta el contenido
mostrado. En este tipo de web, si se quieren buscar datos
sobre algo especifico, ´esto no se encuentran inmediatamente
pues aparecen enlaces a diversos sitios sobretodo a nivel
comercial y al final (con suerte) se encuentra lo que se busca.
Lo que indica que las representaciones de la web sint´actica
no son adecuadas para expresar significados y que necesitan
evolucionar.[1].
II. ¿C ´OMO SURGE LA WEB SEM ´ANTICA?
En el a˜no 2001 se acu˜na el concepto de “web sem´antica”,
impulsado por el propio inventor de la Web, WWW, URIs,
HTTP y HTML y presidente del consorcio W3C, Tim Berners-
Lee, con el objetivo de que los ordenadores puedan com-
prender los contenidos de la Web, interpretarlos y adem´as
utilizarlos. [2].
Fig. 1. Tim Berners-Lee
G. Rodr´ıguez, UNL, Loja, Ecuador, E-mail: gmrodriguezp@unl.edu.ec
M. Chinchay, UNL, Loja, Ecuador, E-mail: mjchinchayc@unl.edu.ec
H. Paz, UNL, Loja, Ecuador, E-mail: hpaz@unl.edu.ec
III. ¿QU ´E ES LA WEB SEM ´ANTICA?
En la Web sem´antica, en lugar de realizar b´usquedas
por comparaci´on de cadenas de caracteres, se espera que
los sistemas de informaci´on sean capaces de buscar por
conceptos. Si buscamos por caracteres, las palabras de la
pregunta y las palabras del documento (o del ´ındice de
documentos) deben coincidir letra a letra. En cambio, si
buscamos por conceptos, lo de menos es la palabra. Lo
importante es el concepto. Esto suena a inteligencia artificial.
Por tanto, aunque existe una cierta resistencia a llamarlo as´ı,
con la Web sem´antica se est´a buscando el mismo objetivo
que la IA, que los ordenadores entiendan.
A continuaci´on se presenta un gr´afico comparativo entre
web actual y lo que se pretende lograr con web sem´antica.[3].
Fig. 2. Comparaci´on gr´afica entre Web Actual y Web Sem´antica respecti-
vamente
IV. ¿QU ´E SON LOS METADATOS?
Son informaciones sobre recursos. Los metadatos significan
dato sobre datos. Estos permiten describir, identificar y
localizar contenidos en documentos de la Web.
Estos metadatos deben contener informaci´on estructurada
para que los ordenadores la entiendan y contener patrones
iguales. Es decir, los metadatos son datos altamente estruc-
turados que describen informaci´on, describen el contenido, la
calidad, la condici´on y otras caracter´ısticas de los datos.
A. Ejemplo de Metadatos en XHTML:
• Title (Titulo del recurso)
• Autor (El autor)
• Keywords (Las palabras claves)
2. 2
V. INFRAESTRUCTURA DE LA WEB SEM ´ANTICA
La web sem´antica se compone de algunos elementos que
hacen posible orientarse a su objetivo principal.
El diagrama propuesto por Tim Berners-Lee, se compone de
7 niveles, que son:[4].
Fig. 3. La Web sem´antica vista como un sistema de capas, Tim Berners-Lee
1) UNICODE: Es el sistema internacional est´andar que
proporciona un n´umero ´unico para cada car´acter, sin
importar la plataforma ni el programa. Esto permite
representar caracteres de cualquier idioma con una
codificaci´on unificada
2) URI (Uniform Resource Identifier): Es un sistema
de direccionamiento e identificaci´on de recursos. El
sistema que usamos actualmente para acceder a los
recursos de la Web (URL) es una parte de URI.
3) XML(Extended Markup Language): Es un sistema
que permite definir lenguajes de marcas para usos
espec´ıficos.
4) NS(Name Spaces): Permite combinar diversos lenguajes
de marcado creados con XML en un mismo documento.
5) XML Schema: Sirve para definir tipos de documentos
complejos en los que se pueden especificar tipos de
datos, listas de componentes y restricciones similares
a las del diccionario de datos t´ıpico de una base de datos.
6) RDF(Resource Description Framework): Es un
modelo de representaci´on de metadatos que, entre otras
cosas, permite representar recursos digitales tales como
sitios o p´aginas web, est´a concebido para representar
cualquier clase de recursos.
7) RDF Schema: es una extensi´on de RDF que aporta
un lenguaje con mayor capacidad para representar
relaciones sem´anticas complejas.
8) Ontology Vocabulary: Una ontolog´ıa es una
especificaci´on formal de un dominio del conocimiento
que, en su expresi´on m´as simple, se identifica con una
taxonom´ıa. Formaliza la relaci´on de clase, a˜nade otras
relaciones y especifica propiedades para individuos y
clases. Ontology-vocabulary se refiere a una ontolog´ıa
concreta sobre un dominio concreto del conocimiento.
9) Logic: En este contexto, logic se refiere al estudio
de las reglas formales que permiten determinar si un
razonamiento se sigue de sus premisas.
10) Proof(prueba): Significa demostraci´on [matem´atica]. Se
considera que un ordenador alcanza la m´axima fiabili-
dad en sus razonamientos cuando es capaz de realizar
demostraciones o, lo que es lo mismo a efectos pr´acticos.
11) Trust(confianza): Sirve para otorgar confianza a las
transacciones en la Web a trav´es que se llevar´an a cabo
no solamente entre usuarios y sitios web sino tambi´en
entre programas de software; y todo ello tanto en el
plano C2B (consumer to business) como en el B2B
(business to business).
12) Digital Signature(firma digital): Proporcionar´a soporte
espec´ıfico a esta capa, tal como muestra el diagrama.
VI. PROTEGE
A. ¿Qu´e es Protege?
• Prot´eg´e es una herramienta de c´odigo abierto ideada por
la Universidad de Stanford con la ayuda de la Universidad
de M´anchester.
• Es un ´editor de c´odigo ab´ıerto ´usado para construir
Ontolog´ıas y un marco general para representar el
conocimiento.
• Est´a escrito en Java que es un lenguaje de programaci´on
orientado a objetos.
• Se usa para construir aplicaciones para la Web Sem´antica,
para hacer una descripci´on sem´antica de la informaci´on.
• Sus archivos se hacen en el lenguaje OWL.
B. ¿Qu´e es una Ontolog´ıa?
• Una base de datos que describe los conceptos generales
sobre un dominio, algunas de sus propiedades y como los
conceptos se relacionan unos con otros.
• Es Imprescindible para conseguir la Web Sem´antica el
uso de las Ontolog´ıas.
• Con las Ontolog´ıas los usuarios organizan la informaci´on,
de manera que los agentes de software puedan interpretar
el significado y de esa manera podr´an buscar e integrar
datos, mucho mejor que lo que se est´a haciendo ahora.
C. ¿Qu´e es OWL?
• OWL significa en Ingl´es Web Ontology Language, es
un lenguage de m´arcado para compartir datos usando
Ontolog´ıas en la W W W.
• Las Ontolog´ıas se hacen en leng´uaje OWL.
• OWL tiene como objetivo facilitar un modelo de marcado
construido sobre RDF y codificado en XML.
3. 3
VII. EJEMPLO EN PROTEGE DE WEB SEM ´ANTICA PARA
EL ´AREA DE ENERG´IA, LAS INDUSTRIAS Y LOS
RECURSOS NATURALES NO RENOVABLES DE LA UNL
Las clases definidas para la realizaci´on de la ontolog´ıa en
este ejemplo son las siguientes:
Fig. 4. Clases realizadas en protege para la ontolog´ıa
A continuaci´on se muestra la forma en que est´an relacionadas
las clases Universidad Nacional de Loja y sus ´areas de forma
gr´afica:
Fig. 5. Relaci´on de la clase Universidad Nacional de Loja y las ´areas
En la figura se muestra la forma en que est´an las relaciones
y las clases del ´Area de la Energ´ıa, las industrias y los
Recursos Naturales no Renovables:
Fig. 6. Relaci´on de la clase ´Area de la Energ´ıa y sus subclases
La figura muestra la forma en que est´an las relaciones y
las clases de la carrera de Ingenier´ıa en Sistemas, que posee
subclases(Docentes y M´odulos) e individuos(Ingenieros que
componen la carrera), as´ı como las relaciones respectivas
por ejemplo Docentes de Sistemas imparten algunas materias
de los distintos m´odulos:
Fig. 7. Relaci´on de la clase Carrera de Ingenier´ıa en Sistemas
En la figura se muestra la relaci´on que existe entre la
malla nueva de la carrera de Ingenier´ıa en Sistemas, los que
cuentan con aprobaci´on por materias y tienen la opci´on de
arrastre, de esta manera un alumno del ciclo II podr´a seguir
las materias del ciclo II y algunas materias del ciclo I, lo
que se controla mediante relaciones y restricciones:
Fig. 8. Relaci´on de la subclase ciclo I y ciclo II
4. 4
En la figura se muestra las restricciones en el ciclo I, las
que pueden ser agregadas yendo a la subclase Materias
Modulo I, y en la descripci´on que aparece en el lado derecho
darle clic en el icono ”+” que dice Subclass Of, en este
caso que las materias del modulo I pueden ser cursadas por
estudiantes tanto del ciclo I, como del ciclo II:
Fig. 9. Restricciones ciclo I
Fig. 10. Restricciones ciclo II
As´ı mismo se muestra las restricciones en los estudiantes
del ciclo I, las que pueden ser agregadas yendo a la subclase
I A, y en la descripci´on que aparece en el lado derecho darle
clic en el icono ”+” que dice Subclass Of, en este caso los
estudiantes del ciclo I pueden cursar materias del ciclo I,
y los estudiantes del ciclo II pueden seguir todas(only) las
materias del ciclo II y algunas(some) del ciclo I:
Fig. 11. Restricciones estudiantes ciclo I
Fig. 12. Restricciones estudiantes ciclo II
En la figura se muestra como se relacionan los individuos
de la clase X-B Gabriela y Marjorie con los individuos de las
clase Materias-Modulo X, que son Sistemas Expertos,
Simulaci´on, Anteproyectos, Control Automatizado,
Inteligencia Artificial y ´Etica profesional:
Fig. 13. Relaciones clase Modulo X
De la misma manera las restricciones sobre estas clases e
Individuos, que se detallan en las siguientes figuras:
Fig. 14. Individuos de la clase Materias Modulo X
Fig. 15. Individuos de la clase Docentes Sistemas
5. 5
Fig. 16. Restricciones y relaciones sobre el individuo Gabriela Rodr´ıguez
Fig. 17. Restricciones y relaciones sobre el individuo Marjorie Chinchay
As´ı mismo para las relaciones y restricciones sobre cada
docente y materia del Modulo X:
Fig. 18. Restricciones y relaciones sobre el individuo Ing. Henry Paz
Las restricciones de el individuo Ing Franco Salcedo, no son
solo a nivel del Modulo X sino que tambi´en dicta clase a
VIII
Fig. 19. Restricciones y relaciones sobre el individuo Ing. Franco Salcedo
Las restricciones de el individuo Ing Pablo Ordo˜nez, no son
solo a nivel del Modulo X sino que tambi´en dicta clase a VI
Fig. 20. Restricciones y relaciones sobre el individuo Ing. Pablo Ordo˜nez
Las restricciones de el individuo Ing Roberto Jacome, no
son solo a nivel del Modulo X sino que tambi´en dicta clase
a III aun mas restrictivo, solo a III paralelo A
Fig. 21. Restricciones y relaciones sobre el individuo Ing. Roberto Jacome
La Interfaz gr´afica del programa realizado en java, usando
la libreria jena2.11.2 queda de la siguiente manera
Fig. 22. Interfaz Gr´afica
C´odigo en Java Utilizando la librer´ıa Jena2.11.1 de los
m´etodos, cargar Ontolog´ıa, agregar clases, individuos y
propiedades
public void c a r g a r O n t o l o g i a ( ) {
modeloOntology = ModelFactory .
createOntologyModel ( ) ;
try {
InputStream f i l e = new F i l e I n p u t S t r e a m ( ”
C : / Users / hp / Desktop / WebSemantica . owl
” ) ;
/ / System . out . p r i n t l n ( f i l e . read ( ) ) ;
/ / l e e r RDF cargar e l XML
modeloOntology . read ( f i l e , ” ” ) ;
} catch ( Exception ex ) {
System . out . p r i n t l n ( ” ” + ex ) ;
}
}
public void a g r e g a r C l a s e s ( ) {
6. 6
I t e r a t o r <OntClass> c l a s e s = modeloOntology .
l i s t C l a s s e s ( ) ;
while ( c l a s e s . hasNext ( ) ) {
/ / System . out . p r i n t l n ( c l a s e s . next ( ) .
getLocalName ( ) ) ;
/ / i f ( c l a s e s . next ( ) . getLocalName ( ) .
equalsIgnoreCase (””) == f a l s e ) {
i f ( c l a s e s . hasNext ( ) == true && c l a s e s .
next ( ) . getLocalName ( ) != null ) {
modeloListaClases . addElement ( c l a s e s .
next ( ) . getLocalName ( ) ) ;
}
/ / }
}
t h i s . j L i s t C l a s e s . setModel ( modeloListaClases )
;
}
public void a g r e g a r I n d i v i d u o s ( ) {
I t e r a t o r <I n d i v i d u a l > i n d i v i d u o s =
modeloOntology . l i s t I n d i v i d u a l s ( ) ;
while ( i n d i v i d u o s . hasNext ( ) ) {
/ / System . out . p r i n t l n ( i n d i v i d u o s . next ( ) .
getLocalName ( ) ) ;
/ / i f ( i n d i v i d u o s . next ( ) . getLocalName
( ) . equalsIgnoreCase (””) == f a l s e ) {
modeloListaIndividuos2 . addElement (
i n d i v i d u o s . next ( ) . getLocalName ( ) ) ;
/ / }
}
t h i s . j L i s t I n d i v i d u o s 2 . setModel (
modeloListaIndividuos2 ) ;
}
public void a g r e g a r P r o p i e d a d e s ( ) {
I t e r a t o r <ObjectProperty > propiedades =
modeloOntology . l i s t O b j e c t P r o p e r t i e s ( ) ;
while ( propiedades . hasNext ( ) ) {
modeloListaPropiedades . addElement (
propiedades . next ( ) . getLocalName ( ) ) ;
/ / System . out . p r i n t l n ( propiedades . next ( ) .
getLocalName ( ) ) ;
}
t h i s . j L i s t P r o p i e d a d e s . setModel (
modeloListaPropiedades ) ;
}
C´odigo para los metodos de Obtener Clases, Subclases e
Individuos
public void o b t e n e r I n d i v i d u o s ( S t r i n g className ) {
S t r i n g ns = ” h t t p : / /www. semanticweb . org / hp /
o n t o l o g i e s / 2 0 1 4 / 5 / examenWebSemantica#” ;
/ / className = ”Materias ModuloX ”;
j L i s t I n d i v i d u o s 1 . removeAll ( ) ;
modeloListaIndividuos1 . c l e a r ( ) ;
OntClass on tC l as s = modeloOntology .
getOntClass ( ns + className ) ;
try {
I t e r a t o r i t = o n tC la ss . l i s t I n s t a n c e s ( ) ;
while ( i t . hasNext ( ) ) {
S t r i n g instanceName = i t . next ( ) .
t o S t r i n g ( ) ;
instanceName = instanceName .
s u b s t r i n g ( instanceName . indexOf ( ”
#” ) + 1) ;
modeloListaIndividuos1 . addElement (
instanceName ) ;
System . out . p r i n t l n ( ” i n s t a n c i a : ” +
instanceName ) ;
}
j L i s t I n d i v i d u o s 1 . setModel (
modeloListaIndividuos1 ) ;
} catch ( Exception in ) {
}
}
public void obtenerSubClases ( S t r i n g className ) {
S t r i n g ns = ” h t t p : / /www. semanticweb . org / hp /
o n t o l o g i e s / 2 0 1 4 / 5 / examenWebSemantica#” ;
/ / className = ”Modulo III ”;
j L i s t S u b C l a s e s . removeAll ( ) ;
modeloListaSubClases . c l e a r ( ) ;
OntClass on tC la s s = modeloOntology .
getOntClass ( ns + className ) ;
try {
I t e r a t o r i t = o nt C la ss . l i s t S u b C l a s s e s ( ) ;
while ( i t . hasNext ( ) ) {
S t r i n g instanceName = i t . next ( ) .
t o S t r i n g ( ) ;
instanceName = instanceName .
s u b s t r i n g ( instanceName . indexOf ( ”
#” ) + 1) ;
modeloListaSubClases . addElement (
instanceName ) ;
System . out . p r i n t l n ( ” i n s t a n c i a : ” +
instanceName ) ;
}
j L i s t S u b C l a s e s . setModel (
modeloListaSubClases ) ;
} catch ( Exception in ) {
}
}
public void o b t e n e r C l a s e s ( S t r i n g
nombreIndividuo ) {
S t r i n g ns = ” h t t p : / /www. semanticweb . org / hp /
o n t o l o g i e s / 2 0 1 4 / 5 / examenWebSemantica#” ;
/ / className = ”Modulo III ”;
j L i s t C l a s e s 2 . removeAll ( ) ;
modeloListaClases2 . c l e a r ( ) ;
I n d i v i d u a l i n d i v i d u o = modeloOntology .
g e t I n d i v i d u a l ( ns + nombreIndividuo ) ;
try {
Resource r e s o u r c e = i n d i v i d u o . getRDFType
( true ) ;
S t r i n g c l a s e = r e s o u r c e . t o S t r i n g ( ) .
s u b s t r i n g ( r e s o u r c e . t o S t r i n g ( ) .
indexOf ( ”#” ) +1) ;
modeloListaClases2 . addElement ( c l a s e ) ;
System . out . p r i n t l n ( ” c l a s e : ” + c l a s e ) ;
} catch ( Exception in ) {
}
t h i s . j L i s t C l a s e s 2 . setModel (
modeloListaClases2 ) ;
}
• El c´odigo en java se encuentra en:https://github.com/
MarjorieJuliana/inteligenciaArtificial.git
7. 7
REFERENCIAS
[1] Dami´an P. Vald´ez, Web Sem´antica y sus principales caracter´ısticas,
Webmaster, Administrador de Sistemas, con experiencia en desarrollo
web y de aplicaciones. [En l´ınea] http://www.maestrosdelweb.com/
editorial/web-semantica-y-sus-principales-caracteristicas/ ,consulta
realizada 19-Jun-14.
[2] P. Morales, Caracter´ısticas de la Web Sem´antica,
[En l´ınea] http://www.slideshare.net/PollisMorales/
web-semntica-y-sus-principales-caractersticas ,consulta realizada
19-Jun-14.
[3] Blog de INTEF 2014, Web Sem´antica: Un mundo de posibilidades,
Instituto Nacional de Tecnolog´ıas Educativas y de Formaci´on del
Profesorado., [En l´ınea] http://www.maestrosdelweb.com/editorial/
web-semantica-y-sus-principales-caracteristicas/ ,consulta realizada
19-Jun-14.
[4] T. Berners-Lee, “Semantic Web”, W3C [En l´ınea] http:
//www.w3.org/2000/Talks/1206-xml2k-tbl/slide11-0.html ,consulta
realizada 19-Jun-14.
[5] Stanford Center for Biomedical Informatics Research Editor de
ontolog´ıas de c´odigo abierto y un marco para la construcci´on de
sistemas inteligentes, [En l´ınea] http://protege.stanford.edu/ ,consulta
realizada 19-Jun-14.
Gabriela Rodr´ıguez
Estudiante de la Carrera de Ingenier´ıa en Sistemas de la
Universidad Nacional de Loja, conocedora de Redes y Telecomuni-
caciones, Provincia de Loja, Ciudad Loja, Ecuador, 2014.
Marjorie Chinchay
Estudiante de la Carrera de Ingenier´ıa en Sistemas de la
Universidad Nacional de Loja, Conocedor de An´alisis y dise˜no de
Sistemas y Desarrollo de Software, Provincia de Loja, Ciudad Loja,
Ecuador, 2014.
Henry Paz Arias
Ing. Mgs. Especialista en Inteligencia Artificial, Provincia
de Loja, Ciudad Loja, Ecuador, 2014.