RDF::aREF(3) Another RDF Encoding Form


use RDF::aREF;
my $rdf = {
_id => 'http://example.com/people#alice',
foaf_name => 'Alice Smith',
foaf_age => '42^xsd_integer',
foaf_homepage => [
_id => 'http://personal.example.org/',
dct_modified => '2010-05-29^xsd_date',
foaf_knows => {
dct_description => 'a nice [email protected]',
decode_aref( $rdf,
callback => sub {
my ($subject, $predicate, $object, $language, $datatype) = @_;

my @lastmod = aref_query $rdf, 'foaf_homepage.dct_modified^';
my $model = RDF::Trine::Model->new;
decode_aref( $rdf, callback => $model );
print RDF::Trine::Serializer->new('Turtle')->serialize_model_to_string($model);
my $model = RDF::Trine::Model->new;
RDF::Trine::Parser->parse_url_into_model($url, $model);
my $aref = encode_aref $model;


aREF (another RDF Encoding Form <http://gbv.github.io/aREF/>) is an encoding of RDF graphs in form of arrays, hashes, and Unicode strings. This module provides methods for decoding from aREF data to RDF triples (RDF::aREF::Decoder), for encoding RDF data in aREF (RDF::aREF::Encoder), and for querying parts of an RDF graph (RDF::aREF::Query).


The following functions are exported by default.

decode_aref $aref [, %options ]

Decodes an aREF document given as hash reference with RDF::aREF::Decoder. Equivalent to "RDF::aREF::Decoder->new(%options)->decode($aref)".

encode_aref $graph [, %options ]

Construct an aREF subject mapfrom an RDF graph. The RDF::aREF::Encoder for possible options. The $graph can be supplied as:
  • instance of RDF::Trine::Model
  • instance of RDF::Trine::Model::Iterator
  • an URL or a filename (only if RDF::Trine is installed)
  • instance of Attean::API::TripleIterator (experimental)
  • instance of Attean::API::TripleStore (experimental)
  • hash reference with RDF/JSON <http://www.w3.org/TR/rdf-json/> format (as returned by method "as_hashref" in RDF::Trine::Model)

aref_query $graph, [ $origin ], @queries

Query parts of an aREF data structure by aREF query expressions <http://gbv.github.io/aREF/aREF.html#aref-query> and return a list. See RDF::aREF::Query for details.

aref_query_map( $graph, [ $origin ], $query_map )

Map parts of an aREF data structure to a flat key-value structure.


Copyright Jakob Voss, 2014-

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.