Vamos a modelar un dominio, un ejemplo, utilizando el vocabulario RDFS que ya conocemos. Vamos a utilizar clases, propiedades, subpropiedades, subclases y restricciones para modelar un dominio concreto, un ejemplo concreto.
Para empezar vamos a definir los prefijos que vamos a utilizar dentro de nuestro archivo RDFS; al fin y al cabo, lo que vamos a hacer es ir escribiendo un archivo RDFS. Los prefijos van a ser RDF, con el vocabulario de RDF, RDFS para el vocabulario de RDF Schema, el prefijo ex lo vamos a utilizar para definir las clases, las instancias de las clases, es decir, los datos y el prefijo : los vamos a utilizar para definir, para acceder al vocabulario que vamos a utilizar. Ahora vamos a modelar un ejemplo concreto.
El ejemplo que vamos a dar, a modelar, está relacionado con libros. Carlos es una persona a la que gusta leer libros, en concreto le gustan los libros de aventuras y actualmente está leyendo El ingenioso hidalgo Don Quijote de la Mancha, cuyo autor es Miguel de Cervantes. Vamos a empezar nuestro ejemplo identificando las clases.
Carlos es una persona. Persona, lo vamos a indicar como una clase, ya que hay muchas personas que comparten las mismas características, a la que le gusta leer libros. Libros es otra clase, en particular, le gustan los libros de aventuras, También, libro de aventuras va a ser una clase, porque hay muchos libros parecidos, que comparten ciertas características como por ejemplo El Quijote o Los Tres Mosqueteros. Y está leyendo El ingenioso hidalgo Don Quijote de la Mancha, cuyo autor, autor es otra clase, es Miguel de Cervantes.
Entonces definimos estas clases, o especificamos estas clases en nuestro archivo RDFS, utilizando el vocabulario RDFS. Libro como :libro va a ser de tipo clase, :Libro_de_Aventuras va a ser de tipo clase, :Persona va a ser de tipo clase y :Autor va a ser de tipo clase.
Ahora vamos a identificar las propiedades en nuestro ejemplo. Volvemos otra vez a la frase en la cual Carlos es un hacer algo, es una propiedad, persona a la que le gusta leer, las personas leen libros, esto va a ser otra propiedad, y en particular le gustan, gustar es otra propiedad, los libros de aventuras y está leyendo El ingenioso hidalgo Don Quijote De la Mancha, cuyo autor es Miguel de Cervantes. Autor, ser autor de algo es otra propiedad; además la propiedad, ser autor de, es una subpropiedad, un subconjunto de ser creador de. Un autor es un creador de un libro, un escultor es un creador de una escultura.
Entonces, vamos a definir las propiedades utilizando el vocabulario RDFS. Por eso definimos, lee es de tipo rdfs:Property, es un prefijo rdfs:Property. Gusta es de tipo rdfs:Property, etcétera.
Ya tenemos las clases, tenemos las propiedades, ahora vamos a identificar las instancias, los datos de nuestro ejemplo.
Carlos es una instancia de persona, porque lo dice en la frase del ejemplo, Carlos es una persona a la que le gusta leer libros. En particular le gustan los libros de aventuras y esta leyendo El ingenioso hidalgo Don Quijote de la Mancha. El ingenioso hidalgo Don Quijote de la Mancha es un libro, un libro de aventuras, y es una instancia de libro, cuyo autor es Miguel de Cervantes. Miguel de Cervantes es otra persona, además es un escritor, es un autor. Es otra instancia de nuestro ejemplo.
Entonces para definir las instancias, utilizamos rdfs:type y la clase a la que pertenece. Carlos es una persona, entonces, Carlos es de tipo persona, El Quijote es de tipo libro de aventuras, El Quijote rdf:type libro de aventuras, y Cervantes es un autor, ex:Cervantes rdf:type :Autor.
Vamos a utilizar primero para modelar nuestro dominio, la jerarquía de propiedades. Lo que vamos a hacer es definir esAutorDe, como subpropiedad de, serCreadorDe. Así, vamos a inferir automáticamente que todos los autores son creadores de algo. En nuestro ejemplo definimos que Cervantes es el autor de El Quijote. Vamos a definir también que serAutorDe es una subpropiedad de serCreadorDe, razón por la que automáticamente nuestro sistema va a inferir, que Cervantes, además de ser un autor de un libro, del Quijote, es creador de El Quijote.
Una vez definida la jerarquía de propiedades, vamos a definir las jerarquías de clases. En nuestro ejemplo tenemos que El Quijote es un libro de aventuras, y además vamos a definir, porque sabemos que un libro de aventuras también es un libro, por lo tanto nuestro sistema debería saber que todos los libros de aventuras son libros. Y eso es lo que tenemos con esta regla de inferencia; si un libro de aventuras hace su clase de libro, también es un libro.
Ahora vamos a utilizar las restricciones de dominio, las restricciones sobre las propiedades, para inferir nuevo conocimiento.
Aquí tenemos una foto de Carlos, que está leyendo El Quijote. Si definimos la restricción de dominio, el sujeto de la relación va a tener la restricción de dominio, vamos a definir la restricción de dominio de que Carlos es una persona. Es decir, el sujeto de la relación tiene que ser de tipo persona. A continuación, definimos que Carlos está leyendo El Quijote; vamos a definir que lee tiene la restricción de dominio, que es de tipo persona, y entonces el sistema va a inferir automáticamente sin que nosotros lo explicitemos, que Carlos es de tipo persona.
Ahora vamos a utilizar las restricciones de rango para las propiedades. Es decir, el objeto de la relación es el que va a tener la restricción. Por ejemplo, Cervantes es el autor de El Quijote, entonces vamos a definir la restricción de rango, de que serAutorDe, el objeto de la relación tiene que ser de tipo libro. Así, automáticamente nuestro sistema va a inferir, va a razonar, que El Quijote es de tipo libro, que Cervantes es autor de, autorDe siempre en el rango, el objeto de la relación tiene que ser de tipo libro, y que, sin que nosotros lo explicitemos, El Quijote es de tipo libro, porque el sistema lo ha inferido automáticamente.
Resumiendo lo que hemos visto, para modelar un dominio, tenemos primero que identificar las clases, identificar las propiedades, e identificar las instancias. Una vez que tenemos esto claro, lo que vamos a hacer es definir ciertas reglas sobre nuestro dominio, sobre nuestro ejemplo. En nuestro caso hemos definido restricciones, jerarquías de clases, jerarquías de propiedades y también restricciones que deben tener nuestras relaciones. Finalmente, el sistema automáticamente va a generar los nuevos datos en base a como hemos modelado nuestro dominio.
Vamos a utilizar primero para modelar nuestro dominio, la jerarquía de propiedades. Lo que vamos a hacer es definir esAutorDe, como subpropiedad de, serCreadorDe. Así, vamos a inferir automáticamente que todos los autores son creadores de algo. En nuestro ejemplo definimos que Cervantes es el autor de El Quijote. Vamos a definir también que serAutorDe es una subpropiedad de serCreadorDe, razón por la que automáticamente nuestro sistema va a inferir, que Cervantes, además de ser un autor de un libro, del Quijote, es creador de El Quijote.
Una vez definida la jerarquía de propiedades, vamos a definir las jerarquías de clases. En nuestro ejemplo tenemos que El Quijote es un libro de aventuras, y además vamos a definir, porque sabemos que un libro de aventuras también es un libro, por lo tanto nuestro sistema debería saber que todos los libros de aventuras son libros. Y eso es lo que tenemos con esta regla de inferencia; si un libro de aventuras hace su clase de libro, también es un libro.
Ahora vamos a utilizar las restricciones de dominio, las restricciones sobre las propiedades, para inferir nuevo conocimiento.
Aquí tenemos una foto de Carlos, que está leyendo El Quijote. Si definimos la restricción de dominio, el sujeto de la relación va a tener la restricción de dominio, vamos a definir la restricción de dominio de que Carlos es una persona. Es decir, el sujeto de la relación tiene que ser de tipo persona. A continuación, definimos que Carlos está leyendo El Quijote; vamos a definir que lee tiene la restricción de dominio, que es de tipo persona, y entonces el sistema va a inferir automáticamente sin que nosotros lo explicitemos, que Carlos es de tipo persona.
Ahora vamos a utilizar las restricciones de rango para las propiedades. Es decir, el objeto de la relación es el que va a tener la restricción. Por ejemplo, Cervantes es el autor de El Quijote, entonces vamos a definir la restricción de rango, de que serAutorDe, el objeto de la relación tiene que ser de tipo libro. Así, automáticamente nuestro sistema va a inferir, va a razonar, que El Quijote es de tipo libro, que Cervantes es autor de, autorDe siempre en el rango, el objeto de la relación tiene que ser de tipo libro, y que, sin que nosotros lo explicitemos, El Quijote es de tipo libro, porque el sistema lo ha inferido automáticamente.
Resumiendo lo que hemos visto, para modelar un dominio, tenemos primero que identificar las clases, identificar las propiedades, e identificar las instancias. Una vez que tenemos esto claro, lo que vamos a hacer es definir ciertas reglas sobre nuestro dominio, sobre nuestro ejemplo. En nuestro caso hemos definido restricciones, jerarquías de clases, jerarquías de propiedades y también restricciones que deben tener nuestras relaciones. Finalmente, el sistema automáticamente va a generar los nuevos datos en base a como hemos modelado nuestro dominio.
Estimado Miguel, te comento que a través del curso Semántica en la web de Coursera llegue a tu Blog, me ha gustado también el otro tema “Buscando tesoros en la web” que está cerrado en Coursera, pero como lo tienes tu me quedare para aprender. Te comento también que acabo de hacer el curso de la U de Santiago de Chile "Búsqueda y Gestión de la Información en la Web" en Miríada X, muy interesante para alguien que recién está aprendiendo sobre estos temas de la web. Para finalizar quería pedirte un pequeño favor; es sobre la Tarea 1 del curso Semántica en la Web, ya que no entiendo lo que se me pregunta;
ResponderEliminarDescripción del proyecto
En este proyecto se pide insertar contenido Schema.org utilizando RDFa. Para ello los alumnos deberán descargar un documento HTML de sitio web del curso e insertar descripciones Schema.org a los elementos del documento.
Evaluación
EL documento HTML debe ser validado en el sitio del W3C http://www.w3.org/2012/pyRdfa/Overview.html#distill_by_u y no contener errores, además de generar automáticamente los triples RDF. La evaluación del documento RDF se debería compartir con el resto de alumnos para validación online.
Quedo atento a tu respuesta
Saludos cordiales
Hola, Hernan; si bien este es un proyecto-curso que tengo temporalmente abandonado, en esa primera tarea facilitan un documento que contiene un listado de sparqles, donde se han de encontrar aquellos que se ajusten a la temática que vamos a abordar, y dispongan a su vez de su propio endpoint sparql.
EliminarA continuación, se han de generar las diferentes consultas en lenguaje RDFs (puedes ver un ejemplo en http://crime.rkbexplorer.com/sparql/# ), efectuar la consulta, y obtener el documento xml para subirlo como ejercicio en cada consulta.
Ok gracias, veré que puedo hacer. Saludos cordiales
ResponderEliminar