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
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
The Perl API is an object-based API reflecting the same structure of the Redland objects with simple mappings between them:
| Concept | Redland Class | Perl Class | Purpose |
|---|---|---|---|
| Resource / Literal | librdf_node | RDF::Redland::Node | RDF Model & Syntax nodes |
| Statement / Triple | librdf_statement | RDF::Redland::Statement | RDF Model & Syntax arcs (statements, triples) [isa Resource] |
| Model | librdf_model | RDF::Redland::Model | Set of Statements usually held in one Storage. |
| Storage | librdf_storage | RDF::Redland::Storage | Storage for Models either persistant or in-memory. |
| Stream | librdf_stream | RDF::Redland::Stream | Providing sequences of Statements from Parsers, queries. |
| Parser | librdf_parser | RDF::Redland::Parser | Syntaxes parsers delivering Stream of Statements or writing to a Model |
| Serializer | librdf_serializer | RDF::Redland::Serializer | Serializes a Model into a syntax such as RDF/XML |
| Iterator | librdf_iterator | RDF::Redland::Iterator | Enumerating lists (of Node) from queries. |
| URI | librdf_uri | RDF::Redland::URI | Provides URIs for Resources, Parsers, ... |
| World | RDF::Redland | RDF wrapper class handling Redland startup/shutdown | |
| Digest | librdf_digest | Internal content digest class | |
| Hash | librdf_hash | Internal key:value maps class | |
| List | librdf_list | Internal list class | |
| RDF::Redland::RSS | Perl Module providing RSS 1.0 support. |
Either use any of the RDF::Redland:: module links above or start at the main RDF::Redland module and follow the references from there.
Copyright 2000-2004 Dave Beckett, Institute for Learning and Research Technology, University of Bristol