Re: Sommer: Semantic Web (Metadata) Mapper

On 15 May 2006, at 13:59, Max Völkel wrote:
> Hi Henry,
>
>   please check out whether RDFReactor [1] does already what you need
>   It assumes you start with an ontology (RDFS or OWL) and generate
>   Java code from that.

RDFReactor is good, and it was a great improvement for the end user  
over direct utilisation of frameworks like Sesame and Jena. But I am  
looking for something that is even easier to understand, even more  
flexible, something that could in the long term replace EJB3.0 [4]  
because of this simplicity, flexibility and sheer ease of use.

Sommer could easily be a subset of a future RDFReactor. I am thinking  
of Sommer as the core of any such mapping framework. Currently I am  
working with James Leigh and Peter Mika of the Elmo [0] project to  
see if we can agree on the core annotations required for such a  
mapping tool. You may want to participate by joining the  
users@sommer.dev.java.net mailing list. Once the annotations are  
agreed on, people can compete on implementations, by using different  
AOP tools, different frameworks, etc...

Essentially we need very little: an @RDF(url) annotation and an  
@Multiple or @Functional (we have not quite decided on this). (see  
the recent mailing list discussion). [2]

> Java instances act as proxies over the RDF
>   triple store, so they are always in-sync with the data. The
>   resulting code is very clean, documented and usable even by non-RDF
>   people (at least, that was the intention).

Yes. It does that very well. What I want to do is to push this a lot  
further so
that a few annotations and a standard factory interface would be all  
that is needed. Essentially if possible it would be nice to get to a  
point where we have something a lot simpler than EJB3.0. [4]

>   Using Java dynamic proxies per se doesn't make a developers life
>   easy. I used this in the beginning, but debugging got much
>   trickier, as the debugger cannot relate bugs in a dynamic proxy to
>   other parts of the code. Second, mapping the full inheritance  
> tree to Java
>   inheritance seems nice, but does not bring much benefits. You can
>   simply call "x.isInstanceOf( y )" in RDFReactor and get an answer
>   based on *the current state of the data*.

It would be interesting to compare the classes generated by  
RDFReactor to my example classes for the AtomOWL ontology [5] which I  
have coded up in the eg.test.atom [3] directory. I think you will see  
that the Sommer classes are a lot simpler to understand,  that the  
mapping is a lot cleaner and that it gives the user a lot more  
flexibility in how he develops his objects.  This happens because  
Sommer jumps to the core of the similarity between java and rdf: both  
are graphs.

>   The  idea  to  use Java annotations to model the bindings to URIs is
>   nice.  Maybe  something  to  be  explored  in  future  versions  of
>   RDFReactor.


It would be great if we could agree on the annoations to use, so that  
people writing objects would just need to use these annoations, and  
that they could then switch between frameworks. I'd love to hear from  
you on the users@sommer mailing list.

>
> [1] http://www.aifb.uni-karlsruhe.de/Publikationen/showPublikation? 
> publ_id=1213
>

[0] elmo subproject at http://openrdf.org/
[2] https://sommer.dev.java.net/servlets/ProjectMailingListList
[3] https://sommer.dev.java.net/source/browse/sommer/trunk/test/src/ 
eg/test/atom/
[4] http://www.jcp.org/en/jsr/detail?id=220
[5] http://bblfish.net/work/atom-owl/2005-10-23/

> Kind regards,

All the best,

	Henry

>
>   Max Völkel
> --
> Dipl.-Inform. Max Völkel, Universität Karlsruhe / FZI
>             nepomuk.semanticdesktop.org
> voelkel@fzi.de   +49 721 9654-854   www.xam.de
>
> First Workshop on Semantic Wikis: http://semwiki.org
>
>
>

Received on Monday, 15 May 2006 12:55:00 UTC