Toby Inkster

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

Constructor

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.

Methods

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.

BUGS

Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=RDF-TriN3.

SEE ALSO

RDF::Trine::Node, RDF::Trine::Pattern.

AUTHOR

Toby Inkster <tobyink@cpan.org>

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

COPYRIGHT AND LICENCE

Copyright (c) 2006-2010 Gregory Todd Williams.

Copyright (c) 2010-2012 Toby Inkster.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl 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.