Redland librdf RDF API Library (original) (raw)
Redland librdf Language Bindings - 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
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
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) ../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
Using the Redland Perl API
Read the Redland Perl PODdocumentation 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 _Statement_s usually held in one Storage. |
Storage | librdf_storage | RDF::Redland::Storage | Storage for _Model_s either persistant or in-memory. |
Stream | librdf_stream | RDF::Redland::Stream | Providing sequences of _Statement_s from _Parser_s, queries. |
Parser | librdf_parser | RDF::Redland::Parser | Syntaxes parsers delivering Stream of _Statement_s 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 _Statement_s |
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 _Resource_s, _Parser_s, ... |
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. |
Perl API Reference Documentation
Either use any of the RDF::Redland:: module links above or start at the main RDF::Redland moduleand follow the references from there.