Jump to: navigation, search

Under the name tripresso a group of researchers discussed issues and tools for mapping RDf to the OO-world in Java. Tripresso is not software, but just the topic name for a discussion.


  • Max Völkel (voelkel/at/, Karlsruhe, tool: RDFReactor
  • Sven Schwarz (schwarz/at/, Kaiserslautern, tool: RDF2Java
  • Henry Story (henry.story/at/ , Berlin, tool: Sommer
  • Peter Mika FOAF, James Leigh, tool: Elmo
  • Sherman Monroe (sdmonroe/at/ tool: Cyparkler
  • Add your name here, if you like


No clear process at the moment. Look at the discussion page for some ongoing (old) discussion points.

Java tools[edit]


  • good command line
  • generates code from RDFS
    • Java classes for RDFS classes => no multiple "inheritance" supported => no multiple super classes
  • very tiny, lightweight project aiming at "a ready-to-use hammer at hand" instead of a sophisticated, generic toolkit framework ;-)
  • not maintained anymore (software frozen but working)


  • runtime via byte code rewriting
  • no generation of code
  • uses Java annotations
  • store: Sesame
  • vocabulary: any URIs


  • BSD, Java 5.0, store Sesame (generic API);
  • Additional functionality on top of the triple store: predictive caching (preloading properties and saving query results for future queries), query expansion (for handling owl:sameAs), dealing with metadata (reification) ;
  • JavaBeans concepts for a number of well known web ontologies including Dublin Core, RSS and FOAF;
  • Dynamic Runtime JavaBean creation based on RDFS/OWL;
  • A set of tools related to the supported ontologies, including an RDF crawler, a generic smusher framework and a generic validator framework, with various smushers and a validator specific to FOAF;
  • Code generation using Groovy script template;
  • Elmo uses annotated Java interfaces, which are implemented by dynamic classes at runtime using Javassist.


  • generates code from RDFS
  • experimental, partial generation from OWL
  • cardinality constraints
  • store: via RDF2Go Jena, Sesame and YARS are supported
  • uses Velocity for template generation


  • Generate code from OWL
  • Code generation uses old Jena version.
  • Project dead, but code still works.


Java related work[edit]

other Java-RDF-OO-frameworks

Relational DB-Mapper:

  • Hibernate
  • SDO
  • Java Persistence API (JPA)
  • D2RQ maps DBs to RDF

XML bindings

  • JAXB or JAXP

Related generic Java tools

Related work (programming language independent)[edit]

more on modelling in ontologies and software

  • EvoOnt - a set of software ontologies and data exchange format based on OWL

ER Model to OWL mapping

The most serious work is on DL Lite (now standardized as OWL QL), which captures (large fragments of) ER, UML models and the like.

You may want to look at [1].

[1] DL-Lite: Practical Reasoning for Rich DLs Diego Calvanese, Giuseppe De Giacomo, Maurizio Lenzerini, Riccardo Rosati, and Guido Vetere volume 104 of CEUR Electronic Workshop Proceedings, of the 2004 Description Logic Workshop (DL 2004). 2004

Extensions of ER have also been studied, e.g. in [2].

[2] Alessandro Artale, Diego Calvanese, Roman Kontchakov, V. Ryzhikov, Michael Zakharyaschev: Reasoning over Extended ER Models. ER 2007: 277-292

The work on mapping UML to DLs is quite related, see e.g. [3], [4].

[3] Andrea Calì, Diego Calvanese, Giuseppe De Giacomo, Maurizio Lenzerini: A Formal Framework for Reasoning on UML Class Diagrams. ISMIS 2002: 503-513

[4] Daniela Berardi, Diego Calvanese, Giuseppe De Giacomo: Reasoning on UML Class Diagrams is EXPTIME-hard. Description Log.css 2003

[5] Fahad, Muhammad. ER2OWL: Generating OWL Ontology from ER Diagram Intelligent Information Processing IV, IFIP - The International Federation for Information Processing, Volume 288. ISBN 978-0-387-87684-9. International Federation for Information Processing, 2009, p. 28


Ruby tools[edit]

ActiveRDF, works nice with Ruby on rails

Python tools[edit]


  • RDF/XML got you down? Tired of having to go through contortions to deal with data? Want to write Python and be standards-compatible at the same time? Need a module to implement the psuedo-code you had on your slides? TRAMP may or may not be the answer to these problems!


  • Sparta is an Python API for RDF that is designed to help easily learn and navigate the Semantic Web programmatically. Unlike other RDF interfaces, which are generally triple-based, Sparta binds RDF nodes to Python objects and RDF a.css to attributes of those Python objects.


  • SuRF is an Object - RDF Mapper based on the popular rdflib python library. It exposes the RDF triple sets as sets of resources and seamlessly integrates them into the Object Oriented paradigm of python in a similar manner as ActiveRDF does for ruby.


  • The goal of RDF Alchemy is to allow anyone who uses python to have a object type API access to an RDF Triplestore.

PHP tools[edit]


  • review missing