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.