---
name: "RDF::Trine::Node::Formula"
section: "3pm"
platform: "linux"
package: "librdf-trin3-perl"
version: "0.206-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/RDF::Trine::Node::Formula"
---

# RDF::Trine::Node::Formula(3pm)

RDF Node class for formulae / graph literals

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