Redland - RDF Application Framework - Python Interface

Installing the Redland Python interface

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

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

  cd python
  make
  make check   # optional, but requires librdf to be installed system wide

To install it system wide (this is optional) do this as root:

  root# make install

The python interface for Redland requires Python 2.2 (it also works fine with 2.3).

Testing the Redland Python interface

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

  python example.py

(Using the same chosen earlier)

Otherwise, to run it in the source tree you need to find out the architecture-specific sub-directory it created in the build directory such as build/lib.linux-i686-2.2 and run it with:

  PYTHONPATH=build/lib.linux-i686-2.3 python example.py

and the result should be:

  found statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"}
  Parsing URI (file) ../perl/dc.rdf
  Parsing added 3 statements
  Printing all statements
  Statement: {[http://purl.org/net/dajobe/], [http://purl.org/dc/elements/1.1/description], "The generic home page of Dave Beckett."}
  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"}
  Writing model to test-out.rdf as rdf/xml

Redland Python API Introduction

The pydoc Redland Python API contains full details of the classes and methods provided.

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

ConceptRedland ClassPython ClassPurpose
Resource / Literallibrdf_nodeRDF.Node RDF Model & Syntax nodes
Statement / Triplelibrdf_statementRDF.Statement RDF Model & Syntax arcs (statements, triples) [isa Resource]
Modellibrdf_modelRDF.Model Set of Statements usually held in one Storage.
Storagelibrdf_storageRDF.Storage Storage for Models either persistant or in-memory.
Streamlibrdf_streamRDF.Stream Providing sequences of Statements from Parsers, queries.
Parserlibrdf_parserRDF.Parser Syntaxes parsers delivering Stream of Statements or writing to a Model
Serializerlibrdf_serializerRDF.Serializer Serializes a Model into a syntax such as RDF/XML
Iteratorlibrdf_iteratorRDF.Iterator Enumerating lists (of Node) from queries.
URIlibrdf_uriRDF.Uri Provides URIs for Resources, Parsers, ...
World RDF.World 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

Other RDF Python APIs and applications


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