W3C home > Mailing lists > Public > public-esw-thes@w3.org > February 2009

Experimental Ruby SKOS API

From: Dan Brickley <danbri@danbri.org>
Date: Wed, 18 Feb 2009 12:12:18 +0100
Message-ID: <499BED12.8070708@danbri.org>
To: SKOS <public-esw-thes@w3.org>

Just a quick note to report on a work-in-progress I've been exploring 
this week.

I started to make a Ruby API for SKOS.

The distinguishing feature here is that it uses jruby (a Ruby 
implementation in pure Java). As such it can call on the full powers of 
the Jena toolkit, which go far beyond anything available currently in 
Ruby. At the moment it doesn't do much, I just parse SKOS and make a 
tiny object model which exposes little more than prefLabel and 
broader/narrower.

I think it's worth exploring because Ruby is rather nice for scripting, 
but lacks things like OWL reasoners and the general maturity of Java 
RDF/OWL tools (parsers, databases, etc.).

I've posted some example snippet in See 
http://svn.foaf-project.org/foaftown/2009/skosdex/readme.txt which uses 
the UKAT SKOS dataset.

The idea is to use some ruby idioms to explore the SKOS graph.

Quick example. This goes 2 levels down from some chosen concept:

s1 = SKOS.new()
s1.read("file:samples/archives.rdf")
c1 = s1.concepts["http://www.ukat.org.uk/thesaurus/concept/1366"]
puts "test concept is "+ c1 + " " + c1.prefLabel
c1.narrower do |uri|
   c2 = s1.concepts[uri]
   puts "\tnarrower: "+ c2 + " " + c2.prefLabel
   c2.narrower do |uri|
     c3 = s1.concepts[uri]
     puts "\t\tnarrower: "+ c3 + " " + c3.prefLabel
   end
end

See http://svn.foaf-project.org/foaftown/2009/skosdex/readme.txt for the 
indented output, which I won't show here as it'll get lost in email 
formatting.

I'm interested to hear if anyone else has explored this topic. Obviously 
there is a lot more to SKOS than broader/narrower, so I'm very 
interested to find collaborators or at least a sanity check before 
taking this beyond a rough demo.

Thanks for any thoughts,

Dan

--
http://danbri.org/
Received on Wednesday, 18 February 2009 11:12:57 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:39:03 GMT