Schlagwort-Archive: Domain Specific Language

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.

Aktuelle Projekte

Dieses Blog kam ja leider noch nicht so richtig in die Gänge, aber das soll sich nun ändern. Durch Landtagswahlkampf und Umzug hatte ich mich einige Monate auch fast nicht mit Linked Data und Co. befasst. Das hat sich in letzter Zeit wieder geändert und soll sich auch in diesem Blog wiederspiegeln.

Mein Hauptaugenmerk liegt derzeit auf dezentralen sozialen Netzwerken mit semantischen Technologien. Was es damit auf sich hat, werde ich demnächst mal näher erläutern. Wer es eilig hat liest sich diesen Artikel durch und googelt ein bisschen nach FOAF+SSL und WebID. Beim nächsten Braunschweiger Webmontag wird es bei Interesse auch eine kleine Präsentation dazu von mir geben.

Seit Tabulator nicht mehr in aktuellen Firefox-Versionen läuft, mangelt es mir an zufriedenstellenden RDF-Browsern, weshalb ich begonnen habe einen eigenen zu entwickeln. Falls jemand einen Tipp für einen guten Browser hat, würde ich mir die Arbeit aber gerne sparen.

Da ich mittlerweile die Sprache Groovy für mich entdeckt habe und diese die Entwicklung von Domain Specific Languages sehr einfach macht, entwickle ich derzeit eine solche DSL für die Generierung von RDF-Daten. Das ist schon ziemlich weit fortgeschritten und wird demnächst von mir veröffentlicht.

Soweit erstmal zum Stand der Dinge.