LA WEB SEMÁNTICA. RDF

Anuncio
Francisco José Galán Morillo
RDFS-Jena
PROPÓSITO
Introducir el lenguaje RDF Schema.
Se trata de un lenguaje para construir ontologías basadas en la declaración de jerarquías de
clases, propiedades y restricciones de dominio y rango.
Al igual que RDF, se suele utilizar XML como sintaxis concreta de RDF Schema.
INTRODUCCION
El documento RDF-Schema contiene un único elemento RDF con un conjunto de espacios de
nombres y un conjunto de declaraciones (rdf:Description).
Declaración de clase (metadato):
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Curso">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
Declaración de propiedad (metadato):
<rdf:Description
rdf:about="http://www.lsi.us.es/spec#esta_adscrita_a">
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
</rdf:Description>
Declaración de subclase (metadato):
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Ayudante">
<rdfs:subClassOf
rdf:resource="http://www.lsi.us.es/spec#Profesor"/>
</rdf:Description>
Declaración de dominio y rango:
<rdf:Description rdf:about="http://www.lsi.us.es/spec#tomo_posesion">
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#normalizedString"/>
<rdfs:domain rdf:resource="http://www.lsi.us.es/spec#Titular"/>
</rdf:Description>
El siguiente ejemplo muestra un documento RDF-Schema escrito en XML.
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.lsi.us.es/spec#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
Francisco José Galán Morillo
RDFS-Jena
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Titular">
<rdfs:subClassOf
rdf:resource="http://www.lsi.us.es/spec#Profesor"/>
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Departamento">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Curso">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Ayudante">
<rdfs:subClassOf
rdf:resource="http://www.lsi.us.es/spec#Profesor"/>
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Profesor">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/spec#tomo_posesion">
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#normalizedString"/>
<rdfs:domain rdf:resource="http://www.lsi.us.es/spec#Titular"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#da_clases_en">
<rdfs:range rdf:resource="http://www.lsi.us.es/spec#Asignatura"/>
<rdfs:domain rdf:resource="http://www.lsi.us.es/spec#Profesor"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
</rdf:Description>
<rdf:Description rdf:about="http://www.lsi.us.es/spec#Asignatura">
<rdf:type rdf:resource="http://www.w3.org/2000/01/rdfschema#Class"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/spec#esta_adscrita_a">
<rdfs:range
rdf:resource="http://www.lsi.us.es/spec#Departamento"/>
<rdfs:domain rdf:resource="http://www.lsi.us.es/spec#Asignatura"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/spec#posee_despacho">
<rdfs:range
rdf:resource="http://www.w3.org/2001/XMLSchema#normalizedString"/>
<rdfs:domain rdf:resource="http://www.lsi.us.es/spec#Profesor"/>
<rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/>
</rdf:Description>
</rdf:RDF>
Francisco José Galán Morillo
RDFS-Jena
PROGRAMANDO DOCUMENTOS RDF-Schema CON JENA
Declaración de una ontología RDF-Schema:
OntModel ontologia =
ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM_RDFS_INF);
Establecimiento de la dirección base (dirección lógica):
String base = "http://www.lsi.us.es/spec#";
ontologia.setNsPrefix("",base);
Declaración de clase:
ontologia.createClass(base+"Curso");
Declaración de subclase:
ontologia.getOntClass(base+"Profesor").addSubClass(ontologia.get
OntClass(base+"Titular"));
Declaración de propiedad:
ontologia.createOntProperty(prefijo+"esta_adscrita_a");
Declaración de dominio:
ontologia.getOntProperty(base+"esta_adscrita_a").addDomain(ontol
ogia.getOntClass(base+"Asignatura"));
Declaración de rango:
ontologia.getOntProperty(base+"esta_adscrita_a").addRange(ontolo
gia.getOntClass(base+"Departamento"));
Francisco José Galán Morillo
RDFS-Jena
TRABAJO PROPUESTO

Programe con Jena una ontología RDF-Schema con las siguientes :
Clases: Curso, Departamento, Profesor, Titular, Ayudante,
Asignatura.
Propiedades: esta_adscrita_a, da_clases_en, tomo_posesion,
posee_despacho,
Dominios: Asignatura de esta_adscrita_a, Profesor de da_clases_en,
Titular de tomo_posesion y Profesor de posee_despacho
Rangos: Departamento de esta_adscrita_a, Asignatura de da_clases_en,
"http://www.w3.org/2001/XMLSchema#normalizedString" de
tomo_posesion y
"http://www.w3.org/2001/XMLSchema#normalizedString" de
posee_despacho.

Subclases: Titular de Profesor y Ayudante de Profesor.
Almacene dicho modelo en un fichero de texto con nombre schema.rdf.
Programe con Jena una ontología RDF-Schema para el problema de la universidad
previamente enunciado en el tema 2. Mostramos de nuevo su enunciado.
Los estudios universitarios se clasifican, de forma excluyente, en estudios de grado y estudios
de postgrado. Los estudios de postgrado se clasifican, de forma excluyente, en estudios de
máster y estudios de doctorado. Los estudios se organizan en cursos y los cursos programan un
conjunto de asignaturas. Cada asignatura se adscribe a un departamento. Cada departamento
imparte docencia en un conjunto de centros y fija su residencia en un único centro. Los alumnos
universitarios se clasifican según los estudios en los que están matriculados. Los profesores
universitarios se clasifican, de forma excluyente, en profesores titulares, profesores
colaboradores y profesores ayudantes. Todo profesor da clases en un conjunto de asignaturas.
Cada asignatura está adscrita a un único departamento y coordinada por un único profesor. La
publicación de una tesis doctoral otorga el título de doctor. Los profesores titulares deben ser
doctores. No es necesario ser doctor para ser profesor colaborador o ayudante.
Diagrama de clases UML para el problema propuesto.
Descargar