Deploy Fuseki and Rhizomer - rhizomik/rhizomerAPI GitHub Wiki

Rhizomer can explore the data available from RDF graph stores through SPARQL. The Rhizomer's frontend and backend can be deployed together using Docker to explore existing SPARQL endpoints as detailed in Deploy using Docker

To experiment with Rhizomer from scratch, if you don't have already an RDF store available, the following docker-compose deploys both the Rhizomer's frontend and backend together with Fuseki, and RDF store including a SPARQL endpoint.

To deploy using Docker, install it for Mac, Windows or Linux from: https://docs.docker.com/get-docker

Then, also instal docker-compose to be able to configure the deployment using a docker-compose YAML file.

Deploy Rhizomer and Fuseki using Docker Compose

The docker-compose YAML file, presented next, provides a simple deployment including the frontend available from http://localhost and connecting to a backend deployed at http://localhost:8080. The default user is admin with the default password password. The default values for the password or the deployment locations can be edited or configured by setting the corresponding environment variables. Finally, a Fuseki RDF store is deployed at http://localhost:3030.

version: '3'
services:
  rhizomer:
    image: rhizomik/rhizomer-eye
    container_name: rhizomer
    ports:
      - "80:80"
    environment:
      - API_URL=${API_URL:-http://localhost:8080}
  rhizomer-api:
    image: rhizomik/rhizomer-api
    container_name: rhizomer-api
    ports:
      - "8080:8080"
    environment:
      - ALLOWED_ORIGINS=${CLIENT_URL:-http://localhost}
      - RHIZOMER_DEFAULT_PASSWORD=password
  fuseki:
    image: secoresearch/fuseki
    container_name: fuseki
    ports:
      - "3030:3030"
    environment:
      - ENABLE_UPLOAD=true
      - ENABLE_UPDATE=true
      - ENABLE_DATA_WRITE=true
      - ADMIN_PASSWORD=password

To use the docker-compose file, copy the previous content to a local file named docker-compose.yml and from the folder where the file is saved typed the following command:

docker-compose up -d

For production ready deployments, including persistence of Rhizomer API using a database, there is a sample docker-compose.yml at Deploy using Docker.

Loading Sample RDF into Fuseki

To have access to some sample RDF data to be explored from Rhizomer through a SPARQL endpoint, we first load it into Fuseki. Fuseki's is available from http://localhost:3030. Log in using user admin and the password configured in the docker-compose.yml, for instance password.

Then, using Fuseki web user interface, click the add data button for the dataset named /ds, which is created by default. First, configure the destination graph name, for instance type https://rhizomik.net/got. The sample data we are going to use is available online as got.ttl. Download it as file got.ttl and then select this file to be uploaded to Fuseki. To finally trigger the upload, click upload now. The 8406 RDF triples contained in the file are now stored in Fuseki.

Interact with Rhizomer

Now we will interact with Rhizomer using its frontend. Following the previous docker-compose.yml, it should be available from http://localhost.

To manage users and registered datasets, sign in with the username admin and the default password provided in the docker-compose.yml during deployment, for instance password.

Define a new dataset

We can now define a new dataset to explore.

  1. On the Rhizomer website, choose Datasets from the top navigation bar.
  2. Choose New from the dropdown.
  3. Name your Rhizomer dataset, for instance got.
  4. To make the dataset viewable by other users, make it Public.
  5. For Query Type, choose the type of exploration, in this case Detailed.
  1. After clicking Submit, provide the SPARQL Server type¸ choose Generic.
  2. Configure the SPARQL endpoint for querying: http://fuseki:3030/ds/sparql. Fuseki is configured readable for anyone, so no need to make the endpoint password protected.
  3. We will configure the endpoint as writable, so it is also possible to upload data directly from Rhizomer.
  4. The SPARQL Update endpoint is: http://fuseki:3030/ds/update, with username admin and password password.
  1. Then, after clicking Submit, the endpoint is inspected and the available graphs are presented. Select the only available graph, the one we use when uploading the sample data to Fuseki: https://rhizomik.net/got.
    • Note that, if the endpoint is writable, it is possible to create new graphs and load data into them through Rhizomer.
    • Graphs can be loaded as data or ontology. Those loaded as data will be combined and explored. Ontologies are used, for the moment, to retrieve classes and properties labels.
  1. Finally, click Submit to complete the Rhizomer dataset creation.

Explore a Dataset

When we choose Explore on the dataset detail page, we can start inspecting the data we loaded into Fuseki. The first thing Rhizomer does when interacting with a dataset is present an overview of the data:

  • A word cloud generated from the classes in the dataset, if the dataset Query Type was set to Optimized. Each word in the cloud corresponds to a class, and its size is relative to the number of instances of the class in the dataset.
  • A network overview of the main classes and relationships among them, if the dataset Query Type was set to Detailed.

In this case, as we set it to Detailed, a network overview is presented. There are four classes: FictionalCharacter, Noble, Book, and Organisation. All the characters in the dataset are instances of FictionalCharacter, but some of them are also Noble. They appear in Books and have allegiance with houses, which are Organisations.

We can choose a class to explore it further. For example, if we choose Noble, we see the following faceted view of all Game of Thrones characters classified as nobles.

This view shows the number of instances for the selected class, initially unconstrained so all 430 of 430 nobles are listed. The view also lists the facets for the class. Each facet corresponds to a property used to describe instances, and you can see how many times the corresponding property is used. You can also see how many different values are used and whether all are literals or not. You can expand each facet to show the 10 most common values for the selected instances.

From this visualization, you can further filter the available instance by one or more specific facet values. There is also an input form for each facet that allows filtering by any of the values.

As we mentioned earlier, Rhizomer also works as a linked data browser, so if you choose any resource in the instance descriptions, its description is retrieved and presented if available locally or remotely, from the resource URL. For instance, if you click on the book "A Game of Thrones", which is the value of the property "appearsIn" for some characters, the local data is complemented with all that is available remotely from the book URI, in this case from DBpedia:

You don't need any prior knowledge about the dataset to explore it, because the overview and faceted views inform you of what classes are present in the dataset and how they're described using properties and values. Rhizomer does all the hard work through SPARQL queries, so you don't need to worry about it.

You can also try Rhizomer to explore the Game of Thrones dataset at: https://rhizomer.rhizomik.net/datasets/got