RDF::SKOS::Redland - SKOS - RDF::Redland based implementation


   my $model = ... # get an redland model

   use RDF::SKOS::Redland;
   my $skos = new RDF::SKOS::Redland ($model);

   # API like RDF::SKOS


One way to experience an SKOS object is to extract it from an underlying RDF graph. As the SKOS vocabulary is defined on the basis of RDF, this is well-defined.

This package makes this translation, assuming an RDF::Redland model underneath. How you get that model is your problem.

At the moment, this is all read-only. That is, you cannot modify the SKOS object and expect that this is reflected in the underlying RDF graph.

Concept Identification

Of course, being in the RDF world, concepts are identified via their URI (IRI, whatever).


  • You will get a STDERR warning:

      C<Redland warning: Variable a was selected but is unused in the query.>

    That is harmless, but cause of the incomplete implementation of SPARQL on top of Redland. Maybe I find a trick of working around, or maybe drop SPARQL alltogether.

  • With some versions of Redland you may get

      C<1/0Name "swig_runtime_data::type_pointer3 ....>

    Not sure what this is caused by.



The constructor expects exactly one parameter: the RDF model from which the SKOS is derived. An exception is raised if this is not so.




Given a concept IRI, this returns an RDF::SKOS::Concept. This is read-only.


Robert Barta, <drrho at>


Please report any bugs or feature requests to bug-rdf-skos at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


Copyright 2009 Robert Barta, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.