«

»

Aug 29 2011

RDF auf Groovy-Art

Wie bereits angekündigt arbeite ich derzeit an einer Domain-Specific-Language / Bibliothek um RDF mit Groovy zu erzeugen. Das erste Release ist nun verfügbar. Die Vorzüge erkennt man am besten an einem kleinen Code-Beispiel:

RdfData rdfData = rdfBuilder {
  "http://example.com/resource/alice" {
     a "http://example.com/vocab/Person"
    "http://example.com/vocab/name" "Alice"
  }
}

Dieser Ausdruck ist äquivalent zu folgenden RDF-Daten im TURTLE-Format:

<http://example.com/resource/alice>
  a <http://example.com/vocab/Person>;
  <http://example.com/vocab/name> "Alice".
Nett, oder? Interessant wird das ganze natürlich erst, mit ein wenig Dynamik:
def person = new Person (...)

RdfData rdfData = rdfBuilder {
  "http://example.com/resource/${person.nick}" {
     a "http://example.com/vocab/Person"
    "http://example.com/vocab/name" person.name
    "http://example.com/vocab/knows" {
      person.friends.each { friend ->
        "http://example.com/resource/${friend.nick}" {}
      }
    }
  }
}

Die ganze Sprachvielfalt von Groovy steht zur Verfügung. Die Daten lassen sich dann in beliebigen Repräsentation schreiben, z.B. RDF/XML oder TURTLE. Mehr Code-Beispiele und Erklärungen gibts im User Guide. Version 0.1 steht hier zum Download bereit und den Sourcecode gibt es bei GitHub.

Freue mich über Feedback und weitere Ideen. Wer zur weiteren Entwicklung beitragen möchte, forkt einfach das Projekt bei GitHub und sendet mir ein Pull-Request.

3 Kommentare

  1. Holger

    Sieht man den Vorteil erst, wenn man Groovy kennt!? Ich sehe da im Moment keinen. Kannst du das kurz erklären oder eine gute Groovy-Einführung empfehlen, so dass das Beispiel klarer wird?

  2. Angelo Veltens

    Der Vorteil von groovyrdf ist der, dass man die Daten fast genauso simpel hinschreiben kann wie z.B. im TURTLE-Format. Zusätzlich habe ich alle Möglichkeiten einer dynamischen Skriptsprache, wie z.B. die for-each-Schleife im zweiten Beispiel. Die Java-Frameworks die es zur Erzeugung von RDF so gibt haben eine viel umständlichere Syntax, vergleiche zum Beispiel das Jena-Framework auf dem groovyrdf aufbaut.

    Bzgl. Groovy-Einführung kommt es auf deine Vorerfahrung an. Wenn du wie ich bereits Java-Kenntnisse hast, dann wird die vermutlich ein Blick in die offizielle Doku reichen um dich in Groovy einzufinden: http://groovy.codehaus.org/

  3. Holger

    Dann werde ich mir die Groovy-Einführung und im Anschluss daran deine Arbeit mal anschauen. Danke für deine Antwort.

Kommentare sind deaktiviert.