Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DMP 2024]: Knowledge Graph Visualisation #82

Open
3 tasks
KDwevedi opened this issue Apr 20, 2024 · 0 comments
Open
3 tasks

[DMP 2024]: Knowledge Graph Visualisation #82

KDwevedi opened this issue Apr 20, 2024 · 0 comments

Comments

@KDwevedi
Copy link
Owner

KDwevedi commented Apr 20, 2024

Ticket Contents

Description

This project aims to build a frontend application to visualise the relationships between a knowledge graph and information consumed to generate the knowledge graph.

For the purposes of this project, the knowledge graph is stored as a Neo4j instance and the source information is a text (Markdown) document.

KG Visualisation Basic

Features

Database

The DB should be stored using Neo4J graph database, and can be visualised using Neovis JS.

The graph is versioned so that updating the graph doesn't delete old nodes, but simply creates a new version of them.

CREATE (n:Entity {
  Name: "EntityName",
  Description: "A brief description of the entity.",
  Version: "1.0",
  VectorEmbedding: [...]
})

Graph Visualisation

  • The app should visualise the graph in the left pane.
  • The visualisation should be able to update dynamically.
    • Search should be enabled in the visualisation. The graph should dynamically update to showcase nodes matching the search query.
      • Depth of neighbouring nodes visualised should be configurable in such a view
      • Simple match, fuzzy, and semantic search should be enabled.
  • Color should be configurable for a visualisation.
  • Rendered nodes should be labeled using the name of the node entity.

Markdown Rendering

  • The right pane of the app should render text as markdown.
    • Text should be editable.
    • Text should be searchable
      • Simple match + Fuzzy search

Visualising The Correspondence Between The Knowledge Graph And The Source Document

All visualisations are dynamic and should be updated on adding new text.

  1. Highlighting
  • If a named entity exists in the knowledge graph, its mentions in the source document should be highlighted. That is, if an entity of name Entity A exists in the graph, Entity A should be highlighted in the markdown document.
  • If an entity Entity A is related to Entity B, as Entity A --- [relates to] --> Entity B then sentences in the source doc containing this relationship as a noun-verb-noun triplet should be highlighted.
  • The knowledge graph is versioned, ie updated versions of the knowledge graph are stored together with older versions using a version field. I should be able to match multiple versions of a graph to the same markdown source text simultaneously, for example using different colors in highlighting and graph visualisation.
  • Updating the text should dynamically update the visualisation.

Context

Knowledge Graph

A knowledge graph is a powerful way to visually structure data through the use of entities (also known as nodes) and relationships (also known as edges).

Entities represent objects or concepts—like people, places, or items—while relationships connect these entities, illustrating how they interact with one another.

This interconnectedness allows for easier access and retrieval of information, making knowledge graphs particularly valuable for complex queries and analyses across large datasets.

Knowledge graphs can dynamically incorporate new data without disrupting existing structures. As new information becomes available, it can be added to the graph through new entities or relationships. This capability ensures that the knowledge graph evolves and expands over time, continuously enhancing its utility and accuracy.

This scalability is crucial for applications in areas such as machine learning, semantic search, and personalized recommendations, where adapting to new data can significantly improve performance and outcomes. In essence, a knowledge graph is not just a static repository of information but a growing entity that adjusts and improves as more data is integrated.

Goals & Mid-Point Milestone

Goals

  1. Clean and professional looking UI
  2. Visualisation with search and all the dynamic features described above
  3. Web App + Database should be automatically deployable using docker and initial configurations.

Setup/Installation

Expected Outcome

Acceptance Criteria

  • Goals and Feature requests satisfied.
  • Clean, maintainable codebase.
  • Relevant and comprehensive documentation.

Implementation Details

Mockups/Wireframes

Product Name

Bharat SahAIyak

Organisation Name

SamagraX

Domain

Open Source Library

Tech Skills Needed

React, TypeScript, Docker, Frontend Development, Graph Database, Neo4J

Mentor(s)

@KDwevedi

Category

Frontend

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant