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: Sun, 11 Feb 2018 00:44:39 +0100



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. They do not manipulate unique identifiers
referencing association list. That said, if you group-by 'subject' a set
of triples you get an association lists. It means there is an equivalence between the two. 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

The interface of my database (based on Entity Attribute Value model) is:

 (fs:add alist) -> unique identifier

which will call a `get-unique-identfier` procedure and call:

 (fs:add-pair uid key value)

For every pairs of the alist.

The interface of a triple store is:

 (add subject predicate object)

That is, it's exactly the same as 'fs:add-pair' or almost because
in my target implementation SUBJECT is positive integer (max 2^64)
PREDICATE is a symbol and OBJECT a scheme value. That allows to use
more integers which leads to faster comparisons. I could map SUBJECT
and PREDICATE to an integer via another table... Not sure what is the
best solution.

Related to git, it's possible to change git backend using libgit2's ODB API [2].

[2] https://www.perforce.com/blog/your-git-repository-database-pluggable-backends-libgit2


# TODO

- code the "bare database" ie. the gist of the story that is the immutable association
 list that takes inspiration from git.

- create benchmarks

- Index conceptnet and wikidata and demo the git-like features over the dictionary
 based named entity recognition.






reply via email to

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