.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Attean 3pm" .TH Attean 3pm "2019-02-13" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Attean \- A Semantic Web Framework .SH "VERSION" .IX Header "VERSION" This document describes Attean version 0.021 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 5 \& use v5.14; \& use Attean; \& use Attean::RDF qw(iri); \& my $store = Attean\->get_store(\*(AqMemory\*(Aq)\->new(); \& my $parser = Attean\->get_parser(\*(AqNTriples\*(Aq)\->new(); \& \& # iterator of triples and quads \& my $iter = $parser\->parse_iter_from_io(\e*STDIN); \& \& # add a graph name to all triples \& my $quads = $iter\->as_quads(iri(\*(Aqhttp://graph\-name/\*(Aq)); \& \& $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; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Attean provides APIs for parsing, storing, querying, and serializing Semantic Web (\s-1RDF\s0 and \s-1SPARQL\s0) data. .SH "METHODS" .IX Header "METHODS" .ie n .IP """get_store( $NAME )""" 4 .el .IP "\f(CWget_store( $NAME )\fR" 4 .IX Item "get_store( $NAME )" Attempts to find a Attean::API::Store implementation with the given \f(CW$NAME\fR. This is done using Module::Pluggable and will generally be searching for class names \f(CW\*(C`AtteanX::Store::$NAME\*(C'\fR. .Sp Returns the full class name if a matching implementation is found, otherwise returns undef. .ie n .IP """get_serializer( $NAME )""" 4 .el .IP "\f(CWget_serializer( $NAME )\fR" 4 .IX Item "get_serializer( $NAME )" .PD 0 .ie n .IP """get_serializer( media_type => $MEDIA_TYPE )""" 4 .el .IP "\f(CWget_serializer( media_type => $MEDIA_TYPE )\fR" 4 .IX Item "get_serializer( media_type => $MEDIA_TYPE )" .PD Attempts to find a Attean::API::Serializer serializer class with the given \&\f(CW$NAME\fR, or that can serialize files with the \f(CW$MEDIA_TYPE\fR media type. .Sp Returns the full class name if a matching implementation is found, otherwise returns undef. .ie n .IP """get_parser( $NAME )""" 4 .el .IP "\f(CWget_parser( $NAME )\fR" 4 .IX Item "get_parser( $NAME )" .PD 0 .ie n .IP """get_parser( filename => $FILENAME )""" 4 .el .IP "\f(CWget_parser( filename => $FILENAME )\fR" 4 .IX Item "get_parser( filename => $FILENAME )" .ie n .IP """get_parser( media_type => $MEDIA_TYPE )""" 4 .el .IP "\f(CWget_parser( media_type => $MEDIA_TYPE )\fR" 4 .IX Item "get_parser( media_type => $MEDIA_TYPE )" .PD Attempts to find a Attean::API::Parser parser class with the given \&\f(CW$NAME\fR, or that can parse files with the same extension as \&\f(CW$FILENAME\fR, or that can parse files with the \f(CW$MEDIA_TYPE\fR media type. .Sp Returns the full class name if a matching implementation is found, otherwise returns undef. .ie n .IP """negotiate_serializer ( request_headers => $request_headers, restrict => \e@serializer_names, extend => \e%media_types )""" 4 .el .IP "\f(CWnegotiate_serializer ( request_headers => $request_headers, restrict => \e@serializer_names, extend => \e%media_types )\fR" 4 .IX Item "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 \&\f(CW\*(Aqrequest_headers\*(Aq\fR key-value is supplied, the \f(CW$request_headers\fR is passed to \f(CW\*(C`HTTP::Negotiate::choose\*(C'\fR. The option \f(CW\*(Aqrestrict\*(Aq\fR, set to a list of serializer names, can be used to limit the serializers to choose from. Finally, an \f(CW\*(C`<\*(Aqextend\*(Aq\*(C'\fR> 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. .ie n .IP """acceptable_parsers ( handles => $item_role, prefer => $parser_role )""" 4 .el .IP "\f(CWacceptable_parsers ( handles => $item_role, prefer => $parser_role )\fR" 4 .IX Item "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' \s-1HTTP\s0 header value. .Sp If a \f(CW\*(C`handles\*(C'\fR role is supplied, only parsers that produce objects that conform to \f(CW$item_role\fR will be included. .Sp If a \f(CW\*(C`prefer\*(C'\fR role is supplied, only parsers that conform to \&\f(CW$parser_role\fR will be included. .Sp 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. .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to through the GitHub web interface at . .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "AUTHOR" .IX Header "AUTHOR" Gregory Todd Williams \f(CW\*(C`\*(C'\fR .SH "COPYRIGHT" .IX Header "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.