NAME
RDF::Simple::Serialiser - convert a list of triples to RDF
DESCRIPTION
A simple RDF serialiser. Accepts an array of triples, returns a serialised RDF document.
SYNOPSIS
my
$ser
= RDF::Simple::Serialiser->new(
# OPTIONAL: Supply your own bNode id prefix:
nodeid_prefix
=>
'a:'
,
);
# OPTIONAL: Add your namespaces:
$ser
->addns(
);
my
$node1
=
$ser
->genid;
my
$node2
=
$ser
->genid;
my
@triples
= (
[
$node1
,
'foaf:name'
,
'Jo Walsh'
],
[
$node1
,
'foaf:knows'
,
$node2
],
[
$node2
,
'foaf:name'
,
'Robin Berjon'
],
[
$node1
,
'rdf:type'
,
'foaf:Person'
],
);
my
$rdf
=
$ser
->serialise(
@triples
);
## Round-trip example:
my
$parser
= RDF::Simple::Parser->new();
my
@triples
=
$parser
->parse_rdf(
$rdf
);
my
$new_rdf
=
$serialiser
->serialise(
@triples
);
METHODS
- new()
- new(nodeid_prefix => 'prefix')
- serialise( @triples )
-
Accepts a 'bucket of triples' (an array of array references which are [subject, predicate, object] statements) and returns a serialised RDF document.
If 'rdf:type' is not provided for a subject, the generic node type 'rdf:Description' is used.
- serialize
-
A synonym for serialise() for American users.
- addns( qname => 'http://example.com/rdf/vocabulary#', qname2 => 'http://yetanother.org/vocabulary/' )
-
Use this method to add new namespaces to the RDF document. The RDF::Simple::NS module provides the following vocabularies by default (you can override them if you wish):
- genid( )
-
generates a random identifier for use as a bNode (anonymous node) nodeID. if nodeid_prefix is set, the generated id uses the prefix, followed by 8 random numbers.
- render
-
Does the heavy lifting of converting the "objects" to a string. Users of this module should call serialize(); Subclassers of this module will probably rewrite render().
BUGS
Please report bugs via the RT web site http://rt.cpan.org/Ticket/Create.html?Queue=RDF-Simple
NOTES
The original author was British, so this is a Serialiser. For American programmers, RDF::Simple::Serializer will work as an alias to the module, and serialize() does the same as serialise().
The distinction between a URI and a literal string in the "object" (third element) of each triple is made as follows: if the object is a reference, it is output as a literal; if the object "looks like" a URI (according to Regexp::Common::URI), it is output as a URI.
THANKS
Thanks particularly to Tom Hukins, and also to Paul Mison, for providing patches.
AUTHOR
Originally written by Jo Walsh (formerly <jo@london.pm.org>). Currently maintained by Martin Thurn <mthurn@cpan.org>.
LICENSE
This module is available under the same terms as perl itself.