RDF-Jena

Anuncio
Francisco José Galán Morillo
RDF-Jena (I)
PROPÓSITO
Introducir el lenguaje RDF.
Se trata de un lenguaje para construir descripciones del mundo (modelos RDF) basados en
declaraciones sujeto-verbo-objeto.
RDF no tiene sintaxis concreta. Se suele utilizar XML, Turtle o Json como sintaxis concreta de
RDF.
INTRODUCCIÓN
El siguiente ejemplo muestra un documento RDF escrito en XML. El documento contiene un
único elemento RDF con un conjunto de espacios de nombres y un conjunto de descripciones.
Ejemplo de espacios de nombres:
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.lsi.us.es/datos#"
Ejemplo de descripción (sujeto, verbo, objeto):
<rdf:Description
rdf:about="http://www.lsi.us.es/datos#JoaquinVazquez">
<da_clases_en rdf:resource="http://www.lsi.us.es/datos#PL1"/>
</rdf:Description>
Documento RDF:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.lsi.us.es/datos#">
<rdf:Description
rdf:about="http://www.lsi.us.es/datos#ManuelGarcia">
<posee_despacho
rdf:datatype="http://www.w3.org/2001/XMLSchema#int">7
</posee_despacho>
<posee_despacho
rdf:datatype="http://www.w3.org/2001/XMLSchema#normalizedString">
H10</posee_despacho>
<da_clases_en rdf:resource="http://www.lsi.us.es/datos#PL1"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/datos#PL2">
<esta_adscrita_a rdf:resource="http://www.lsi.us.es/datos#LSI"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/datos#JoaquinVazquez">
<posee_despacho
rdf:datatype="http://www.w3.org/2001/XMLSchema#normalizedString">
I26</posee_despacho>
<tomo_posesion
Francisco José Galán Morillo
RDF-Jena (I)
rdf:datatype="http://www.w3.org/2001/XMLSchema#normalizedString">
10/10/2000</tomo_posesion>
<da_clases_en rdf:resource="http://www.lsi.us.es/datos#PL1"/>
<da_clases_en rdf:resource="http://www.lsi.us.es/datos#PL2"/>
</rdf:Description>
<rdf:Description
rdf:about="http://www.lsi.us.es/datos#PL1">
<esta_adscrita_a rdf:resource="http://www.lsi.us.es/datos#LSI"/>
</rdf:Description>
</rdf:RDF>
PROGRAMANDO DOCUMENTOS RDF CON JENA
Jena es un API Java que permite programar documentos RDF. Entre las operaciones del API
destacan:
Declaración de modelo RDF:
Model modelo = ModelFactory.createDefaultModel();
Establecimiento de la dirección base (dirección lógica) del documento RDF:
String base = "http://www.lsi.us.es/datos#";
modelo.setNsPrefix("",base);
Adición de una declaración a un modelo:
Resource sujeto =
ResourceFactory.createResource(prefijo+"PL1");
Property verbo =
ResourceFactory.createProperty(prefijo+"esta_adscrita_a");
RDFNode objeto = ResourceFactory.createResource(prefijo+"LSI");
Statement stm =
ResourceFactory.createStatement(sujeto, verbo, objeto);
modelo.add(stm);
Acceso a tipos de datos XML Schema:
TypeMapper tm = TypeMapper.getInstance();
Ejemplo de declaración donde el objeto es de tipo dato:
sujeto = ResourceFactory.createResource(prefijo+"JoaquinVazquez");
verbo = ResourceFactory.createProperty(prefijo+"tomo_posesion");
objeto = ResourceFactory.createTypedLiteral("10/10/2000",
tm.getSafeTypeByName("http://www.w3.org/2001/XMLSchema#normalizedStrin
g"));
stm = ResourceFactory.createStatement(sujeto, verbo, objeto);
modelo.add(stm);
Francisco José Galán Morillo
RDF-Jena (I)
Escritura de modelo en pantalla:
modelo.write(System.out, "RDF/XML");
Escritura de modelo en fichero de texto:
try{
OutputStream f = new FileOutputStream("model.rdf");
modelo.write(f);
f.close();
}catch(FileNotFoundException e){}
catch(IOException e){}
TRABAJO PROPUESTO


Consulte la documentación suministrada por Jena en relación a los modelos RDF.
Programe con Jena un modelo RDF conteniendo las siguientes declaraciones: PL1
esta_adscrita_a LSI, PL2 esta_adscrita_a LSI, JoaquínVazquez
da_clases_en PL2, JoaquínVazquez da_clases_en PL1, ManuelGarcía
da_clases_en
PL1,
JoaquínVazquez
tomo_posesion
10/10/2000,
JoaquínVazquez posee_despacho I26, ManuelGarcía posee_despacho
H10, ManuelGarcía posee_despacho 7.

Almacene dicho modelo en un fichero de texto con nombre modelo.rdf.
Programe la lectura del fichero modelo.rdf y muestre por pantalla el modelo RDF leído.
Descargar