Redland RDF Application Framework - Perl Interface

Installing the Redland Perl interface

This is built if --with-perl is given to the configure line, or --with-perl=perl5.8 to use a particular perl version/program. The standard 'make' at the top level will build it.

You can also compile the perl interface by hand as follows:

  cd perl
  make

  # optional, but it may require a top-level 'make install
  # first depending on the operating system and how it
  # handles shared libraries
  make check

To install it system wide do this as root (or maybe via sudo make install):

  root# make install

The Redland Perl interface is mature has been tested with the following versions (5.6.0 is the likely minimum; 5.005 is too old).

5.8.0 on Linux/x86
5.8.0 on Linux/IA64
5.8.1-RC3 on OSX/PPC
5.8.2 on Linux/x86
5.8.3 on Solaris/Sparc

Testing the Redland Perl interface

If you did the optional install above, run the perl example program with:

  perl ./example.pl

Otherwise, to run in the source tree do:

  perl -Iblib/arch -Iblib/lib ./example.pl

and the result should be:

  Creating storage

  Creating model

  Creating statement

  Adding statement to model

  Adding statement (new Statement(n, n, n)) to model

  Adding statement (n,n,n) to model

  Parsing URI (file) dc.rdf
  Parsing added 3 statements

  Printing all statements
  Statement: {[http://example.org/foo], [http://example.org/foo], [http://example.org/foo]}
  Statement: {[http://example.org/foo], [http://example.org/foo], [http://example.org/foo]}
  Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/title], "Dave Beckett's Home Page"}
  Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"}
  Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"}
  Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/description], "The generic home page of Dave Beckett."}

  Searching model for statements matching predicate http://purl.org/dc/elements/1.1/creator
  Matching Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"}
    Subject: [http://purl.org/net/dajobe/]
    Predicate: [http://purl.org/dc/elements/1.1/creator]
    Object: Dave Beckett
  Matching Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"}
    Subject: [http://purl.org/net/dajobe/]
    Predicate: [http://purl.org/dc/elements/1.1/creator]
    Object: Dave Beckett

  Searching model for targets of subject http://purl.org/net/dajobe/ predicate http://purl.org/dc/elements/1.1/creator
  Matching Node: Dave Beckett
  Matching Node: Dave Beckett

  Writing model to test-out.rdf as rdf/xml

Done

Redland Perl API Introduction

The Perl API is an object-based API reflecting the same structure of the Redland objects with simple mappings between them:

ConceptRedland ClassPerl ClassPurpose
Resource / Literallibrdf_nodeRDF::Redland::Node RDF Model & Syntax nodes
Statement / Triplelibrdf_statementRDF::Redland::Statement RDF Model & Syntax arcs (statements, triples) [isa Resource]
Modellibrdf_modelRDF::Redland::Model Set of Statements usually held in one Storage.
Storagelibrdf_storageRDF::Redland::Storage Storage for Models either persistant or in-memory.
Streamlibrdf_streamRDF::Redland::Stream Providing sequences of Statements from Parsers, queries.
Parserlibrdf_parserRDF::Redland::Parser Syntaxes parsers delivering Stream of Statements or writing to a Model
Serializerlibrdf_serializerRDF::Redland::Serializer Serializes a Model into a syntax such as RDF/XML
Iteratorlibrdf_iteratorRDF::Redland::Iterator Enumerating lists (of Node) from queries.
URIlibrdf_uriRDF::Redland::URI Provides URIs for Resources, Parsers, ...
World RDF::Redland RDF wrapper class handling Redland startup/shutdown
Digestlibrdf_digest  Internal content digest class
Hashlibrdf_hash  Internal key:value maps class
Listlibrdf_list  Internal list class
  RDF::Redland::RSS Perl Module providing RSS 1.0 support.

Perl API Reference Documentation

Either use any of the RDF::Redland:: module links above or start at the main RDF::Redland module and follow the references from there.

Other RDF Perl APIs and applications


Copyright 2000-2004 Dave Beckett, Institute for Learning and Research Technology, University of Bristol