A web interface to build custom queries for the Knowledge Store and generate datafiles that can be visualized with the Storyteller interface.
The QueryBuilder client is made using the https://facebook.github.io/react/ framework and uses http://redux.js.org/ for state management. It is written in Typescript. While this repository is in principle standalone and will operate, it is recommended to be used with the entire software stack, as detailed below.
Please note that the smooth operation of this module is dependent on a running nlescstoryteller/query-builder-server running on port http://localhost:5000/ and makes heavy use of the API provided here:https://github.com/NLeSC-Storyteller/query-builder-server/blob/master/doc/API.md.
Please note that the installation and execution process is usually fully automated by Docker and Docker-Compose. For information on installing the full stack, see the https://github.com/cltl/StoryTeller repository for more information.
A Dockerfile has been provided for your convenience. Please refer to https://www.docker.com/ for installation of docker.
docker build -t nlescstoryteller/query-builder-client
With Node Package Manager
The requirements for this single repository are easily installed using the node package manager http://nodejs.org/.
After the installation of node package manager, the following bash command may be used to install the system:
Please note that the installation and execution process is usually fully automated by Docker and Docker-Compose. For information on installing the full stack, see the https://github.com/NLeSC-Storyteller/StoryTeller repository for more information.
docker run nlescstoryteller/query-builder-client
With Node Package Manager
The user is expected to find the QueryBuilder client interface at http://localhost:3000/
The user may encounter an interface with one or more empty lists under the list categories. This is probably due to a malfunction in the preprocessing steps. Please see https://github.com/NLeSC-Storyteller/query-builder-preprocessing/blob/master/README.md#troubleshooting for tips on how to resolve these issues.
Connect to the docker container for troubleshooting
sudo docker exec -v data:/data -it nlescstoryteller/query-builder-client /bin/bash
winpty docker exec -v data:/data -ti nlescstoryteller/query-builder-client //bin/bash
The Full QueryBuilder / Knowledgestore visualization system
The full system consists of 7 parts:
- RDF triple store. The NewsReader KnowledgeStore is a scalable, fault-tolerant, and Semantic Web grounded storage system to jointly store, manage, retrieve, and semantically query, both structured and unstructured data (see https://knowledgestore.fbk.eu/).
- cltl/StoryTeller (https://github.com/cltl/StoryTeller)
- Support library for querying the knowledge store and creating JSON data from the results.
- QueryBuilder Preprocessing (https://github.com/NLeSC-Storyteller/query-builder-preprocessing)
- written in python
- uses cltl/Storyteller to get an overview of possible queries from the knowledgestore
- processes the overview into a sqlite3 database that can be used by the server.
- QueryBuilder Server (https://github.com/NLeSC-Storyteller/query-builder-server)
- incudes a custom database trigger written in C on INSERT statements to the queries table.
- upon receiving a new query string from QueryBuilder, the Server
- stores the received query in a database
- runs the received query against the KnowledgeStore using the QueryBuilder Daemon, which updates the list of previous queries and their results, indexed by an identifier.
- QueryBuilder Daemon (https://github.com/NLeSC-Storyteller/query-builder-daemon)
- written in Java with Xenon (https://github.com/NLeSC/Xenon)
- receives requests for knowledgestore queries from the database trigger in the server.
- queries the Knowledgestore using cltl/Storyteller
- updates the list of previous queries and their results, indexed by an identifier.
- QueryBuilder Client (this repository)
- written in Typescript and React.js
- shows a list of all possible concepts, actors or events from the server
- helps the user to compose a sparql query to run against the KnowledgeStore by selecting items of interest, be it concepts, actors, events, etc.
- UncertaintyVisualization (https://github.com/NLeSC/UncertaintyVisualization/)
- allows the user to select from a list of previously run queries (communicates with Server) to select one for visualization.
- visualizes the results selected