- From: Amirouche Boubekki <amirouche.boubekki@gmail.com>
- Date: Sun, 8 Dec 2019 18:52:43 +0100
- To: Guile User <guile-user@gnu.org>, Discussion list for the Wikidata project <Wikidata@lists.wikimedia.org>, semantic-web <semantic-web@w3.org>
- Message-ID: <CAL7_Mo_iaGff9qPOq7ic0i3epwd0wR-JKJcRAy_q4et5Lgo=bg@mail.gmail.com>
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