NAME

RDF::aREF - Another RDF Encoding Form

SYNOPSIS

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',
     },
    'http://work.example.com/asmith/',
  ],
  foaf_knows => {
    dct_description => 'a nice guy@en',
  },
};

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;

DESCRIPTION

aREF (another RDF Encoding Form) 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).

WARNING

aREF has been an attempt to solve problems that meanwhile have largely been solved by JSON-LD. Despite aRef having its own benefits, please consider using a more established technology (JSON-LD) instead!

EXPORTED FUNCTIONS

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:

aref_query $graph, [ $origin ], @queries

Query parts of an aREF data structure by aREF query expressions 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.

SEE ALSO

COPYRIGHT AND LICENSE

Copyright Jakob Voss, 2014-

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