RDF::RDFa::Generator - Generate data for RDFa serialization
$gen = RDF::RDFa::Generator->new(style => $style, %options)
Creates a new generator object. $style is one of the following case-sensitive strings: 'HTML::Head' (the default), 'HTML::Hidden' or 'HTML::Pretty'. You can also construct an object like this:
$gen = RDF::RDFa::Generator::HTML::Head->new(%options);
Options include:
base - the base URL where the output data will be published. This allows in some cases for the generated RDFa to include relative URIs.
data_context - if non-null, an Attean Blank or IRI object or an RDF::Trine::Node which indicates the context (named graph) containing the data to generate RDFa for.
namespacemap - a URI::NamespaceMap object containing preferred CURIE prefixes. This is the preferred method, see note below.
namespaces - a {prefix=>uri} hashref of preferred CURIE prefixes.
ns - a {uri=>prefix} hashref of preferred CURIE prefixes. DEPRECATED - use namespaces instead.
prefix_attr - use the @prefix attribute for CURIE prefixes (RDFa 1.1 only). Boolean, defaults to false.
safe_xml_literals - prevents XML literals from injecting arbitrary XHTML into the output. Boolean, defaults to FALSE.
title - assign a <title> element for generated XHTML documents.
version - set generated RDFa version. Valid values are '1.0' (the default) or '1.1'.
$gen->create_document($model, %opts)
Creates a new RDFa file containing triples. $model is an Attean::QuadModel (where the graph name is not used) object providing the triples. Returns an XML::LibXML::Document object suitable for serializing using its toString method.
toString
If you're planning on serving the RDFa with the text/html media type, then it is recommended that you use HTML::HTML5::Writer to serialize the document rather than toString.
Can also be called as a class method:
$document = RDF::RDFa::Generator->create_document($model) # Same as: # $document = RDF::RDFa::Generator->new->create_document($model)
Options can also be passed as a HASH. This is typically used for style-specific options.
$gen->inject_document($document, $model)
Injects an existing document with triples. $document is an XML::LibXML::Document to inject, or a well-formed XML string. $model is an Attean::QuadModel (where the graph name is not used) object providing the triples. Returns an XML::LibXML::Document object suitable for serializing using its toString method.
See create_document for information about serving the RDFa with the text/html media type.
create_document
Can also be called as a class method. See create_document for details.
$gen->nodes($model)
Provides triple-laden XML::LibXML::Elements to be added to a document. $model is an Attean::QuadModel (where the graph name is not used) object providing the triples. If called in list context, returns a list of XML::LibXML::Element objects which can be added to a document; otherwise returns an XML::LibXML::NodeList containing a list of such elements.
The HTML::Pretty generator can be passed a couple of additional options:
$gen->nodes($model, notes_heading=>'Additional Info', notes=>\@notes);
The notes are a list of RDF::RDFa::Generator::HTML::Pretty::Note objects which are added as notes to the end of each subject's data.
The recommended upgrade path is to migrate your application to use Attean rather than RDF::Trine as your RDF library. If that is not an option, you may continue to use RDF::Trine, by using a compatibility layer. If you are using this module directly, to upgrade from earlier releases, you would simply add
use RDF::TrineX::Compatibility::Attean;
alongside the import of this module. It is in a separate distribution that needs to be installed. If you use the RDF::Trine::Serializer methods, you should instead use RDF::Trine::Serializer::RDFa.
Version 0.200 introduced a large number of changes to be compatible with both Attean and RDF::Trine. Some of these were backwards-incompatible, some were to support new features, such as the use of URI::NamespaceMap.
The methods serialize_model_to_file, serialize_model_to_string, serialize_iterator_to_file and serialize_iterator_to_string that were provided for compatibility with the RDF::Trine::Serializer interface have been moved to a module RDF::Trine::Serializer::RDFa that has to be installed separately to use this with RDF::Trine.
serialize_model_to_file
serialize_model_to_string
serialize_iterator_to_file
serialize_iterator_to_string
data_context previously accepted a plain-text string URI. Now, it requires an appropriate object, as documented.
data_context
Since RDF 1.1 abandons untyped literals, this module also ceases to emit them.
The way namespace mappings are handled have been rewritten. Now, the preferred method to add them is to pass an URI::NamespaceMap object to namespacemap. This will override any other options.
namespacemap
The namespace mappings for the following prefixes will always be added: rdfa, rdf, rdfs and xsd.
rdfa
rdf
rdfs
xsd
If URI::NamespaceMap is not used, but namespaces is given as a hashref of prefix-URI pairs, the pairs will be added. If neither are given, all mappings from RDF::NS::Curated, which includes all if RDFa Initial Context will be added. Finally, any pairs from the deprecated ns option will be added, but a warning will be emitted.
namespaces
ns
Please report any bugs to https://github.com/kjetilk/p5-rdf-rdfa-generator/issues.
You may want to use the framework-specific frontends: RDF::Trine::Serializer::RDFa or AtteanX::Serializer::RDFa.
Other relevant modules:
HTML::HTML5::Writer, XML::LibXML, RDF::RDFa::Parser, RDF::Trine, URI::NamespaceMap, Attean.
Toby Inkster <tobyink@cpan.org>.
Kjetil Kjernsmo <kjetilk@cpan.org>.
Copyright (C) 2010 by Toby Inkster, 2017, 2018 Kjetil Kjernsmo
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8 or, at your option, any later version of Perl 5 you may have available.
RDF::RDFa::Generator::HTML::Pretty uses the FamFamFam Silk icons; see http://famfamfam.com/lab/icons/silk/.
To install RDF::RDFa::Generator, copy and paste the appropriate command in to your terminal.
cpanm
cpanm RDF::RDFa::Generator
CPAN shell
perl -MCPAN -e shell install RDF::RDFa::Generator
For more information on module installation, please visit the detailed CPAN module installation guide.