Tripresso

From semanticweb.org

Jump to: navigation, search

Under the name tripresso a group of researchers discusses issues and tools for mapping RDf to the OO-world in Java.

Contents

[edit] Logo Ideas

Image:Tripresso2.png

[edit] Participants

  • Max Völkel (voelkel/at/fzi.de), Karlsruhe, tool: RDFReactor
  • Sven Schwarz (schwarz/at/dfki.uni-kl.de), Kaiserslautern, tool: RDF2Java
  • Henry Story (henry.story/at/bblfish.net) , Berlin, tool: Sommer
  • Peter Mika FOAF, James Leigh, tool: Elmo
  • Sherman Monroe (sdmonroe/at/gmail.com) contributor

[edit] Process

We want to explore how or if we can combine our efforts to create fewer, better tools for mapping RDF to OO and back again.

Peter: My fear is that each triple store has a number of extra features and in some cases not using these features would hurt functionality or performance. (That said I dont' know RDF2Go and what it does in this respect.)

Max: It seems, we might need to agree on something like RDF2Go in order to overcome the triple store dependency. The currently proposed API can be inspected here.

Some tools generate Java code/interfaces from ontologies

  • we could agree on some annotations here

Some tools generate ontologies from Java

  • we could agree on some annotations here

Some tools use annotated Java with RDF

  • we could agree on some annotations here
  • James: Elmo and Sommer use very similar @rdf annotation, but Elmo annotates methods on Java interfaces and Sommer annotates fields on Java classes.

[edit] What do we offer?

[edit] RDF2Java

  • good command line
  • generates code from RDFS

[edit] Sommer

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

[edit] Elmo

  • 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.

[edit] RDFReactor

  • 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

[edit] Related Work

other Java-RDF-OO-frameworks

diverse relational DB-Mapper:

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

diverse XML bidings

  • JAXB or JAXP - which one?

related generic Java tools

[edit] Related Work outside the Java world

Ruby

Python

PHP

Personal tools