---
name: "HTML::Embedded::Turtle"
section: "3pm"
platform: "linux"
package: "libhtml-embedded-turtle-perl"
version: "0.404-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Embedded::Turtle"
---

# HTML::Embedded::Turtle(3pm)

embedding RDF in HTML the crazy way

## NAME

HTML::Embedded::Turtle - embedding RDF in HTML the crazy way

## SYNOPSIS

```
 use HTML::Embedded::Turtle;

 my $het = HTML::Embedded::Turtle->new($html, $base_uri);
 foreach my $graph ($het->endorsements)
 {
   my $model = $het->graph($graph);

   # $model is an RDF::Trine::Model. Do something with it.
 }
```

## DESCRIPTION

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.

### Public Methods

- "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.

## BUGS

Please report any bugs to \<http://rt.cpan.org/\>.

Please forgive me in advance for inflicting this module upon you.

## SEE ALSO

RDF::RDFa::Parser, RDF::Trine, RDF::TriN3.

\<http://www.perlrdf.org/\>.

## AUTHOR

Toby Inkster \<tobyink@cpan.org\>.

## COPYRIGHT AND LICENSE

Copyright (C) 2010-2011, 2013 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

## DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
