blueMarine went Semantic
Posted by fabriziogiudici on February 2, 2009 at 11:11 AM EST
About ten months ago I announced that blueMarine was going to use some semantic web technologies. I planned to start blogging about that in May 2008, but indeed this branch of development was delayed, then frozen for a couple of months, then resumed, so it's beyond schedule. But now it's here.Technically, blueMarine itself isn't using yet semantic web because of some problems in the integration with Derby, problems that I'm working on. But there's a prototype of a website using blueOcean (= server-side counterpart of blueMarine), and it works with MySQL, so I'm not lying even though the title of this post is not 99% precise. In any case, Derby problems will be solved soon.
This is just an introductory post of a series that will illustrate why and how I integrated this stuff in blueMarine. Don't expect a tutorial about the semantic web itself, rather - as usual for me - an architectural perspective about a tool and why it's good/bad. Of course, I'll talk about tools and frameworks too, which happen to be OpenRDF and Elmo; a special care will be spent in explaining how the stuff integrates with the NetBeans Platform and which patterns / idioms are best.
As an introductory post, I can at least explain why I got there. It's because of birds, one of my favourite photo subjects. The cataloguing engine of blueMarine was born because of my need to precisely catalog my bird photos, being largely unsatisfied by what the market offered a few years ago. Birds (as any other living being) are catalogued by a taxonomy which is basically a hierarchical tree of labels; for instance, the dunlins depicted below are technically:
- Kingdom: Animalia
- Phylum: Chordata
- Class: Aves
- Order: Charadriiformes
- Family: Scolopacidae
- Genus: Calidris
- Species: alpina
In the meantime, I've also learnt that bird taxonomy isn't as easy: there are slightly different taxonomies upon which people don't agree, and sometimes they are changed; for instance, sometimes animals which are thought to be subspecies of the same species are "split" into different species (this frequently happens with gulls), other times the opposite happens ("lumping and splitting"). As a result, a serious bird cataloguing facility must keep this into account, a thing that my original tagging facility didn't: a leaf can have multiple parents at the same time and change them over time. This is not a quirk typical of birds: e.g. you can get sophisticated about hierarchies of places. For instance, in Italy we use three levels: region / province / place, while in France you throw in "arrondissement" and "canton" too, and "province" is indeed "department". If you are interested in history, both political and administrative borders move with time.In a few words, I've found that RDF (Resource Description Framework), the main technology behind the semantic web, was the perfect solution. Its main feature is that it represents knowledge in form of statements known as triples (subject - predicate - object), such as:
- "dunlin" "is-a" "bird"
- "Calidris" "is-a-subset-of" "Scolopacidae"
See you later for the next post.

Dunlins, or why I decided to use RDF
Technorati Tags: Semantic Web, RDF, OpenSesame, Elmo, blueMarine, blueOcean, NetBeans Platform
Blog Links >>
- Login or register to post comments
- Printer-friendly version
- fabriziogiudici's blog
- 1234 reads






Comments
by fabriziogiudici - 2009-02-07 14:29
Hi. blueMarine can import most of XMP since a few months (while it is not capable yet of exporting anything).by damnhandy - 2009-02-07 13:59
What would really make blueMarine really interesting if it could work XMP data. The Apache XML Graphics Commons for reading and writing that metadata. From there, it's really easy to store it with Sesame.