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]]