guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Functional database


From: amirouche
Subject: Re: Functional database
Date: Mon, 12 Feb 2018 00:30:17 +0100



Le dim. 11 févr. 2018 à 0:44, amirouche <address@hidden> a écrit :


Le sam. 10 févr. 2018 à 8:34, amirouche <address@hidden> a écrit :
Héllo all,

# Introduction

I figured a usecase for an immutable / functional database that works
like git.

There is some data [0] about the subject applied to triple stores aka.
subject-predicate-object data store [1]. So now, I understand that triple
store manipulates - triples.

To be precise, the public facing API doesn't expose unique identifiers generated
by the database system.

The striking thing, is that it seems like the triple store
doesn't require extra work to pull/push triples since FK / relations / links
are handle by the user.

[0] http://events.linkeddata.org/ldow2013/papers/ldow2013-paper-01.pdf
[1] https://en.wikipedia.org/wiki/Triplestore


There is another interesting article called R43ples [2] which is a very
similar idea to what I had in mind 3 years ago when trying to work with opencog people [3]. That is use a triple store to store history and references of the version-ed triple store! I did not dig much deeper into the paper even if it's
very well written with lots of diagrams.


[2] http://www.hyperdev.fr/projects/neon/10.1.1.662.1619.pdf
[3] https://wiki.opencog.org/w/User_talk:Amz3

I started the code but did not have time to compile it yet...

My plan demo add/del triples and ref at different points in database history
in the following days.


If you find the idea interesting and you'd like to help here are few tasks
that can be achieved independently:

- Create a parser for sparql query language and / or a guile DSL to achieve the same

- Create parser for turtle syntax https://en.wikipedia.org/wiki/Turtle_(syntax)

- Package microkanren for guix https://framagit.org/a-guile-mind/microkanren

- Update guile-gnome package to use guile 2.2.3 and create a graphical user interface that allows to: navigate the history (like a git graph), merge conflicting branches,
 make banana flavored ice cream.


Happy hacking!






reply via email to

[Prev in Thread] Current Thread [Next in Thread]