RDF::Core - An object oriented Perl module to supprt RDF.

- NAME
- RELEASE NOTE
- MODULES
- LICENSE
- AUTHOR

# NAME

RDF::Core - An object oriented Perl module to support RDF.

# RELEASE NOTE

RDF::Core is a pure perl implementation of RDF storage, parser and serializer. The storage's functionality is basic - store, delete, query statements, where query means ask about existence or count or retrieve statements conforming given mask of (subject, predicate, object). Three storages are available - in memory, file (DB_File) and DBMS (PostgreSQL). The parser supports full RDF/XML syntax including aboutEach attribute. The serializer tries to preserve anonymous nodes and to compact xml a bit by grouping statements with common subject.

Besides the basic querying, there is a query language implemented. The query language is focused on resource, not statement and the typical pattern is me->neighbor->child->age to express neighbour's children's age, not (me,neighbour, him) && (him, child, it) && (it, age, value). It contains some shortcuts to express things, that are (possibly) expressed often, like object->rdf:type = someClass. Functions are another enhancement of the language. They can be used instead of resource or property. Functions are implemented in a separated library, so that it's easy to create new or modify existing ones.

We focus on acceptable and clean interface between parts of the module. Typically a storage should have it's interface on a 'statement level' (add statement, get statement) rather then on data elements level (add this value into hash_one and that into hash_two), which comes with interface based on lower level base.

# MODULES

RDF::Core includes the following modules. See documentation for particular modules for details:

- RDF::Core::Model
  Model provides interface to store RDF statements, ask about them (in a very simple manner yet) and retrieve them back.

  - RDF::Core::Model::Parser
    Model::Parser is a simple interface object to a parser. It's purpose is to provide a prototype of object accomodating any other parser.

  - RDF::Core::Model::Serializer
    Model::Serializer is an interface object for serializer.

- RDF::Core::ModelSet
  An RDF model set.

- RDF::Core::Parser
  Generates statements from an RDF XML document.

- RDF::Core::Serializer
  Serializes RDF Model into XML.

- RDF::Core::Storage
  An object for storing statements. There are several implementations of Storage - in memory, in a BerkeleyDB 1.x (DB_File) files and PostgreSQL database.

  - RDF::Core::Storage::DB_File
    Berkeley DB 1.x implementation of RDF::Core::Storage.

  - RDF::Core::Storage::Memory
    An in-memory implementation of RDF::Core::Storage.

  - RDF::Core::Storage::Postgres
    PostgreSQL implementation of RDF::Core::Storage.

- RDF::Core::Enumerator
  Enumerator is a result set of statements retrieved from Model

  - RDF::Core::Enumerator::DB_File
    Enumerator that can be used with the DB_File storage.

  - RDF::Core::Enumerator::Memory
    Enumerator that can be used with the Memory storage.

  - RDF::Core::Enumerator::Postgres
    Enumerator that can be used with the PostgreSQL storage.

- RDF::Core::Query
  Implementation of query language

- RDF::Core::Evaluator
  Evaluator gets a query object that RDF::Core::Query parsed and evaluates the query.

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

- Basic elements

  - RDF::Core::NodeFactory
    Produces literals and resources, generates URI for anonymous resources.

  - RDF::Core::Node
    An ancestor of RDF::Core::Resource and RDF::Core::Literal.

  - RDF::Core::Resource
    A resource for RDF statement.

  - RDF::Core::Literal
    A literal value for RDF statement.

  - RDF::Core::Statement
    An RDF statement.

# LICENSE

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

# AUTHOR

Ginger Alliance, rdf@gingerall.cz