A Friendlier RDF API for Java

Back in January 2005, being annoyed with the verboseness of a certain RDF API for Java, I tried to come up with a friendlier way of manipulating generic RDF from Java. My experiments never went anywhere and I forgot about it after a few days. I just found the files on my hard disk and think this snippet is worth sharing:

public void testCreatePPD() {
    Document profile = RDF.newDocument();
    Resource richard = RDF.resource();
    Resource homepage = RDF.URI("http://richard.cyganiak.de/");
    profile.assert(profile, "rdf:type",
            "foaf:personalProfileDocument");
    profile.assert(profile, "foaf:primaryTopic",
            richard);
    profile.assert(richard, "foaf:name",
            RDF.literal("Richard Cyganiak"));
    profile.assert(richard, "foaf:mbox",
            RDF.URI("mailto:richard@cyganiak.de"));
    profile.assert(richard, "foaf:homepage",
            homepage);
    profile.assert(homepage, "dc:title",
            RDF.literal("Richard Cyganiak's Homepage"));
    profile.assert(homepage, "dc:description",
            RDF.literal("Meine Homepage (deutschsprachig)", "de"));

    ResourceSet people = profile.getAll("foaf:Person");
    Iterator it = people.iterator();
    while (it.hasNext()) {
    Resource person = (Resource) it.next();
        String name = profile.get(person, "foaf:name").asString();
        System.out.println(name);
    }
}

That looks pretty nice, I think. Wrapping Jena’s Graph interface into such a developer-friendly API wouldn’t be all that hard.

Of course, compared to ActiveRDF that code still looks as unfun as having your teeth pulled.

Leave a Reply