Re: Experimental Ruby SKOS API

Dan,

I don't know much about Ruby but i like the idea of having a scripting  
language to do some stuff with SKOS. This may be of some use to you if  
you, especially if you want to work with SKOS and Java.  I have  
started a java API for SKOS [1] that is an extension of the OWL 2 API  
[2]. It is designed to provide a complete abstraction of the SKOS data  
model and supports all SKOS constructs that fall within OWL 2.

Some advantages of this approach are:
- You can work with SKOS objects at a high level abstraction without  
having to worry about any of the concrete syntaxes such as RDF/XML
- Create, Edit and Read SKOS files (Nice and clean axiom based change  
control)
- All the parsing and serialisation is handled by the OWL API
- Because it's an extension of the OWL API, you have access to the  
underlying OWL objects (e.g. for handling extensions to SKOS)
- All the reasoners supported by the OWL API (Pellet, Fact++ etc) mean  
you can work with a inferred SKOS model

Anyway, sorry if I hijacked your thread! If it's of no us to you maybe  
someone else on this list who want to do Java programming with SKOS  
might be interested.

Cheers,
Simon


1- http://skosapi.sourceforge.net/
2- http://owlapi.sourceforge.net/


Simon Jupp
simon.jupp@manchester.ac.uk
http://www.cs.man.ac.uk/~sjupp/


On 18 Feb 2009, at 11:12, Dan Brickley wrote:

>
> 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 14:45:03 UTC