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:
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 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 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
aREF is specified at http://github.com/gbv/aREF.
See Catmandu::RDF for an application of this module.
Usee RDF::Trine for more elaborated handling of RDF data in Perl.
See RDF::YAML for a similar (outdated) RDF encoding in YAML.
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.