trioo, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetos
1. trioo
Sergio Fern´ndez
a
Motivaci´n
o
trioo Trabajo
relacionado
estudio e implementaci´n de modelos de datos RDF
o
Modelos
en lenguajes orientados a objetos
Implementaciones
Diseminaci´n
o
Conclusiones y
Sergio Fern´ndez
a trabajo futuro
Director: Jos´ Emilio Labra
e
Co-Director: Diego Berrueta
Trabajo Fin de M´ster
a
M´ster en Ingenier´ Web
a ıa
Universidad de Oviedo
Oviedo, 28 de julio de 2010
2. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
3. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
4. trioo
Motivaci´n
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
La Web de datos (Web of Data) ofrece una nueva Modelos
aproximaci´n para explotar datos de manera distribuida en la
o Implementaciones
Web Diseminaci´n
o
Conclusiones y
trabajo futuro
Gran cantidad de datos publicados como RDF (Linked
Data)
Listos para ser consumidos usando protocolos est´ndar
a
(HTTP) y lenguajes de consulta (SPARQL)
5. trioo
Motivaci´n (III)
o
Sergio Fern´ndez
a
Linking Open Data cloud:
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
6. trioo
Motivaci´n (III)
o
Sergio Fern´ndez
a
Motivaci´n
o
Lamentablemente los m´todos actuales para acceder a esos
e Trabajo
datos RDF exigen al programador conocimientos avanzados relacionado
del modelos de datos RDF: Modelos
Implementaciones
Diseminaci´n
o
Por tanto se convierte en una barrera que hay que Conclusiones y
trabajo futuro
tratar de saltar
Permitiendo el uso de esos datos sin que tenga efectos
negativos en los dise˜os orientados a objetos
n
A la vez que se trate de mantener la sem´ntica de los
a
datos lo m´s fiel posible dentro de las los lenguajes
a
orientados a objetos
7. trioo
Metodolog´
ıa
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Profundo estudio del estado del arte Diseminaci´n
o
Conclusiones y
trabajo futuro
An´lisis te´rico
a o
Implementaciones para validar los resultados
8. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
9. trioo
Trabajo relacionado
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
10. trioo
Trabajo relacionado
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Este trabajo est´ estrechamente relacionado con el
a
trabajo realizado estos a˜os acerca de:
n Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
11. trioo
Trabajo relacionado
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Este trabajo est´ estrechamente relacionado con el
a
trabajo realizado estos a˜os acerca de:
n Implementaciones
Diseminaci´n
o
Conclusiones y
el mapeo de objetos al modelo relacional trabajo futuro
12. trioo
Trabajo relacionado
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Este trabajo est´ estrechamente relacionado con el
a
trabajo realizado estos a˜os acerca de:
n Implementaciones
Diseminaci´n
o
Conclusiones y
el mapeo de objetos al modelo relacional trabajo futuro
el acceso a datos en la Web (Sem´ntica)
a
13. trioo
Trabajo relacionado
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Este trabajo est´ estrechamente relacionado con el
a
trabajo realizado estos a˜os acerca de:
n Implementaciones
Diseminaci´n
o
Conclusiones y
el mapeo de objetos al modelo relacional trabajo futuro
el acceso a datos en la Web (Sem´ntica)
a
Por tanto se aplican parecidas t´cnicas y patrones de
e
dise˜o (Active Record, Data Mapper y dem´s).
n a
14. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
15. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
ActiveRecord para Ruby
16. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
ActiveRecord para Ruby
Django Models y SQLAlchemy para Python
17. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
ActiveRecord para Ruby
Django Models y SQLAlchemy para Python
GORM para Grails
18. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
ActiveRecord para Ruby
Django Models y SQLAlchemy para Python
GORM para Grails
Hibernate (JPA) y MyBatis para Java
19. trioo
Trabajo relacionado (II): almacenes tradicionales
Sergio Fern´ndez
a
Motivaci´n
o
(en este trabajo el t´rmino “almacenes tradicionales” realmente se
e Trabajo
relacionado
refiere a las bases de datos relacionales tradicionales)
Modelos
Implementaciones
Diseminaci´n
o
En los ultimos a˜os se ha hecho un esfuerzo importante en
´ n Conclusiones y
trabajo futuro
ese ´rea, por lo que han surgido muchas herramientas:
a
ActiveRecord para Ruby
Django Models y SQLAlchemy para Python
GORM para Grails
Hibernate (JPA) y MyBatis para Java
Y muchos otros...
20. trioo
Trabajo relacionado (III)
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
21. trioo
Trabajo relacionado (III)
Sergio Fern´ndez
a
Motivaci´n
o
Almacenes orientados a objetos:
Trabajo
JDO relacionado
Dobblin Modelos
Durus Implementaciones
ZODB Diseminaci´n
o
... Conclusiones y
trabajo futuro
22. trioo
Trabajo relacionado (III)
Sergio Fern´ndez
a
Motivaci´n
o
Almacenes orientados a objetos:
Trabajo
JDO relacionado
Dobblin Modelos
Durus Implementaciones
ZODB Diseminaci´n
o
... Conclusiones y
Almacenes XML: trabajo futuro
JAXB
...
23. trioo
Trabajo relacionado (III)
Sergio Fern´ndez
a
Motivaci´n
o
Almacenes orientados a objetos:
Trabajo
JDO relacionado
Dobblin Modelos
Durus Implementaciones
ZODB Diseminaci´n
o
... Conclusiones y
Almacenes XML: trabajo futuro
JAXB
...
Almacenes libres de esquema:
NoSQL
...
24. trioo
Trabajo relacionado (III)
Sergio Fern´ndez
a
Motivaci´n
o
Almacenes orientados a objetos:
Trabajo
JDO relacionado
Dobblin Modelos
Durus Implementaciones
ZODB Diseminaci´n
o
... Conclusiones y
Almacenes XML: trabajo futuro
JAXB
...
Almacenes libres de esquema:
NoSQL
...
Pero tambi´n otras aproximaciones m´s horizontales:
e a
LINQ
DataNucleus AccessPlatform
...
25. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
26. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Conclusiones y
trabajo futuro
27. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Empire y Sommer para Java Conclusiones y
trabajo futuro
28. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Empire y Sommer para Java Conclusiones y
trabajo futuro
Moriarty para PHP
29. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Empire y Sommer para Java Conclusiones y
trabajo futuro
Moriarty para PHP
SuRF para Python
30. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Empire y Sommer para Java Conclusiones y
trabajo futuro
Moriarty para PHP
SuRF para Python
Y algunos otros...
31. trioo
Trabajo relacionado (IV): almacenes RDF
Sergio Fern´ndez
a
Tambi´n han surgido propuestas similares para hacer esto
e Motivaci´n
o
Trabajo
con RDF: relacionado
Modelos
Implementaciones
ActiveRDF y Spira para Ruby
Diseminaci´n
o
Empire y Sommer para Java Conclusiones y
trabajo futuro
Moriarty para PHP
SuRF para Python
Y algunos otros...
Desafortunadamente estas propuestas est´n demasiado
a
influenciadas por otras tecnolog´ que guardan poca
ıas
relaci´n con RDF, y abusan de implementar APIs
o
propietarias para realizar la persistencia en lugar de utilizar
aproximaciones m´s puras basadas en SPARQL.
a
32. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
33. trioo
Modelo computacional orientado a objetos
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Realmente no existe un unico modelo, com´nmente los
´ u Modelos
lenguajes de programaci´n orientados a objetos se dividen en
o Implementaciones
dos grandes familias: Diseminaci´n
o
Conclusiones y
trabajo futuro
34. trioo
Modelo computacional orientado a objetos
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Realmente no existe un unico modelo, com´nmente los
´ u Modelos
lenguajes de programaci´n orientados a objetos se dividen en
o Implementaciones
dos grandes familias: Diseminaci´n
o
Conclusiones y
trabajo futuro
Lenguajes de programaci´n orientados a objetos
o
basados en clases
35. trioo
Modelo computacional orientado a objetos
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Realmente no existe un unico modelo, com´nmente los
´ u Modelos
lenguajes de programaci´n orientados a objetos se dividen en
o Implementaciones
dos grandes familias: Diseminaci´n
o
Conclusiones y
trabajo futuro
Lenguajes de programaci´n orientados a objetos
o
basados en clases
Lenguajes de programaci´n orientados a objetos
o
basados en prototipos
36. trioo
RDF
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
RDF (Resource Description Framework) es un lenguaje Implementaciones
asertacional que provee un flexible y extensible modelo de Diseminaci´n
o
datos. Conclusiones y
trabajo futuro
Basado en el concepto de tripleta:
(sujeto, predicado, objeto)
37. trioo
RDF (II)
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
38. trioo
Comparaci´n de modelos
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Ambos modelos presentan algunas diferencias: relacionado
Modelos
Implementaciones
Diseminaci´n
o
OO RDF Conclusiones y
trabajo futuro
Aproximaci´n
o Computacional Asertacional
Identidad Comparable Universal
Tipado Simple M´ltiple
u
Inferencia Dependiente de Dependiente
tipos los propios objetos de las propiedades
(s´lo algunos lenguajes)
o
Navegabilidad a trav´s de los atributos
e a trav´s de los arcos
e
39. trioo
Comparaci´n de modelos
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Tambi´n hay otros aspectos que dif´
e ıcilmente ser´n
a Implementaciones
alcanzables, por ejemplo: Diseminaci´n
o
Conclusiones y
trabajo futuro
40. trioo
Comparaci´n de modelos
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Tambi´n hay otros aspectos que dif´
e ıcilmente ser´n
a Implementaciones
alcanzables, por ejemplo: Diseminaci´n
o
Conclusiones y
trabajo futuro
Expresividad
41. trioo
Comparaci´n de modelos
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Tambi´n hay otros aspectos que dif´
e ıcilmente ser´n
a Implementaciones
alcanzables, por ejemplo: Diseminaci´n
o
Conclusiones y
trabajo futuro
Expresividad
Restricciones de integridad
42. trioo
Comparaci´n de modelos
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Tambi´n hay otros aspectos que dif´
e ıcilmente ser´n
a Implementaciones
alcanzables, por ejemplo: Diseminaci´n
o
Conclusiones y
trabajo futuro
Expresividad
Restricciones de integridad
Versionado
43. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
44. trioo
Implementaciones
Sergio Fern´ndez
a
Motivaci´n
o
Realizadas para validar el estudio te´rico:
o Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
Aunque pretendiendo que sean usables y funcionales.
45. trioo
Implementaciones
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Actualmente se ha desarrollado la idea en dos Modelos
implementaciones de referencia, basando la elecci´n en el
o Implementaciones
estudio realizado para determinar cales ser´
ıan Diseminaci´n
o
potencialmente m´s interesantes:
a Conclusiones y
trabajo futuro
Una implementaci´n utilizando un lenguaje basado en
o
clases (Java)
Otra en un lenguaje basado en prototipos (Python)
46. trioo
jtrioo
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
La implementaci´n den Java
o Implementaciones
Diseminaci´n
o
Se utiliza mediante anotaciones Conclusiones y
trabajo futuro
Persistencia totalmente basada en SPARQL/SPARUL,
tanto de forma local como remota
Publicaci´n directa de Linked Data en aplicaciones
o
JavaEE
47. trioo
jtrioo (II)
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
1 @RdfResource ( type = " foaf : Person " ) relacionado
2 @URI ( base = " http :// example . org / person / " , parts = " name " ) Modelos
3 public class Person {
4 Implementaciones
5 @RdfProperty ( type = " foaf : title " , optional = true ) Diseminaci´n
o
6 private String title ; Conclusiones y
7 trabajo futuro
8 @Literal ( type = " foaf : name " , lang = " es " )
9 private String name ;
10
11 @RdfProperty ( type = " foaf : knows " ,
12 fetch = FetchType . LAZY )
13 private List < Person > knows ;
14
15 // ...
16
17 }
48. trioo
pryoo
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
La implementaci´n en Python
o Modelos
Implementaciones
Diseminaci´n
o
API mucho m´s flexible, con un uso intensivo de la
a Conclusiones y
reflectividad estructural que ofrece el lenguaje trabajo futuro
A´n en un temprano estado de desarrollo
u
Persistencia s´lo sobre endpoints remotos, dado que no
o
existe implementaci´n nativa para SPARUL en Python
o
49. trioo
pryoo (II)
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
1 >>> from pryoo import RdfResource Modelos
2 >>> sergio = RdfResource . retrieve ( " http :// www . wikier Implementaciones
. org / foaf # wikier " )
Diseminaci´n
o
3 >>> sergio . rdftype
4 [ foaf : Person ] Conclusiones y
trabajo futuro
5 >>> sergio . foaf_name
6 ’ Sergio Fernandez ’
7 >>> len ( sergio . foaf_knows )
8 38
9 >>> diego = sergio . foaf_knows [ " http :// berrueta . net /
foaf . rdf # me " ]
10 >>> diego . foaf_name
11 ’ Diego Berrueta ’
50. trioo
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
demostraci´n
o Conclusiones y
trabajo futuro
51. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
52. trioo
Diseminaci´n
o
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Sergio Fern´ndez, Diego
a relacionado
Berrueta, Miguel Garc´ıa Modelos
Implementaciones
Rodr´ıguez, and Jose E. Labra.
Diseminaci´n
o
TRIOO, Keeping the
Conclusiones y
Semantics of Data Safe and trabajo futuro
Sound into Object-Oriented
Software. In Proceedings of
the 5th International
Conference on Software and
Data Technologies (ICSOFT
2010), Athens, Greece, July
22-24, 2010.
53. trioo
Esquema
Sergio Fern´ndez
a
Motivaci´n
o
Trabajo
Motivaci´n
o relacionado
Modelos
Implementaciones
Trabajo relacionado
Diseminaci´n
o
Conclusiones y
trabajo futuro
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y trabajo futuro
54. trioo
Conclusiones y trabajo futuro
Sergio Fern´ndez
a
Este trabajo de investigaci´n marca las lineas generales
o Motivaci´n
o
a seguir Trabajo
relacionado
Modelos
Actualmente s´lo se han integrado ambos modelos de
o
Implementaciones
datos
Diseminaci´n
o
Conclusiones y
Pero el prop´sito final pretende realizar una integraci´n
o o trabajo futuro
a nivel sem´ntico
a
Se han de asimilar con m´s pausa las conclusiones
a
extra´
ıdas de las implementaciones
Mejor´ndolas
a
Abordando nuevas implementaciones
Probablemente C# y JavaScript
55. trioo
Sergio Fern´ndez
a
Motivaci´n
o
Muchas gracias Trabajo
relacionado
Modelos
Implementaciones
Diseminaci´n
o
Conclusiones y
trabajo futuro
M´s informaci´n en::
a o
http://trioo.wikier.org/
Esta presentaci´n est´ disponible bajo la licencia
o a
Creative Commons Reconocimiento CompartirIgual