RDF::aREF - 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',
},
'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;
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).
The following functions are exported by default.
Decodes an aREF document given as hash reference with RDF::aREF::Decoder.
Equivalent to RDF::aREF::Decoder->new(%options)->decode($aref)
.
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)
Query parts of an aREF data structure by aREF query expressions and return a list. See RDF::aREF::Query for details.
Map parts of an aREF data structure to a flat key-value structure.
- 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 Jakob Voss, 2014-
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.