RDF can be embedded in (X)HTML using simple <script> tags. This is described at
<http://esw.w3.org/N3inHTML>. This gives you a file format that can contain multiple (optionally named)
graphs. The document as a whole can "endorse" a graph by including:
<link rel="meta" href="#foo" />
Where "#foo" is a fragment identifier pointing to a graph.
<script type="text/turtle" id="foo"> ... </script>
The rel="meta" stuff is parsed using an RDFa parser, so equivalent RDFa works too.
This module parses HTML files containing graphs like these, and allows you to access them each
individually; as a union of all graphs on the page; or as a union of just the endorsed graphs.
Despite the module name, this module supports a variety of <script type>s: text/turtle,
application/turtle, application/x-turtle text/plain (N-Triples), text/n3 (Notation 3),
application/x-rdf+json (RDF/JSON), application/json (RDF/JSON), and application/rdf+xml (RDF/XML).
The deprecated attribute "language" is also supported:
<script language="Turtle" id="foo"> ... </script>
Languages supported are (case insensitive): "Turtle", "NTriples", "RDFJSON", "RDFXML" and "Notation3".
Constructor
"HTML::Embedded::Turtle->new($markup, $base_uri, \%opts)"
Create a new object. $markup is the HTML or XHTML markup to parse; $base_uri is the base URI to use
for relative references.
Options include:
• markup
Choose which parser to use: 'html' or 'xml'. The former chooses HTML::HTML5::Parser, which can
handle tag soup; the latter chooses XML::LibXML, which cannot. Defaults to 'html'.
• rdfa_options
A set of options to be parsed to RDF::RDFa::Parser when looking for endorsements. See
RDF::RDFa::Parser::Config. The default is probably sensible.
PublicMethods
"union_graph"
A union graph of all graphs found in the document, as an RDF::Trine::Model. Note that the returned
model contains quads.
"endorsed_union_graph"
A union graph of only the endorsed graphs, as an RDF::Trine::Model. Note that the returned model
contains quads.
"graph($name)"
A single graph from the page.
"graphs"
"all_graphs"
A hashref where the keys are graph names and the values are RDF::Trine::Models. Some graph names will
be URIs, and others may be blank nodes (e.g. "_:foobar").
"graphs" and "all_graphs" are aliases for each other.
"endorsed_graphs"
Like "all_graphs", but only returns endorsed graphs. Note that all endorsed graphs will have graph
names that are URIs.
"endorsements"
Returns a list of URIs which are the names of endorsed graphs. Note that the presence of a URI $x in
this list does not imply that "$het->graph($x)" will be defined.
"dom"
Returns the page DOM.
"uri"
Returns the page URI.