[ANN] nomunofu v0.1.0

I am very pleased to announce the immediate availability of nomunofu.

nomunofu is database server written in GNU Guile that is powered by
WiredTiger ordered key-value store.

It allows to store and query triples.  The goal is to make it much easier,
definitely faster to query as big as possible tuples of three items.  To
achieve that goal, the server part of the database is made very simple and
it only knows how to do pattern matching.  Also, it is possible to swap the
storage engine to something that is horizontally scalable and resilient.

The client must be smarter, and do as they please to full-fill user
requests. Today release only include a minimal Python client.  In the
future, I plan to extend the Python client to fully support SPARQL 1.1.

Preliminary tests over 100 000 and 1 000 000 triples are good looking. Next
step is to reach 1 billion triples and eventually 9 billions wikidata
triples.

You can get the code with the following command:

  git clone https://github.com/amirouche/nomunofu

After the installation of GNU Guix [0], you can do:

  make init && gunzip test.nt.gz && make index && make web

And in another terminal:

  make query

Thanks to Guix, portable binaries for amd64 Ubuntu 18.04 will be made
available in a few weeks, along with this, a docker image will be built.
The binary release will include wikidata pre-loaded.

[0] https://guix.gnu.org/download/

Here is an example ipython session:

$ ipython
Python 3.7.3 (default, Oct  7 2019, 12:56:13)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.10.1 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from nomunofu import Nomunofu


In [2]: from nomunofu import var


In [3]: nomunofu = Nomunofu('http://localhost:8080');


In [4]: nomunofu.query((var('uid'), "
http://www.w3.org/2000/01/rdf-schema#label",  "Belgium"))

Out[4]: [{'uid': 'http://www.wikidata.org/entity/Q31'}]

In [5]: nomunofu.query((var('uid'), "
http://www.w3.org/2000/01/rdf-schema#label",  "Belgium"), (var('about'),
"http://
   ...: schema.org/about", var('uid')))

Out[5]:
[{'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://www.wikidata.org/wiki/Special:EntityData/Q31'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://it.wikivoyage.org/wiki/Belgio'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://an.wikipedia.org/wiki/Belchica'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://sl.wikipedia.org/wiki/Belgija'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://pfl.wikipedia.org/wiki/Belgien'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://crh.wikipedia.org/wiki/Bel%C3%A7ika'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://fiu-vro.wikipedia.org/wiki/Belgi%C3%A4'},
 {'uid': 'http://www.wikidata.org/entity/Q31',
  'about': 'https://fr.wikipedia.org/wiki/Belgique'}
...

Cheers,

Amirouche ~ zig ~ https://hyper.dev

Received on Sunday, 8 December 2019 17:52:57 UTC