Društvo LJUDMILA
Rozmanova ulica 12
1000 Ljubljana
Slovenia
Prostori: osmo/za

MyRDF



What is MyRDF?

MyRDF is a datastore for W3C RDF data built on PostgreSQL RDBMS. It tries to be small and practical, while conforming to RDF semantics.

It installs as a set of tables and functions in a PostgreSQL database instance. No extra libraries on the client are needed.

Features

  • Functional SQL API for manipulating and querying RDF data.
  • Suport for languages and datatypes, per RDF.
  • Loading and unloading of models. Each RDF statement belong to some model, typically the URL of the imported RDF file.
  • Quintuple store (subject,pedicate,object,context,model)
  • Small and powerful. Implemented in PL/PgSQL and PL/Perl. Uses some standard Perl libraries.
  • Uses Redland for robust RDF parsing, so several input formats can be supported. We'll try to get rid of that.

Schema

See here: «schema» RDF

Roadmap

  • Partitioning by namespace, model, subject, predicate, object
  • SPARQL to SQL function compiler, add table of queries
  • XUL+PHP web interface
  • implement turtle datatype in C
  • Add pointer to namespace for resources? (this can save a lot of space by factoring-out common url prefixes, and looks better to human too)
  • create table for blank nodes, probablu named blank or node.

Partitioning

Partitioning should be possible in multiple ways; Normally, all statements are stored in statement table. This table can be further partitioned for particular namespace, model, subject, predicate or object

  • We need a function, which given a statement returns a partition name, like
    • statement -> statement_n###m###s###p###o### for namespace, model, subject, predicate, object

Planned Updates

ALTER DOMAIN nid RENAME to rid;
CREATE DOMAIN sid BIGINT;
ALTER TABLE statement ALTER sid TYPE sid;
ALTER TABLE property RENAME view_name TO sql_identifier;
CREATE FUNCTION query(subject,predicate,object,context) RETURNS SETOF statement;
[[Category:Friendly]]