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

  # 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 python interface for Redland is mature and requires Python 2.2 or 2.3. It has been tested with the following versions:

2.2 on Linux/x86
2.3 on OSX/PPC
2.3.3 on FreeBSD/x86
2.3.3 on Linux/x86

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-2004 Dave Beckett, Institute for Learning and Research Technology, University of Bristol