Science Score: 85.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
    Organization dlr-sc has institutional domain (www.dlr.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: DLR-SC
  • License: mit
  • Language: JavaScript
  • Default Branch: main
  • Size: 76.8 MB
Statistics
  • Stars: 2
  • Watchers: 3
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

Readme.md

Welcome to GraphDetective

Badge: Made with Python Badge: Made with React DOI License: MIT Twitter: DLR Software

This repository provides the code for our Paper "Graph Detective - Comprehensive User Interface for Intuitive Graph Exploration and Analysis", submitted to DocEng 2024.

Graph databases are used across several domains due to the intuitive structure of graphs. Yet, querying such graphs requires database experts’ involvement, reducing accessibility to non-experts. To address this issue, we present GraphDetective, a web interface that provides an intuitive entry point for graph data exploration, where users can create queries visually with little effort, eliminating the need for expertise in query writing. After processing, the resulting query output (a graph) is then rendered in an interactive 3D visualization for an easy interpretation. Our user evaluation revealed that even individuals inexperienced with graph databases or graph data in general could satisfactorily access the graph data through our interface. Furthermore, experienced participants commented that they found our interface to be more efficient to use compared to writing explicit queries in a graph database query language.

UI Interface
Ontology View

Ontology View

Query Graph Visualization

GraphDetective Interface

Defining a QGV

QGV 1

Applying node filters

QGV 2

Query Graph Result

GraphDetective Graph Result

Navigating a graph result

Graph Result 1

Display Modes

Graph Result 2

Individual Node Expansion

Expanding Nodes

Installation

The application is divided into Frontend and Backend. They communicate via HTTPS and need to be installed and run individually. Furthermore, a ArangoDB database must be available.

Frontend

The frontend runs on React. To install all modules and run the app, execute the following commands from within the folder ./graph_detective/frontend/:

npm install --legacy-peer-deps npm start

from the same folder. Alternatively, a docker file is included to install and run the frontend using

docker build -f Dockerfile.client -t graph_detective_frontend. docker run -d -p 3000:3000 graph_detective_frontend

Backend

Installation

The backend runs on Flask. To install all libraries and run the app, use pip to execute the following commands from within the folder ./graph_detective/backend/:

pip install -r ./requirements.txt

Feel free to use your own package manager. Alternatively, a docker file is included to install and run the backend using

docker build -f Dockerfile.api -t graph_detective_backend . docker run -d -p 16001:16001 graph_detective_backend

Basic Usage

Connecting to a database

When first opening the aplication in a web browser, it is not connected to any database. GraphDetective requires a configuration file for an ArangoDB, which you as the user can provide straight through the interface. Here is what this config.json file should look like (adjust to match your own data and information): json { "db_config": { "DB_HOST":"<url>", "DB_PORT":"<port>", "DB_NAME":"<name of the database>", "DB_USER":"<user name to login>", "DB_PASSWORD":"<password for the user name>", "DB_GRAPH":"<name of the graph within the database", "DB_LABEL_ATTRIBUTE":"<default label to display in the graph. If unsure, use '_id' or '_key'>" }, "collection_map": { "WikipediaArticle":"Wikipedia Article", "person":"Person", "sOmE_ColLeCtInOn":"Give it any name you want" ... }, "edges": { "WikipediaArticle":["Person"], "person":["sOmE_ColLeCtInOn"], "sOmE_ColLeCtInOn":["Person", "sOmE_ColLeCtInOn"] ... }, "collection_views": { "WikipediaArticle":"Wiki_View", "person":"person_view", ... } } Here is an explanation for the entries: - db_config: This is the main configuration for the database connection. - collection_map: This contains all collections, that are displayed in the user interface. It further defines the display name for each collection. Any collection name not defined here will be unavailable in the frontend. - edges: Provide all edges that you would like to display and use in the graph. Any edge that is not defined here will not be usable or displayed in the graph. The format is as follows: keys represent the source collections, values are lists of target collections. This means, that each collection (...that has an edge) should be present in as a key exactly once. You do not need to provide the name of the edge.

Define a QGV

A Query Graph Visualization is a visual graph structure that you want to query from the database. To define it, add collections onto the respective canvas area on the top and connect them as desired. Then hit execute.

Graph Detective Example QGV

Depending on the query, execution can be instant or take a while. Once done, the resulting graph is displayed in the visualization area below. Interact with the graph through panning, zooming, dragging and clicking.

GraphDetective Graph Result

Owner

  • Name: DLR Institute for Software Technology
  • Login: DLR-SC
  • Kind: organization
  • Email: opensource@dlr.de
  • Location: Cologne, Berlin, Braunschweig, Oberpfaffenhofen, Bremen

German Aerospace Center (DLR)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  Graph Detective - Comprehensive User Interface for
  Intuitive Graph Exploration and Analysis
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Dominik
    family-names: Opitz
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0009-0009-1234-6379'
  - given-names: Andreas
    family-names: Hamm
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0001-5854-851X'
  - given-names: Roxanne
    family-names: El Baff
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0001-6661-8661'
  - given-names: Jasper
    family-names: Korte
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0002-5559-8842'
  - given-names: Tobias
    family-names: Hecking
    affiliation: German Aerospace Center (DLR)
    orcid: 'https://orcid.org/0000-0003-0833-7989'
repository-code: 'https://github.com/DLR-SC/GraphDetective'
abstract: >-
  Graph databases are used across several domains due to the
  intuitive structure of graphs. Yet, querying such graphs
  requires database experts’ involvement, reducing
  accessibility to non-experts. To address this issue, we
  present GraphDetective, a web interface that provides an
  intuitive entry point for graph data exploration, where
  users can create queries visually with little effort,
  eliminating the need for expertise in query writing. After
  processing, the resulting query output (a graph) is then
  rendered in an interactive 3D visualization for an easy
  interpretation. Our user evaluation revealed that even
  individuals inexperienced with graph databases or graph
  data in general could satisfactorily access the graph data
  through our interface. Furthermore, experienced
  participants commented that they found our interface to be
  more efficient to use compared to writing explicit queries
  in a graph database query language.
keywords:
  - graph
  - visual graph representation
  - interactive graph exploration
  - visual query definition
  - visual query builder
  - ArangoDB visualization
  - user interface
license: MIT

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 16
  • Total Committers: 1
  • Avg Commits per committer: 16.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Dominik Opitz d****z@d****e 16
Committer Domains (Top 20 + Academic)
dlr.de: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

graph_detective/frontend/package-lock.json npm
  • 1419 dependencies
graph_detective/frontend/package.json npm
  • typescript ^5.1.6 development
  • @emotion/react ^11.11.1
  • @emotion/styled ^11.11.0
  • @fontsource/roboto ^5.0.3
  • @mui/icons-material ^5.11.16
  • @mui/material ^5.13.6
  • @mui/styled-engine-sc ^5.12.0
  • @mui/x-data-grid ^6.10.1
  • @mui/x-date-pickers ^6.10.0
  • @testing-library/jest-dom ^5.16.5
  • @testing-library/react ^13.4.0
  • @testing-library/user-event ^13.5.0
  • animated-number-react ^0.1.2
  • axios ^1.4.0
  • dayjs ^1.11.9
  • jsonpretty ^0.0.1
  • next ^13.4.19
  • react ^18.2.0
  • react-animated-numbers ^0.16.0
  • react-dom ^18.2.0
  • react-dropzone ^11.2.4
  • react-flow-renderer ^10.3.17
  • react-force-graph-3d ^1.23.0
  • react-json-tree ^0.18.0
  • react-json-view ^1.21.3
  • react-scripts 5.0.1
  • reactflow ^11.7.4
  • styled-components ^5.3.11
  • three-spritetext ^1.8.1
  • web-vitals ^2.1.4
graph_detective/frontend/pnpm-lock.yaml npm
  • 1304 dependencies
graph_detective/backend/requirements.txt pypi
  • arango *
  • colorlog *
  • flask *
  • flask_cors *
  • pandas *
  • python-arango *