RDF::Core::Function - a package of functions for query language.

- NAME
- DESCRIPTION

- Interface
- Functions implemented

- LICENSE
- AUTHOR
- SEE ALSO

# NAME

RDF::Core::Function - a package of functions for query language.

# DESCRIPTION

When there is a function found while evaluating query, its parameters are evaluated and passed to RDF::Core::Function apropriate piece of code. The code reference is obtained in a hash returned by `getFunctions()` call. Each function accepts RDF::Core::Literal or RDF::Core::Resource objects as paramaters and returns a tuple of arrays (array of two array references). The first references to an array of function results - Resource or Literal objects, the second one references to an array of predicates that could be used instead of the function. This is not always applicable, so the second array can be empty. For example, a function call:

      someBag.member()

returns ([uri://uri-of-the-first-member,....],[rdf:_1,...]).

There is a special parameter - a subject parameter, which says that a function is at position of property. For example:

      subproperty(schema:SomeProperty)

has no subject parameter defined and returns property names that are subproperties of given schema:SomeProperty.

      data:SomeObject.subproperty(schema:SomeProperty)

has subject parameter data:SomeObject and return values of subproperties for subject.

## Interface

- `new(%options)`
Available options are:

- Data
RDF::Core::Model object that contains data to be queried.

- Schema
RDF::Core::Model object that contains RDF schema.

- Factory
RDF::Core::NodeFactory object, that produces resource and literal objects.

- getFunctions
Returns a hash reference where each key is a name of a functions and value is a reference to an implementation code.

## Functions implemented

- `subclass(X)`
Not defined subject parameter:

Find all subclasses of X in Schema and return them if they have an instance in Data.

Defined subject parameter:

Result is not defined, dies.

- `subproperty(X)`
Not defined subject parameter:

Find all subproperties of X in Schema and return them if they occur in Data.

Defined subject parameter:

Find all subproperties of X in Schema and return their values for subject, if found.

- `member()`
Not defined subject parameter:

Result is not defined, dies.

Defined subject parameter:

Find all container members of subject.

# LICENSE

This package is subject to the MPL (or the GPL alternatively).

# AUTHOR

Ginger Alliance, rdf@gingerall.cz

# SEE ALSO

RDF::Core::Query