trioo, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetos

  • 1,158 views
Uploaded on

My Master's thesis presentation

My Master's thesis presentation

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,158
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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