The document discusses the TRIOO approach for keeping semantics of RDF data safe when used in object-oriented software. It motivates the need for this by describing how the Web of Data publishes huge amounts of RDF data that can be accessed using standard protocols and query languages, but current methods are closer to the RDF data model than common software tools. The document then outlines related work in areas like object-relational mappings, traditional and object-oriented databases, XML and schema-free stores, and some RDF-based approaches.
TRIOO, Keeping the Semantics of Data Safe and Sound into Object-Oriented Software
1. TRIOO
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
TRIOO Labra
Keeping the Semantics of Data Safe and Sound Motivation
into Object-Oriented Software Related work
Models
Object Oriented
computational model
RDF data model
Sergio Fern´ndez1 , Diego Berrueta1 ,
a Models comparison
ıguez2 , Jose E. Labra2
Miguel Garc´ Rodr´
ıa Implementations
Conclusions and
future work
Fundaci´n CTIC
o
Universidad de Oviedo
5th International Conference on Software and Data
Technologies (ICSOFT 2010), July 23th, 2010, Athens, Greece.
2. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
3. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
4. TRIOO
Motivation
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
5. TRIOO
Motivation
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
The Web of Data offers a new approach to exploit data
across the Web Motivation
Huge amount of data published as RDF (Linked Data) Related work
Ready to be consumed by applications using standard Models
Object Oriented
protocols (HTTP) and query languages (SPARQL) computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
6. TRIOO
Motivation
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
The Web of Data offers a new approach to exploit data
across the Web Motivation
Huge amount of data published as RDF (Linked Data) Related work
Ready to be consumed by applications using standard Models
Object Oriented
protocols (HTTP) and query languages (SPARQL) computational model
RDF data model
Models comparison
Implementations
Current methods to access to RDF data can be
Conclusions and
considered a kind of handcrafted work, closer to the future work
RDF data model than to the common software tools
Therefore it is necessary to fill that gap
Allowing the usage of this data without negative
influences in object-oriented designs
While trying to keep the semantics of data as accurate
as possible
7. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
8. TRIOO
Related work
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
9. TRIOO
Related work
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
This ongoing effort is extensively related to the work
Related work
made these years on:
Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
10. TRIOO
Related work
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
This ongoing effort is extensively related to the work
Related work
made these years on:
Models
Object Oriented
computational model
object-relational mappings RDF data model
Models comparison
Implementations
Conclusions and
future work
11. TRIOO
Related work
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
This ongoing effort is extensively related to the work
Related work
made these years on:
Models
Object Oriented
computational model
object-relational mappings RDF data model
Models comparison
Implementations
but also to the work on accessing (Semantic) Conclusions and
Web data future work
12. TRIOO
Related work
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
This ongoing effort is extensively related to the work
Related work
made these years on:
Models
Object Oriented
computational model
object-relational mappings RDF data model
Models comparison
Implementations
but also to the work on accessing (Semantic) Conclusions and
Web data future work
Therefore the same techniques and design patterns
(Active Record, Data Mapper and so on) apply.
13. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
14. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
ActiveRecord for Ruby on Rails
15. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
ActiveRecord for Ruby on Rails
Django Models or SQLAlchemy for Python
16. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
ActiveRecord for Ruby on Rails
Django Models or SQLAlchemy for Python
GORM for Grails
17. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
ActiveRecord for Ruby on Rails
Django Models or SQLAlchemy for Python
GORM for Grails
Hibernate (JPA) and MyBatis for Java
18. TRIOO
Related work (II): traditional stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
(on this talk the term “traditional stores” actually concerns Labra
traditional relational databases) Motivation
Related work
Models
Object Oriented
Many software tools for object-relation mapping have computational model
RDF data model
emerged on last years: Models comparison
Implementations
Conclusions and
future work
ActiveRecord for Ruby on Rails
Django Models or SQLAlchemy for Python
GORM for Grails
Hibernate (JPA) and MyBatis for Java
And many others...
19. TRIOO
Related work (III)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
20. TRIOO
Related work (III)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Object-oriented stores: Rodr´
ıguez, Jose E.
Labra
JDO
Dobblin Motivation
Durus Related work
ZODB Models
Object Oriented
... computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
21. TRIOO
Related work (III)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Object-oriented stores: Rodr´
ıguez, Jose E.
Labra
JDO
Dobblin Motivation
Durus Related work
ZODB Models
Object Oriented
... computational model
RDF data model
XML stores: Models comparison
Implementations
JAXB
Conclusions and
... future work
22. TRIOO
Related work (III)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Object-oriented stores: Rodr´
ıguez, Jose E.
Labra
JDO
Dobblin Motivation
Durus Related work
ZODB Models
Object Oriented
... computational model
RDF data model
XML stores: Models comparison
Implementations
JAXB
Conclusions and
... future work
Schema-free stores:
NoSQL
...
23. TRIOO
Related work (III)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Object-oriented stores: Rodr´
ıguez, Jose E.
Labra
JDO
Dobblin Motivation
Durus Related work
ZODB Models
Object Oriented
... computational model
RDF data model
XML stores: Models comparison
Implementations
JAXB
Conclusions and
... future work
Schema-free stores:
NoSQL
...
Also other horizontal approaches:
LINQ
DataNucleus AccessPlatform
...
24. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
25. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
26. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Empire and Sommer for Java Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
27. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Empire and Sommer for Java Object Oriented
computational model
RDF data model
Moriarty for PHP Models comparison
Implementations
Conclusions and
future work
28. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Empire and Sommer for Java Object Oriented
computational model
RDF data model
Moriarty for PHP Models comparison
Implementations
SuRF for Python
Conclusions and
future work
29. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Empire and Sommer for Java Object Oriented
computational model
RDF data model
Moriarty for PHP Models comparison
Implementations
SuRF for Python
Conclusions and
future work
And some others...
30. TRIOO
Related work (IV): RDF-based stores
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
There also are some similar approaches to do so with RDF:
Motivation
Related work
ActiveRDF and Spira for Ruby Models
Empire and Sommer for Java Object Oriented
computational model
RDF data model
Moriarty for PHP Models comparison
Implementations
SuRF for Python Conclusions and
future work
And some others...
But they tend to be too influenced by other technologies
that have nothing to do with RDF, and abuse of
implementing proprietary APIs instead of using pure
SPARQL approaches.
31. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
32. TRIOO
Object Oriented computational model
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Actually there is not a single model, because usually Models
object-oriented languages are divided into two big families: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
33. TRIOO
Object Oriented computational model
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Actually there is not a single model, because usually Models
object-oriented languages are divided into two big families: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Class-based programming languages
Conclusions and
future work
34. TRIOO
Object Oriented computational model
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
Actually there is not a single model, because usually Models
object-oriented languages are divided into two big families: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Class-based programming languages
Conclusions and
future work
Prototype-based programming languages
35. TRIOO
Class-based programming languages
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Class-based programming languages are those which use a Related work
computational model where objects are grouped on sets with Models
Object Oriented
equal structure and behavior as instances of the same class. computational model
RDF data model
Models comparison
Implementations
Conclusions and
Thus there is a heavy link between an object and its class on future work
instantiation, and it is not possible to create and use an
object without previously define its static structure and
behavior on a class.
36. TRIOO
Prototype-based programming languages
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Prototype-based programming languages aim to be more
Motivation
faithful to the object computational model, where it is only Related work
necessary to have objects, no additional abstractions such as Models
classes are required. Object Oriented
computational model
RDF data model
Models comparison
The common behavior is defined by what is known as “trait Implementations
objects”. The shared structure is represented as prototype Conclusions and
future work
objects, which inherit their behavior from the trait objects.
Therefore the state is always defined as objects. The
creation of objects (actually instance objects) is done using
cloning those prototype objects.
37. TRIOO
RDF
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
RDF (Resource Description Framework) is an assertional Related work
language that provides an extensible and flexible data model. Models
Object Oriented
computational model
RDF data model
Based on the concept of triple: Models comparison
Implementations
(subject, predicate, object) Conclusions and
future work
RDF is the core technology of the Semantic Web.
38. TRIOO
RDF (II)
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Formally a RDF triple is defined as a tuple (s, p, o) that Motivation
(s, p, o) (U ∪ B) × U × (U ∪ L ∪ B), where U is the universe Related work
of all possible named resources, identified by an URI, B is Models
the finite set on blank nodes, and L is the set with all RDF Object Oriented
computational model
RDF data model
literals. Models comparison
Implementations
Therefore a set on triples is structurally interpreted as a
Conclusions and
graph G = (V , E ), where V is the set of vertices that future work
V ⊂ (U ∪ B ∪ L), and E is the set of named arcs that
E ⊂ V × U × V.
For each triple (s, p, o) of the RDF data model, there is a
directed arc, p, between nodes s y o.
39. TRIOO
Models comparision
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Both models present some irreconcilable features, mainly: Motivation
Related work
Models
Object Oriented
OO RDF computational model
RDF data model
Approach Computational Assertional Models comparison
Identity Comparable Universal Implementations
Typing Single Multiple Conclusions and
future work
Type inference Depending of the Depending on
objects themselves the relationships
(only in some languages)
Navigability through attributes through arcs
40. TRIOO
Models comparison
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
And there are some other aspects that could not be
Models
achievable at a semantic level, such as: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
41. TRIOO
Models comparison
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
And there are some other aspects that could not be
Models
achievable at a semantic level, such as: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Expressiveness
Conclusions and
future work
42. TRIOO
Models comparison
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
And there are some other aspects that could not be
Models
achievable at a semantic level, such as: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Expressiveness
Conclusions and
Integrity Constraints future work
43. TRIOO
Models comparison
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
And there are some other aspects that could not be
Models
achievable at a semantic level, such as: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Expressiveness
Conclusions and
Integrity Constraints future work
Versioning
44. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
45. TRIOO
Implementations
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Currently we are immersed on developing the first two Related work
reference implementations, based on our study about the Models
programming languages potentially more interesting: Object Oriented
computational model
RDF data model
Models comparison
Implementations
Conclusions and
future work
46. TRIOO
Implementations
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Currently we are immersed on developing the first two Related work
reference implementations, based on our study about the Models
programming languages potentially more interesting: Object Oriented
computational model
RDF data model
Models comparison
Implementations
One on a class-based programming language (Java) Conclusions and
future work
47. TRIOO
Implementations
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Currently we are immersed on developing the first two Related work
reference implementations, based on our study about the Models
programming languages potentially more interesting: Object Oriented
computational model
RDF data model
Models comparison
Implementations
One on a class-based programming language (Java) Conclusions and
future work
And the other on a prototype-based programming
language (Python)
48. TRIOO
jtrioo
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Related work
The implementation on Java Models
Object Oriented
computational model
RDF data model
Models comparison
Based on annotations (quite inspired by JPA)
Implementations
Conclusions and
future work
Persistence fully based on SPARQL/SPARUL, both on
local and remote
49. TRIOO
pryoo
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
The implementation on Python Related work
Models
Object Oriented
Much more flexible API, intensively reflection usage computational model
RDF data model
Models comparison
Implementations
Still less stable
Conclusions and
future work
Persistence only works on remote endpoints
(implementation of SPARUL not yet available on
Python)
50. TRIOO
Outline
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Motivation
Motivation
Related work
Related work Models
Object Oriented
computational model
RDF data model
Models Models comparison
Object Oriented computational model Implementations
RDF data model Conclusions and
future work
Models comparison
Implementations
Conclusions and future work
51. TRIOO
Sergio Fern´ndez,
a
These are still the first steps, still a long way... Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Current approach only covers integration of both data
Motivation
models
Related work
Models
The aim at the end is to semantically integrate Object Oriented
computational model
RDF data model
Models comparison
Many lessons to learn from the current implementations Implementations
available on Python Conclusions and
future work
Improve them
New implementations will come
Probably C# and JavaScript
52. TRIOO
Sergio Fern´ndez,
a
Diego Berrueta,
Miguel Garc´ıa
Rodr´
ıguez, Jose E.
Labra
Thank you! Motivation
Related work
Models
Object Oriented
computational model
RDF data model
Models comparison
Further information at: Implementations
http://trioo.wikier.org/ Conclusions and
future work
This presentation is available under the
Creative Commons Attributions Share Alike license