Skip to content

AstraZeneca/ontoverse-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ontoverse Logo License Maturity level-0 arXiv

Next.js TypeScript React Node.js Neo4j Material-UI D3.js Docker

Ontoverse is a knowledge management platform designed to visualize and explore scientific literature in an intuitive, cartographic manner. The system transforms bibliographic collections into interactive network visualizations where papers are connected based on conceptual similarity and topic occupancy, enabling researchers to discover relationships, identify research trends, and navigate related work within their domain. The Ontoverse consists of the ontoverse-kg-choreographer, a knowledge graph generation pipeline which transforms bibliographic data into a rich, queryable knowledge graph architecture, and the ontoverse-app which enables the cartographic visualization.

Description

The purpose of Ontoverse is:

  • Visual Literature Exploration: Transform large collections of scientific papers into navigable knowledge graphs where conceptual relationships are visually apparent
  • Concept-Based Discovery: Connect papers through shared biomedical concepts (entities like diseases, genes, proteins, drugs) rather than simple keyword matching
  • Research Landscape Mapping: Reveal the structure and topology of research domains, showing how different topics and papers relate to one another
  • Enhanced Literature Review: Enable researchers to quickly identify related work, find papers on similar topics, and understand the conceptual landscape of their field

The Ontoverse app is a Next.js-based web application that combines frontend and backend functionality into a single unified framework. The application uses D3.js for graph visualization and Material-UI for the user interface, providing an intuitive way to explore complex research relationships.

Software Requirements

Supported Platforms

  • Operating System: Linux, macOS, Windows
  • Node.js: Version 18 or higher
  • Package Manager: npm or yarn

Required Dependencies

  • Neo4j Database: A running Neo4j instance (version 4.0 or higher recommended)
  • Node.js: 18.x or higher
  • npm: 9.x or higher (or yarn equivalent)

Optional Dependencies

  • Docker (for containerized deployment)
  • nginx (for production deployment)

How to Use / Run the Code

Installation

  1. Clone the repository:
git clone <repository-url>
cd odsp-ontoverse
  1. Install dependencies:
npm install
  1. Create a .env.local file in the root directory:
cp .env.example .env.local
  1. Configure your Neo4j database connection in .env.local:
DB_SCHEME=neo4j
DB_HOST=localhost
DB_PORT=7687
DB_USERNAME=neo4j
DB_PASSWORD=your-password
DB_DATABASE=neo4j
CONFIG_ID=MEDIUM

Development

Run the development server:

npm run dev

Open http://localhost:3000 with your browser to see the application.

Building for Production

Build the application:

npm run build

Start the production server:

npm start

Docker Deployment

Build the Docker image:

docker build -t ontoverse:latest .

Run the container:

docker run -p 80:80 --env-file .env.local ontoverse:latest

See DOCKER_TEST.md for more detailed Docker instructions.

Project Structure

  • app/ - Next.js app directory (pages, layouts, API routes)
  • components/ - React components
  • lib/ - Shared utilities and libraries
    • neo4j/ - Neo4j database utilities
    • papers/ - Paper data models and adapters
    • utils/ - Utility functions
    • state/ - State management
  • model/ - Data models and types
  • public/ - Static assets

API Routes

  • /api/papers - GET endpoint to fetch papers data from Neo4j

Environment Variables

  • DB_SCHEME - Neo4j connection scheme (neo4j, neo4j+s, neo4j+ssc)
  • DB_HOST - Neo4j host address
  • DB_PORT - Neo4j port (default: 7687)
  • DB_USERNAME - Neo4j username
  • DB_PASSWORD - Neo4j password
  • DB_DATABASE - Neo4j database name
  • CONFIG_ID - Application configuration ID (SMALL, MEDIUM). Default: MEDIUM

Migration from Separate Frontend/Backend

This project has been migrated from a separate NestJS backend and React frontend to a unified Next.js application. See MIGRATION_SUMMARY.md for details.

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

Authors

See AUTHORS.md for the list of authors and maintainers.

Citation

If you use the Ontoverse, please cite

The Ontoverse: Democratising Access to Knowledge Graph-based Data Through a Cartographic Interface

Johannes Zimmermann, Dariusz Wiktorek, Thomas Meusburger, Miquel Monge-Dalmau, Antonio Fabregat, Alexander Jarasch, Günter Schmidt, Jorge S. Reis-Filho, T. Ian Simpson

arXiv preprint arXiv:2408.03339 (2024)

[arXiv] [PDF]

About

Ontoverse web app for cartographic exploration of knowledge spaces, nurtured by the ontoverse-kg-choreographer

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages