NAME

RDF::Trine::Node::Formula - RDF Node class for formulae / graph literals

DESCRIPTION

Formulae are implemented as a subclass of literals. Parts of Trine that have no special knowledge about formulae (e.g. the Turtle serialiser) will just see them as literals with a particular datatype URI (http://open.vocab.org/terms/Formula).

If your code needs to detect formulae nodes, try:

  use Scalar::Util qw[blessed];
  if (blessed($node) && $node->isa('RDF::Trine::Node::Formula'))
    { ... do stuff to formulae ... }

or perhaps

  use Scalar::Util qw[blessed];
  if (blessed($node) && $node->can('pattern'))
    { ... do stuff to formulae ... }

METHODS

new ( $pattern )

Returns a new Formula structure. This is a subclass of RDF::Trine::Node::Literal.

$pattern is an RDF::Trine::Pattern or a string capable of being parsed with RDF::Trine::Parser::Notation3->parse_formula.

pattern ( $node )

Returns the formula as an RDF::Trine::Pattern.

forAll

Returns the a list of nodes with the @forAll quantifier.

This is a fairly obscure bit of N3 semantics.

forSome

Returns the a list of nodes with the @forSome quantifier.

This is a fairly obscure bit of N3 semantics.

as_literal_notation

Returns the formula in Notation-3-like syntax, excluding the wrapping "{"..."}".

Uses absolute URIs whenever possible, avoiding relative URI references, QNames and keywords.

from_literal_notation ( $string, $base )

Modifies the formula's value using Notation 3 syntax, excluding the wrapping "{"..."}".

equal ( $node )

Returns true if the two nodes are equal, false otherwise.

TODO - really need a "not equal, but equivalent" method.

AUTHOR

Toby Inkster <tobyink@cpan.org>

Based on RDF::Trine::Node::Literal by Gregory Todd Williams.

COPYRIGHT

Copyright (c) 2006-2010 Gregory Todd Williams.

Copyright (c) 2010 Toby Inkster.

All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.