Re: Sommer: Semantic Web (Metadata) Mapper

On 10 May 2006, at 13:31, Eyal Oren wrote:
> On 05/10/06/05/06 00:02 +0200, Henry Story wrote:
>>
>> Hi,
>>
>> I just started an open source project called Sommer at https:// 
>> sommer.dev.java.net under a BSD licence. The code is just being 
>> forged right now, but feedback and ideas are welcome on the users 
>> mailing list.
>>
>> The idea is simply to use java annotations with simple Aspect 
>> Oriented Programing to map java object graphs to and from an RDF 
>> Graph.
>> All a java programmer will need to do is annotate his classes and 
>> its fields like this:
>
> Great!
> You might want to have a look at RDFReactor [3],
Thanks :-)
I blogged about it a year ago here:
http://blogs.sun.com/roller/page/bblfish/20050825
RDFReactor creates fully fledged classes from an Ontology. It does 
not use annotations. This means that you end up with a lot of setter, 
getter, adder, getAll, etc type methods. It also ties you very much 
in to one framework. (though they have an abstraction layer for all 
the other frameworks - at the cost of efficiency presumably). My 
Sommer 0.2 does things like this but using dynamic proxies. In the 
end it is very tedious to have all these methods. And in the end, you 
never quite get all you want. And often you get too much.
Sommer 0.4 adds java annotations, and for the moment starts by 
limiting itself to annotations on fields. (I will probably add 
annotations on methods too later, but I'd like to see how far one can 
get just with fields). It uses AOP to then do the mapping from the 
object to the RDF graph. This will end up being very flexible, 
allowing one to easily swap AOP tool set and RDF library without 
trouble.
Sommer does not yet create a class of objects from an RDF ontology. 
That could easily be added as a separate tool though. I will very 
likely develop one when I feel that the mapping side of things is 
stable and well understood.
> which is doing something like that for Java already, and at 
> ActiveRDF [2] which works for Ruby and is quite a bit more 
> comprehensive.
I blogged about it here recently
http://blogs.sun.com/roller/page/bblfish/20060427
Very nice. It would be fun to do something like this with Groovy too.
> In [2] we discuss the difficulties mapping the Semantic Web RDF/DL 
> to the OO paradigm, and how a dynamic language such as Ruby helps 
> to do this.
Thanks. I'll look this over in detail.
Some comments after quickly glancing at that paper:
I think one can get very far with Java. Using Dynamic Proxies by the 
way one can easily have multiple interface inheritance in Java. This 
is again what Sommer 0.2 does. It also suggests that annotations on 
methods (and hence on interfaces) could be useful too.
Also using AOP tools like javassist, you can add methods to classes 
"dynamically".
> I hope this will help getting you started, and to realise the 
> challenges ahead...(and by the way, there are several more 
> frameworks that try to do the same, as discussed in the paper).
I think with Sommer 0.4, I am getting something that is both very 
flexible and easy to understand for Java programmers. It will be 
different from the other frameworks in being very minimalistic, which 
I hope will make it possible for multiple implementations to work 
with the same annotated code. I am trying with Sommer to get down to 
the core of the similarity between OO programming and RDF. Both are 
in fact just graphs. One is a graph of objects, the other a graph of 
resources. Looked at like that the similarity is quite a lot bigger 
than people have realised.
All these tools are making it a lot easier for people to get
the hang of RDF and understand the power that lies in its simplicity.
I can forsee a time when RDF with SPARQL could become the default 
database access mechanism in Ruby on Rails...
Thanks for the feedback.
Henry
> -eyal
>
> [1] http://activerdf.org
> [2] http://eyaloren.org/pubs/sfsw2006.pdf
> [3] http://rdfreactor.ontoware.org/

Received on Wednesday, 10 May 2006 18:05:08 UTC

AltStyle によって変換されたページ (->オリジナル) /