NAME

Attean - A Semantic Web Framework

VERSION

This document describes Attean version 0.003_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 names AtteanX::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 to HTTP::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.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/attean/issues.

SEE ALSO

http://www.perlrdf.org/

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2014 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.