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.
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.
- Operating System: Linux, macOS, Windows
- Node.js: Version 18 or higher
- Package Manager: npm or yarn
- 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)
- Docker (for containerized deployment)
- nginx (for production deployment)
- Clone the repository:
git clone <repository-url>
cd odsp-ontoverse- Install dependencies:
npm install- Create a
.env.localfile in the root directory:
cp .env.example .env.local- 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=MEDIUMRun the development server:
npm run devOpen http://localhost:3000 with your browser to see the application.
Build the application:
npm run buildStart the production server:
npm startBuild the Docker image:
docker build -t ontoverse:latest .Run the container:
docker run -p 80:80 --env-file .env.local ontoverse:latestSee DOCKER_TEST.md for more detailed Docker instructions.
app/- Next.js app directory (pages, layouts, API routes)components/- React componentslib/- Shared utilities and librariesneo4j/- Neo4j database utilitiespapers/- Paper data models and adaptersutils/- Utility functionsstate/- State management
model/- Data models and typespublic/- Static assets
/api/papers- GET endpoint to fetch papers data from Neo4j
DB_SCHEME- Neo4j connection scheme (neo4j, neo4j+s, neo4j+ssc)DB_HOST- Neo4j host addressDB_PORT- Neo4j port (default: 7687)DB_USERNAME- Neo4j usernameDB_PASSWORD- Neo4j passwordDB_DATABASE- Neo4j database nameCONFIG_ID- Application configuration ID (SMALL, MEDIUM). Default: MEDIUM
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.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
See AUTHORS.md for the list of authors and maintainers.
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)