NAME
Attean - A Semantic Web Framework
VERSION
This document describes Attean version 0.018_01
SYNOPSIS
use v5.14;
use Attean;
use Attean::RDF qw(iri);
my $store = Attean->get_store('Memory')->new();
my $parser = Attean->get_parser('NTriples')->new();
# iterator of triples and quads
my $iter = $parser->parse_iter_from_io(\*STDIN);
# add a graph name to all triples
my $quads = $iter->as_quads(iri('http://graph-name/'));
$store->add_iter($quads);
my $model = Attean::QuadModel->new( store => $store );
my $iter = $model->get_quads();
while (my $quad = $iter->next) {
say $quad->object->ntriples_string;
}
DESCRIPTION
Attean provides APIs for parsing, storing, querying, and serializing Semantic Web (RDF and SPARQL) data.
METHODS
get_store( $NAME )
-
Attempts to find a Attean::API::Store implementation with the given
$NAME
. This is done using Module::Pluggable and will generally be searching for class namesAtteanX::Store::$NAME
.Returns the full class name if a matching implementation is found, otherwise returns undef.
get_serializer( $NAME )
get_serializer( media_type => $MEDIA_TYPE )
-
Attempts to find a Attean::API::Serializer serializer class with the given
$NAME
, or that can serialize files with the$MEDIA_TYPE
media type.Returns the full class name if a matching implementation is found, otherwise returns undef.
get_parser( $NAME )
get_parser( filename => $FILENAME )
get_parser( media_type => $MEDIA_TYPE )
-
Attempts to find a Attean::API::Parser parser class with the given
$NAME
, or that can parse files with the same extension as$FILENAME
, or that can parse files with the$MEDIA_TYPE
media type.Returns the full class name if a matching implementation is found, otherwise returns undef.
negotiate_serializer ( request_headers => $request_headers, restrict => \@serializer_names, extend => \%media_types )
-
Returns a two-element list containing an appropriate media type and Attean::API::Serializer class as decided by HTTP::Negotiate. If the
'request_headers'
key-value is supplied, the$request_headers
is passed toHTTP::Negotiate::choose
. The option'restrict'
, set to a list of serializer names, can be used to limit the serializers to choose from. Finally, an<'extend'
> option can be set to a hashref that contains MIME-types as keys and a custom variant as value. This will enable the user to use this negotiator to return a type that isn't supported by any serializers. The subsequent code will have to find out how to return a representation. acceptable_parsers ( handles => $item_role, prefer => $parser_role )
-
Returns a string value expressing the media types that are acceptable to the parsers available to the system. This string may be used as an 'Accept' HTTP header value.
If a
handles
role is supplied, only parsers that produce objects that conform to$item_role
will be included.If a
prefer
role is supplied, only parsers that conform to$parser_role
will be included.Parsers are given a quality-value (expressing a preferred order or use) based on the roles each parser consumes. Parsers consuming Attean::API::PullParser are preferred, while those consuming Attean::API::AtOnceParser are not preferred. An exact ordering between parsers consuming similar roles is currently undefined.
BUGS
Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/attean/issues.
SEE ALSO
AUTHOR
Gregory Todd Williams <gwilliams@cpan.org>
COPYRIGHT
Copyright (c) 2014--2018 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.