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.