PDF de programación - TRIOO, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetos

Imágen de pdf TRIOO, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetos

TRIOO, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetosgráfica de visualizaciones

Publicado el 14 de Abril del 2021
444 visualizaciones desde el 14 de Abril del 2021
2,0 MB
115 paginas
Creado hace 13a (01/07/2010)
UNIVERSIDAD DE OVIEDO

Máster en Ingeniería Web

TRABAJO FIN DE MÁSTER

TRIOO, estudio e implementación de modelos de datos RDF en

lenguajes orientados a objetos

Sergio Fernández López

UNIVERSIDAD DE OVIEDO

MÁSTER EN INGENIERÍA WEB

TRABAJO FIN DE MÁSTER

TRIOO, estudio e implementación de modelos de datos RDF en

lenguajes orientados a objetos

VoBo del Director

DIRECTORES: José Emilio Labra Gayo
Diego Berrueta Muñoz

AUTOR:

Sergio Fernández López

RESUMEN

El proyecto trioo tiene como objetivo desarrollar una tecnología que permita
de una manera lo más sencilla posible utilizar datos RDF directamente desde
lenguajes orientados a objetos, permitiendo que el origen y la forma de los
datos no tenga consecuencias para los diseños orientados a objetos, a la vez
que la semántica de los datos se refleje de la manera más fiel posible. l obje-
tivo no es sólo utilzar y persistir datos en bases de datos RDF, sino tambiñen
consumir datos disponibles en la Web y exponer los modelos de negocio de las
aplicaciones como Linked Data. La industria del software ya ofrece desde hace
varios año de soluciones que abordan el mismo problema sobre otro tipo de
modelos de datos, por ejemplo el relacional. Pero todavía no hay una solución
equivalente para RDF, debido a que muchas de las actuales alternativas están
demasiado inspiradas o basadas en sus homologas para las bases de datos rela-
cionales. Y el modelo de RDF tiene muchas particularidades semánticas que
deben tratarse como tal. Por tanto, desde nuestro punto de vista, es un reto muy
atractivo tratar de proveer una tecnología para manejar adecuadamente datos
RDF de una forma orientada a objetos.

￿￿￿￿￿￿￿￿ ￿￿￿￿￿

sistencia.

Semántica, RDF, SPARQL, Linked Data, lenguajes orientados a objetos, per-

Más detalles en http://trioo.wikier.org/

5

ABSTRACT

The trioo project aims to develop a technology able to easily manage RDF
data directly from object-oriented programming languages, allowing the usage
of that data without negative influences in object-oriented designs and trying
to keep the semantics of data as accurate as possible. The objective is not only
to persist that data on RDF stores, but also to consume data available on the
Web and to expose the business model of applications as Linked Data. The
software industry already offers some solutions since some years ago for re-
lational databases. But it is clear that there is not any satisfactory solution to
work with RDF. Because many of the current alternatives are strongly rely on
inherited design patterns too close to the entity-relational model. And the RDF
model has many special features and semantics that should be treated as such.
Therefore, form our point of view, provide a technology capable for managing
RDF data in a object-oriented way is a appealing challenge.

￿￿￿￿￿￿￿￿

tence.

Semantics, RDF, SPARQL, Linked Data, Object-oriented languages, persis-

Further details at http://trioo.wikier.org/

7

“The important thing is not to stop questioning.
Curiosity has its own reason for existing.”

Albert Einstein

9

AGRADECIMIENTOS

Aunque suene a tópico, este trabajo no hubiera sido posible sin el apoyo de
mucha gente. Empezando por mis directores Diego y Labra, por haber confiado
en mi de nuevo. A toda la gente que me ha hechado una mano, tanto técnica
como científicamente. Mis compañeros de trabajo por apoyarme siempre. Mis
amigos por comprenderme estos dos duros años. Y a mi familia, que siempre
ha confiado en mi.

De verdad, gracias a todos.

11

LICENCIA

El contenido de este documento se encuentra bajo la licencia Creative Com-
mons Reconocimiento 3.01. Por tanto, usted es libre de adaptar, compartir, dis-
tribuir y transmitir este trabajo, siempre y cuando cite la fuente original.

A excepción del artículo reproducido en el Anexo A, del cual los autores
han cedido los derechos a SciTePress (Science and Technology Publications,
Lda) para su publicación.

1 http://creativecommons.org/licenses/by/3.0/es/

13

HISTORIAL DEL DOCUMENTO

Fecha
Octubre 2009
Febrero 2010
Marzo 2010
Mayo 2010
Junio 2010
Julio 2010

Versión Comentarios
0.1
0.2
0.3
0.4
0.5
1.0

Primer esqueleto de la memoria
Añadido el estado del arte
Primera versión del análisis de los modelos computacionales
Revisión de los primeros capítulos
Borrador
Versión definitiva

15

ÍNDICE GENERAL
￿￿￿￿￿￿￿￿￿￿￿￿

1

. . . . . . . . . . . .
1.1 Introducción .
. . . . . . . . . . . .
1.2 Problema .
.
. . . . . . . . . . .
.
.
1.3 Tesis .
.
1.4 Objetivos
. . . . . . . . . . . .
.
.
1.5 Organización del documento . . . . . . . . . . . . . .

.
.
. . .
.

. . .
. . .

. . .

. .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.

. . . .
. . . .
. . . .
. . . .
. . . .

￿￿￿￿￿￿ ￿￿￿ ￿￿￿￿

.

.

.

.

.

.

.

.
.

.
.

.
.

.
.
.

. . . .
. . . .

2.1 Patrones .

.
.
.
.
. . .

. . . . . . . . . . . .

2.2 Tecnologías .
2.3 Herramientas

. . .
. . . . . . . .
. . . . . . . .
. . .

.
2.1.1 Active Record .
.
2.1.2 Data Mapper
.
.
.
.

. . . .
. . . . . . .
. . . . . . .
. . . .
. . . .
2.3.1 Persistencia sobre almacenes relacionales .
. .
2.3.2 Persistencia sobre almacenes orientados objetos . . .
.
2.3.3 Persistencia sobre almacenes libres de esquema . .
. .
2.3.4 Persistencia sobre almacenes XML . . . . . . . . . .
.
2.3.5 Persistencia sobre almacenes RDF . . . . . .
. . . .
.
2.3.6 Persistencia sobre otro tipo de almacenes de datos
.
2.4 Resumen y conclusiones del estado del arte . . . . . . . .
. .

. . . . . . . . . . . .
. . . . . . . . . . .

. . . .

. .

3.1 Modelos computacionales

￿￿￿￿￿￿￿￿ ￿￿ ￿￿￿ ￿￿￿￿￿￿￿

3.1.1 Modelo computacional orientado a objetos
3.1.2 Modelo RDF .
. . . .
.

. . . . . . . .

.
. . .

. . . . . . . . . . .

3.2 Comparación .

. .

.
.

.

.

.

. . . . . . . . . .

. . . .

. . . .
. . . .
. . . .
. . . .
. . . .

. . . . .
. . . . . .
. . . . . . .
. . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . .
. . . . . . .
. . . . . . . . . . . .
. . . . . . .
. . . .

. . . .

. . . .

2

3

4

.
.

.
.

.
.

. .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. .

3.2.1 Estado y comportamiento . .
.
3.2.2 Identidad .
3.2.3 Tipado .
.
.
3.2.4 Inferencia de tipos
3.2.5 Navegabilidad .
.
.

.
3.3.1 Expresividad .
3.3.2 Restricciones de integridad . . .
3.3.3 Versionado .

. . . . . . .
. . .
.

. . . . . . . .

. . . . . . . .

. .

.

.

.

3.3 Otros aspectos .

. . . . . . . . . . .

.
3.4 Conclusiones extraídas .

.

.
. .

. . . . . . . . . . . . . .

. . . . . . . . . . . .

￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿

. . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

4.1 Requisitos tecnológicos .
.
.
.

4.1.1 Persistencia .
4.1.2 Publicación .
4.1.3 Legibilidad .
4.1.4 Diferencias estructurales .
4.1.5 Mapeos dinámicos . . . . . . . .
4.1.6 Configuración .
. . . . . . . .
. . .
4.2 Lenguajes candidatos .

. . .

.
.
.
.

.
.
.

.
.

.
.

4.2.1 Candidatos al detalle . . .

. . .

. . . .
. . . .
. . . .

. . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . .
. . . . . . . . . . . .

. . . .
. . . .

. . . . . . . . . . . .

1
1
1
4
4
5

7
7
8
8
8
9
9
13
17
17
19
29
30

33
33
33
36
38
38
38
39
40
41
42
42
43
44
44

45
45
45
46
47
47
47
48
48
50

17

51

53
53
54
55
55
56
57
57
57
57
58
59
60
61
61

63

65

65

77

83

. . . . . . . .

. . . .

. . . . . . . .

4.3 Experimentación . . . .

Índicegeneral
￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿

5.1 jtrioo .

. . . . .

. . .

5

5.2 pryoo . . .

. . . .

. . . .

. . . .
. . . .

. . . . . . . . . .

. . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . .

5.1.1 Anotaciones . . . .
5.1.2 Registro de clases . . . .
5.1.3 API .
. . . . . . . . . .
5.1.4 Interceptación de métodos . . . . . . . . . . . .
5.1.5 Generación de consultas . . . . . . . . . . . . .
5.1.6 CURIEs . . . . . . . . .
. . . . . . . . .
5.1.7 Propiedades multivaluadas . . . . . . .
. . . .

. . . . . . . .
. .
.
. . .
.
. . .
. . .
.
. .
. . . .
. . . .
. . . . . . . .
. . .
5.2.1 Versión del lenguaje .
.
5.2.2 API .
5.2.3 Meta-programación . .
. . .
5.2.4 Asimetría __getattr__/__setattr__ en Python . . . . . .
. . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . .

. . . .

. . . .

5.3 Conclusiones extraídas . . . . . . . . .

. . . .

A.1 TRIOO, Keeping the Semantics of Data Safe and Sound into
. . . . .

Object-Oriented Software . . . . . . . . . . .

. . . .

6

￿￿￿￿￿￿￿￿￿￿￿￿
A ￿￿￿￿￿￿￿￿￿￿￿￿￿ ￿￿￿￿￿￿￿￿￿￿
B ￿￿￿￿￿￿￿￿￿￿￿

Bibliografía

18

ÍNDICE DE FIGURAS

. . . .

. . . .

.

Figura 1
Figura 2
Figura 3
Figura 4
Figura 5
Figura 6
Figura 7
Figura 8
Figura 9
Figura 10
Figura 11
Figura 12
Figura 13
Figura 14
Figura 15
Figura 16
Figura 17
Figura 18
Figura 19
Figura 20
Figura 21

Figura 22
Figura 23
Figura 24
Figura 25
Figura 26
Figura 27

Figura 28
Figura 29
Figura 30
Figura 31

Figura 32

Figura 33

Figura 34
Figura 35
Figura 36
Figura 37
Figura 38

Figura 39

. . . . .

. . . . . . . . .

. . . . . . . .
. . . .

. .
. . . . . . . . .

. .
Pila de tecnologías de la Web Semántica.
. . . . .
Patrón Data Mapper
. . . .
. . . . .
Sencillo ejemplo del ActiveRecord de RoR. .
. . . . . .
Ejemplo del uso de los modelos de Django.
. . . . . . . . . . .
Uso de GORM en Grails. .
Pila de tecnologías de Hibernate. . . . . . . . . . .
. .
Ejemplo de mapeo de consultas con MyBatis . . . . .
. .
. . . . . . . .
Ejemplo básico de uso de MyBatis.
. .
Ejemplo del uso clásico de SQLAlchemy.
. . . . .
. .
Ejemplo del uso declarativo de SQLAlchemy. . . .
Uso de Apache JDO.
. . . . . . . . . . . . . .
. .
Metadata para JDO.
. . . . .
. . . . . . . . . .
Sencillo ejemplo de uso de Dobbin.
. . . . . . . . .
Ejemplo de uso del API de Durus.
. .
.
. . . . . . . . . .
Ejemplo básico de uso de ZODB.
. . . . . . . . . . .
Fragmento de un XML Schema.
.
Clase Java con anotaciones de JAXB.
Ejemplo de uso de ActiveRDF . . . .
. . . . .
. . . . . . . . . . .
Ejemplo de uso de Empire. . .
  • Links de descarga
http://lwp-l.com/pdf19100

Comentarios de: TRIOO, estudio e implementación de modelos de datos RDF en lenguajes orientados a objetos (1)

Juan nartinez
Hace 7d
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad