Post on 07-May-2015
description
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
triooestudio e implementacion de modelos de datos RDF
en lenguajes orientados a objetos
Sergio Fernandez
Director: Jose Emilio LabraCo-Director: Diego Berrueta
Trabajo Fin de MasterMaster en Ingenierıa Web
Universidad de Oviedo
Oviedo, 28 de julio de 2010
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Motivacion
La Web de datos (Web of Data) ofrece una nuevaaproximacion para explotar datos de manera distribuida en laWeb
I Gran cantidad de datos publicados como RDF (LinkedData)
I Listos para ser consumidos usando protocolos estandar(HTTP) y lenguajes de consulta (SPARQL)
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Motivacion (III)Linking Open Data cloud:
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Motivacion (III)
Lamentablemente los metodos actuales para acceder a esosdatos RDF exigen al programador conocimientos avanzadosdel modelos de datos RDF:
I Por tanto se convierte en una barrera que hay quetratar de saltar
I Permitiendo el uso de esos datos sin que tenga efectosnegativos en los disenos orientados a objetos
I A la vez que se trate de mantener la semantica de losdatos lo mas fiel posible dentro de las los lenguajesorientados a objetos
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Metodologıa
I Profundo estudio del estado del arte
I Analisis teorico
I Implementaciones para validar los resultados
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado
I Este trabajo esta estrechamente relacionado con eltrabajo realizado estos anos acerca de:
I el mapeo de objetos al modelo relacional
I el acceso a datos en la Web (Semantica)
I Por tanto se aplican parecidas tecnicas y patrones dediseno (Active Record, Data Mapper y demas).
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado
I Este trabajo esta estrechamente relacionado con eltrabajo realizado estos anos acerca de:
I el mapeo de objetos al modelo relacional
I el acceso a datos en la Web (Semantica)
I Por tanto se aplican parecidas tecnicas y patrones dediseno (Active Record, Data Mapper y demas).
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado
I Este trabajo esta estrechamente relacionado con eltrabajo realizado estos anos acerca de:
I el mapeo de objetos al modelo relacional
I el acceso a datos en la Web (Semantica)
I Por tanto se aplican parecidas tecnicas y patrones dediseno (Active Record, Data Mapper y demas).
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado
I Este trabajo esta estrechamente relacionado con eltrabajo realizado estos anos acerca de:
I el mapeo de objetos al modelo relacional
I el acceso a datos en la Web (Semantica)
I Por tanto se aplican parecidas tecnicas y patrones dediseno (Active Record, Data Mapper y demas).
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado
I Este trabajo esta estrechamente relacionado con eltrabajo realizado estos anos acerca de:
I el mapeo de objetos al modelo relacional
I el acceso a datos en la Web (Semantica)
I Por tanto se aplican parecidas tecnicas y patrones dediseno (Active Record, Data Mapper y demas).
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (II): almacenes tradicionales
(en este trabajo el termino “almacenes tradicionales” realmente se
refiere a las bases de datos relacionales tradicionales)
En los ultimos anos se ha hecho un esfuerzo importante enese area, por lo que han surgido muchas herramientas:
I ActiveRecord para Ruby
I Django Models y SQLAlchemy para Python
I GORM para Grails
I Hibernate (JPA) y MyBatis para Java
I Y muchos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (III)
I Almacenes orientados a objetos:I JDOI DobblinI DurusI ZODBI ...
I Almacenes XML:I JAXBI ...
I Almacenes libres de esquema:I NoSQLI ...
I Pero tambien otras aproximaciones mas horizontales:I LINQI DataNucleus AccessPlatformI ...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (III)
I Almacenes orientados a objetos:I JDOI DobblinI DurusI ZODBI ...
I Almacenes XML:I JAXBI ...
I Almacenes libres de esquema:I NoSQLI ...
I Pero tambien otras aproximaciones mas horizontales:I LINQI DataNucleus AccessPlatformI ...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (III)
I Almacenes orientados a objetos:I JDOI DobblinI DurusI ZODBI ...
I Almacenes XML:I JAXBI ...
I Almacenes libres de esquema:I NoSQLI ...
I Pero tambien otras aproximaciones mas horizontales:I LINQI DataNucleus AccessPlatformI ...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (III)
I Almacenes orientados a objetos:I JDOI DobblinI DurusI ZODBI ...
I Almacenes XML:I JAXBI ...
I Almacenes libres de esquema:I NoSQLI ...
I Pero tambien otras aproximaciones mas horizontales:I LINQI DataNucleus AccessPlatformI ...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (III)
I Almacenes orientados a objetos:I JDOI DobblinI DurusI ZODBI ...
I Almacenes XML:I JAXBI ...
I Almacenes libres de esquema:I NoSQLI ...
I Pero tambien otras aproximaciones mas horizontales:I LINQI DataNucleus AccessPlatformI ...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Trabajo relacionado (IV): almacenes RDF
Tambien han surgido propuestas similares para hacer estocon RDF:
I ActiveRDF y Spira para Ruby
I Empire y Sommer para Java
I Moriarty para PHP
I SuRF para Python
I Y algunos otros...
Desafortunadamente estas propuestas estan demasiadoinfluenciadas por otras tecnologıas que guardan pocarelacion con RDF, y abusan de implementar APIspropietarias para realizar la persistencia en lugar de utilizaraproximaciones mas puras basadas en SPARQL.
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Modelo computacional orientado a objetos
Realmente no existe un unico modelo, comunmente loslenguajes de programacion orientados a objetos se dividen endos grandes familias:
I Lenguajes de programacion orientados a objetosbasados en clases
I Lenguajes de programacion orientados a objetosbasados en prototipos
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Modelo computacional orientado a objetos
Realmente no existe un unico modelo, comunmente loslenguajes de programacion orientados a objetos se dividen endos grandes familias:
I Lenguajes de programacion orientados a objetosbasados en clases
I Lenguajes de programacion orientados a objetosbasados en prototipos
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Modelo computacional orientado a objetos
Realmente no existe un unico modelo, comunmente loslenguajes de programacion orientados a objetos se dividen endos grandes familias:
I Lenguajes de programacion orientados a objetosbasados en clases
I Lenguajes de programacion orientados a objetosbasados en prototipos
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
RDF
RDF (Resource Description Framework) es un lenguajeasertacional que provee un flexible y extensible modelo dedatos.
Basado en el concepto de tripleta:
(sujeto, predicado, objeto)
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
RDF (II)
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Comparacion de modelos
Ambos modelos presentan algunas diferencias:
OO RDFAproximacion Computacional Asertacional
Identidad Comparable UniversalTipado Simple Multiple
Inferencia Dependiente de Dependientetipos los propios objetos de las propiedades
(solo algunos lenguajes)Navegabilidad a traves de los atributos a traves de los arcos
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Comparacion de modelos
Tambien hay otros aspectos que difıcilmente seranalcanzables, por ejemplo:
I Expresividad
I Restricciones de integridad
I Versionado
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Comparacion de modelos
Tambien hay otros aspectos que difıcilmente seranalcanzables, por ejemplo:
I Expresividad
I Restricciones de integridad
I Versionado
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Comparacion de modelos
Tambien hay otros aspectos que difıcilmente seranalcanzables, por ejemplo:
I Expresividad
I Restricciones de integridad
I Versionado
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Comparacion de modelos
Tambien hay otros aspectos que difıcilmente seranalcanzables, por ejemplo:
I Expresividad
I Restricciones de integridad
I Versionado
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Implementaciones
Realizadas para validar el estudio teorico:
Aunque pretendiendo que sean usables y funcionales.
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Implementaciones
Actualmente se ha desarrollado la idea en dosimplementaciones de referencia, basando la eleccion en elestudio realizado para determinar cales serıanpotencialmente mas interesantes:
I Una implementacion utilizando un lenguaje basado enclases (Java)
I Otra en un lenguaje basado en prototipos (Python)
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
jtrioo
I La implementacion den Java
I Se utiliza mediante anotaciones
I Persistencia totalmente basada en SPARQL/SPARUL,tanto de forma local como remota
I Publicacion directa de Linked Data en aplicacionesJavaEE
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
jtrioo (II)
1 @RdfResource(type="foaf:Person")
2 @URI(base="http :// example.org/person/",parts="name")
3 public class Person {
4
5 @RdfProperty(type="foaf:title", optional=true)
6 private String title;
7
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 }
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
pryoo
I La implementacion en Python
I API mucho mas flexible, con un uso intensivo de lareflectividad estructural que ofrece el lenguaje
I Aun en un temprano estado de desarrollo
I Persistencia solo sobre endpoints remotos, dado que noexiste implementacion nativa para SPARUL en Python
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
pryoo (II)
1 >>> from pryoo import RdfResource
2 >>> sergio = RdfResource.retrieve("http ://www.wikier
.org/foaf#wikier")
3 >>> sergio.rdftype
4 [foaf:Person]
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 ’
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futurodemostracion
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Diseminacion
Sergio Fernandez, DiegoBerrueta, Miguel GarcıaRodrıguez, and Jose E. Labra.TRIOO, Keeping theSemantics of Data Safe andSound into Object-OrientedSoftware. In Proceedings ofthe 5th InternationalConference on Software andData Technologies (ICSOFT2010), Athens, Greece, July22-24, 2010.
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Esquema
Motivacion
Trabajo relacionado
Modelos
Implementaciones
Diseminacion
Conclusiones y trabajo futuro
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Conclusiones y trabajo futuro
I Este trabajo de investigacion marca las lineas generalesa seguir
I Actualmente solo se han integrado ambos modelos dedatos
I Pero el proposito final pretende realizar una integraciona nivel semantico
I Se han de asimilar con mas pausa las conclusionesextraıdas de las implementaciones
I Mejorandolas
I Abordando nuevas implementaciones
I Probablemente C# y JavaScript
trioo
Sergio Fernandez
Motivacion
Trabajorelacionado
Modelos
Implementaciones
Diseminacion
Conclusiones ytrabajo futuro
Muchas gracias
Mas informacion en::http://trioo.wikier.org/
Esta presentacion esta disponible bajo la licencia
Creative Commons Reconocimiento CompartirIgual