Provided by: librdf-linkeddata-perl_0.74-1_all 

NAME
RDF::LinkedData - A Linked Data server implementation
VERSION
Version 0.74
SYNOPSIS
For just setting this up and get it to run, you would just use the "linked_data.psgi" script in this
distribution. The usage of that is documented in Plack::App::RDF::LinkedData, with the README is a quick
start guide. If you want to try and use this directly, you'd do stuff like:
my $ld = RDF::LinkedData->new(store => $config->{store},
endpoint_config => $config->{endpoint},
base_uri => $config->{base_uri}
);
$ld->namespaces($config->{namespaces}) if ($config->{namespaces});
$ld->request($req);
return $ld->response($uri)->finalize;
See Plack::App::RDF::LinkedData for a complete example.
DESCRIPTION
This module is used to create a Linked Data server that can serve RDF data out of an RDF::Trine::Model.
It will look up URIs in the model and do the right thing (known as the 303 dance) and mint URLs for that,
as well as content negotiation. Thus, you can concentrate on URIs for your things, you need not be
concerned about minting URLs for the pages to serve it. In addition, optional modules can provide other
important functionalities: Cross-origin resource sharing, VoID description, cache headers, SPARQL
Endpoint, Triple Pattern Fragments, etc. As such, it encompasses a fair share of Semantic Web best
practices, but possibly not in a very flexible Big Data manner.
METHODS
"new ( store => $store, model => $model, base_uri => $base_uri, hypermedia => 1,
namespaces_as_vocabularies => 1, request => $request, endpoint_config => $endpoint_config, void_config =>
$void_config )"
Creates a new handler object based on named parameters, given a store config (recommended usage is to
pass a hashref of the type that can be passed to RDF::Trine::Store->new_with_config, but a simple
string can also be used) or model and a base URI. Optionally, you may pass a Plack::Request object
(must be passed before you call "content") and an "endpoint_config" hashref if you want to have a
SPARQL Endpoint running using the recommended module RDF::Endpoint.
This module can also provide additional triples to turn the response into a hypermedia type. If you
don't want this, set the "hypermedia" argument to false. Currently this entails setting the SPARQL
endpoint and vocabularies used using the VoID vocabulary <http://vocab.deri.ie/void>.
Finally, it can provide experimental Triple Pattern Fragments <http://www.hydra-
cg.com/spec/latest/triple-pattern-fragments/> support.
"BUILD"
Called by Moo to initialize an object.
"BUILDARGS"
Called by Moo to ensure that some attributes can be left unset.
"model"
Returns the RDF::Trine::Model object.
"base_uri"
Returns or sets the base URI for this handler.
"request ( [ $request ] )"
Returns the Plack::Request object if it exists or sets it if a Plack::Request object is given as
parameter.
"current_etag"
Returns the current Etag of the model suitable for use in a HTTP header. This is a read-only
attribute.
"last_etag", "has_last_etag"
Returns or sets the last Etag of so that changes to the model can be detected.
namespaces ( { skos => 'http://www.w3.org/2004/02/skos/core#', dct => 'http://purl.org/dc/terms/' } )
Gets or sets the namespaces that some serializers use for pretty-printing.
"response ( $uri )"
Will look up what to do with the given URI object and populate the response object.
"helper_properties ( )"
Returns the RDF::Helper::Properties object if it exists or sets it if a RDF::Helper::Properties
object is given as parameter.
"type"
Returns or sets the type of result to return, i.e. "page", in the case of a human-intended page or
"data" for machine consumption, or an empty string if it is an actual resource URI that should be
redirected.
"my_node"
A node for the requested URI. This node is typically used as the subject to find which statements to
return as data. This expects to get a URI object containing the full URI of the node.
"count ( $node)"
Returns the number of statements that has the $node as subject, or all if $node is undef.
"endpoint ( [ $endpoint ] )"
Returns the RDF::Endpoint object if it exists or sets it if a RDF::Endpoint object is given as
parameter. In most cases, it will be created for you if you pass a "endpoint_config" hashref to the
constructor, so you would most likely not use this method.
"void ( [ $voidg ] )"
Returns the RDF::Generator::Void object if it exists or sets it if a RDF::Generator::Void object is
given as parameter. Like "endpoint", it will be created for you if you pass a "void_config" hashref
to the constructor, so you would most likely not use this method.
AUTHOR
Kjetil Kjernsmo, "<kjetilk@cpan.org>"
CONTRIBUTORS
Toby Inkster
BUGS
Please report any bugs using github <https://github.com/kjetilk/RDF-LinkedData/issues>
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc RDF::LinkedData
The perlrdf mailing list is the right place to seek help and discuss this module:
<http://lists.perlrdf.org/listinfo/dev>
TODO
• Use IO::Handle streams when they become available from the serializers.
• Figure out what needs to be done to use this code in other frameworks, such as Magpie.
• Make it read-write hypermedia.
• Make the result graph configurable.
ACKNOWLEDGEMENTS
This module was started by Gregory Todd Williams "<gwilliams@cpan.org>" for RDF::LinkedData::Apache, but
has been almost totally rewritten.
COPYRIGHT & LICENSE
Copyright 2010 Gregory Todd Williams
Copyright 2010 ABC Startsiden AS
Copyright 2010, 2011, 2012, 2013, 2014, 2015 Kjetil Kjernsmo
This program is free software; you can redistribute it and/or modify it under the same terms as Perl
itself.
perl v5.20.2 2015-03-04 RDF::LinkedData(3pm)