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 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.3 on Solaris/Sparc
5.8.3 on Linux/x86
5.8.2 on Linux/x86
5.8.1-RC3 on OSX/PPC
5.8.0 on Linux/x86
5.8.0 on Linux/IA64
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) ../data/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://www.dajobe.org/], [http://purl.org/dc/elements/1.1/title], "Dave Beckett's Home Page"} Statement: {[http://www.dajobe.org/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"} Statement: {[http://www.dajobe.org/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"} Statement: {[http://www.dajobe.org/], [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://www.dajobe.org/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"} Subject: [http://www.dajobe.org/] Predicate: [http://purl.org/dc/elements/1.1/creator] Object: Dave Beckett Matching Statement: {[http://www.dajobe.org/], [http://purl.org/dc/elements/1.1/creator], "Dave Beckett"} Subject: [http://www.dajobe.org/] Predicate: [http://purl.org/dc/elements/1.1/creator] Object: Dave Beckett Searching model for targets of subject http://www.dajobe.org/ predicate http://purl.org/dc/elements/1.1/creator Matching Node: Dave Beckett Matching Node: Dave Beckett Querying for dc:titles: result 1: { a=[http://www.dajobe.org/] c=Dave Beckett's Home Page } Writing model to test-out.rdf as rdf/xml Done
Read the Redland Perl POD documentation for full details of the classes and methods provided along with examples of use.
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::Redland::BlankNode, RDF::Redland::URINode, RDF::Redland::LiteralNode and RDF::Redland::XMLLiteralNode |
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 |
Query | librdf_query | RDF::Redland::Query | Querying of an Model delivering a QueryResults |
QueryResults | librdf_query_results | RDF::Redland::QueryResults | Results of applying an Query to a Model giving either variable bindings with Node values or Stream of Statements |
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 | |
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 (C) 2000-2007 Dave Beckett, Copyright (C) 2000-2005 University of Bristol