<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>No-Code Knowledge Graph Exploration and Querying with SemSpect</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Thorsten Liebig</string-name>
          <email>liebig@derivo.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Opitz</string-name>
          <email>opitz@derivo.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vincent Vialard</string-name>
          <email>vialard@derivo.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maximilian Wenzel</string-name>
          <email>wenzel@derivo.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Knowledge Graphs, RDF, LPG, Graph Visualization, Graph Exploration</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>derivo GmbH</institution>
          ,
          <addr-line>Olgastr. 143, 89073 Ulm</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <fpage>20</fpage>
      <lpage>22</lpage>
      <abstract>
        <p>How can we gain meaningful insight into large RDF or labeled property graphs? Which groups of nodes are connected, what relationships does a single node have? This demo is addressing these challenges and will demonstrate SemSpect, a new tool which uses visual aggregation to solve the hairball problem of graph visualization. The new approach enables users to explore large knowledge graphs from the meta level down to all node details without any prior idea of the data. We will demonstrate how to build sophisticated queries in a data-driven manner without any query language skills.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Motivation</title>
      <p>(M. Wenzel)
private, e.g., for reasons of tax evasion. In this case we draw on the work of many journalists of
the International Consortium of Investigative Journalists (ICIJ1) who have built a Knowledge
Graph by extracting selected data out of ofshore leaks such as the Panama, Paradise and
Pandora paper leaks. They searched through thousands of e-mails, contracts and bank account
statements to build a graph consisting of 2 million nodes and over 3 million relationships2.</p>
      <p>Let us examine the oficers that share an address with an entity in Germany. For this, we have
to filter for the German-based entities first, find their addresses, and in turn find the oficers of
these addresses. Figure 1 depicts an excerpt of the resulting network rendering showing entities
from Germany (green dots) their addresses (red dots) and the oficers at these addresses (blue
dots). As can be seen, there is a high number of oficers that share one and the same address.
However, without zooming in, it is dificult to determine how many oficers there are exactly
and to which addresses they are specifically linked to. Visualizing graphs as node-link networks
helps to reveal the graph topology as it shows clusters of nodes, isolated sub-networks, and
disconnected nodes. But when the exploration query involves more hops and nodes, the data
becomes hard to comprehend due to visual clutter.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Querying and Visual Exploration Beyond the Hairball</title>
      <p>To address this problem, we present SemSpect3, a graph exploration tool that aims to achieve
a better scalability while preserving an intuitive UI and ofering a good expressivity-usability
1https://www.icij.org/
2download at https://offshoreleaks.icij.org/
3https://www.semspect.de/
balance. It supports both RDF graph and Labeled Property Graph (LPG) models, grouping
nodes by their labels or class types. SemSpect enables users to explore these groups selectively
following the ”overview first and details on demand” principle. It also allows users to construct
and export expressive queries without writing any SPARQL or Cypher.</p>
      <p>For our example of entities from Germany, we start to build the query by dragging ”Entity”
into the exploration canvas as depicted in Figure 2. A double click on the resulting group
displays the list of connected node types as well as the connecting relationships for selection.
Optionally, we can display the list of nodes of a selected group via a tabular view at the bottom
and filter particular attribute values. For the entities from Germany we filter the ”countries”
attribute to ”Germany” as depicted in Figure 2. Remark: Nodes could also be selected manually
for a more focused exploration.</p>
      <p>Applying this filter leaves 214 nodes which are related to 45 addresses as shown in Figure 3.
The numbers in the individual address nodes indicate the number of related entities in the left
group. An interesting finding is that 21 entities in Germany share one and the same address in
Kiel. SemSpect can highlight these connections with tags as can be seen in Figure 3, thereby
taking advantage of the compactness of its exploration layout over the more informative tabular
view. Finally, the answer to our main question is provided in Figure 4. There are 4647 oficers
in the Panama Paper dataset that are registered at addresses of entities in Germany. The right
group in Figure 4 shows the three addresses that have the most registered oficers, which are
highlighted with tags.</p>
      <sec id="sec-2-1">
        <title>2.1. Query Expressivity</title>
        <p>By reading an exploration backwards, we get an informal idea of the query expressivity in
SemSpect: a group of nodes is basically defined by a restricted path (or tree of paths). Groups
of nodes can be restricted by their types (conjunction / disjunction / diference), their attributes
(conjunction of value restrictions), or even by a manual selection of nodes. They may be
connected to other recursively defined groups over a chosen relationship type that can be
restricted by its attributes (conjunction of value restrictions) and its cardinality (number of
predecessors). The possibility to define new types based on an exploration group expands the
expressivity considerably by implicitly adding a form of recursion to the type filtering.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Technical Description</title>
      <p>SemSpect is a client-server application with an HTML5/JavaScript UI and a Java REST backend.
As storage component, we provide a Neo4j backend for Labeled Property Graphs (LPG) and, on
the other hand, an in-memory RDF backend which supports RDFS and o w l : i n v e r s e O f entailment.
Moreover, the RDF version allows users to explore annotations on knowledge graph edges,
which have been reified according to RDF/OWL or specified in the RDF-star format.</p>
      <sec id="sec-3-1">
        <title>3.1. Neo4j Backend</title>
        <p>
          The SemSpect Neo4j backend is a plugin for Neo4j server as well as a Graph App for Neo4j
Desktop. This close integration allows eficient access to Neo4j data structures, speeding up the
initialization process that scans the database to gather information about the structure of the
graph. This information is used to reconstruct the implicit graph model, infer the label hierarchy
and map user request to Cypher queries. The frontend communicates with the backend via bolt
in a “REST over Bolt” [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] fashion to share as much code as possible with other implementations.
Our RDF version of SemSpect uses an in-memory Java backend that is based on index structures
specifically designed to eficiently process frontend requests. These include a variation of Bitmap
Triple (BT) indices [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] that extend the compact triple data structure of the RDF compression
format HDT [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. These low-memory data structures were fine-tuned to achieve eficient access
to the graph data. We start with a set of RDF dump files that include the corresponding
schema/ontology and compute a compact representation of the data (remark: in contrast to our
Neo4j based approach, the subtype definitions currently have to be explicitly specified in the
schema/ontology). Subsequently, we build the query indexes which are eventually written to
disk. The indices encode a snapshot of the given data, i.e., if the data changes, all associated
structures have to be generated anew. However, once all indices have been generated, they can
be eficiently loaded into main memory for an exploration with SemSpect.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Demo</title>
      <p>At SEMANTICS 2023 we will introduce the new, high-performance in-memory RDF backend
for SemSpect to the public. In our demo, we will showcase SemSpect with diferent datasets
in terms of their domain and size. We will guide attendees to use SemSpect themselves and
conduct their own explorations and queries. Moreover, we will be ready to load ad-hoc data
provided as either a Neo4j or RDF dump to demonstrate and experience the performance of
both backend variants.</p>
      <p>SemSpect is a commercial software, but we ofer a feature-restricted free version and grant
academic licenses on request.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>V.</given-names>
            <surname>Yoghourdjian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Archambault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Diehl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dwyer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. C.</given-names>
            <surname>Purchase</surname>
          </string-name>
          , H.-Y. Wu,
          <article-title>Exploring the limits of complexity: A survey of empirical studies on graph visualisation</article-title>
          ,
          <source>Visual Informatics</source>
          <volume>2</volume>
          (
          <year>2018</year>
          )
          <fpage>264</fpage>
          -
          <lpage>282</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Opitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ranz</surname>
          </string-name>
          , Bolt On Your Web App to Neo4j,
          <source>Neo4j NODES Developer Conference</source>
          ,
          <year>2019</year>
          . URL: https://www.youtube.com/watch?v=Tsa_
          <fpage>d</fpage>
          -
          <lpage>V7Bb4</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wenzel</surname>
          </string-name>
          , T. Liebig,
          <string-name>
            <given-names>B.</given-names>
            <surname>Glimm</surname>
          </string-name>
          ,
          <article-title>HDT Bitmap Triple Indices for Eficient RDF Data Exploration</article-title>
          ,
          <source>in: The Semantic Web: 18th International Conference, ESWC</source>
          <year>2021</year>
          ,
          <string-name>
            <given-names>Virtual</given-names>
            <surname>Event</surname>
          </string-name>
          , June 6-10,
          <year>2021</year>
          , Proceedings 18, Springer,
          <year>2021</year>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>125</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Fernández</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Martínez-Prieto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gutiérrez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Polleres</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Arias</surname>
          </string-name>
          ,
          <article-title>Binary RDF representation for publication and exchange (HDT)</article-title>
          ,
          <source>Journal of Web Semantics</source>
          <volume>19</volume>
          (
          <year>2013</year>
          )
          <fpage>22</fpage>
          -
          <lpage>41</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>