Skip to content

A modular knowledge graph system using Neo4j, FastAPI, and NetworkX for semantic search, entity modeling, and relationship analysis. Includes ETL pipeline, RESTful APIs, and visualization tools for research, BI, and content discovery. Fully documented and extensible.

Notifications You must be signed in to change notification settings

Callmeamann/NewsGenie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Knowledge Graph Project

Overview

This project implements a Knowledge Graph system that allows for the creation, manipulation, and querying of complex interconnected data. Knowledge graphs are powerful tools for representing relationships between entities and concepts, making them ideal for applications in semantic search, recommendation systems, and data integration.

Features

  • Graph Creation and Management
  • Entity Relationship Modeling
  • Query Interface
  • Data Import/Export Capabilities
  • Visualization Tools
  • RESTful API Endpoints

Project Structure

knowledge-graph/
├── data/
│   ├── raw/           # Raw input data
│   └── processed/     # Processed and transformed data
├── src/
│   ├── data/         # Data processing and ETL scripts
│   ├── models/       # Graph models and entity definitions
│   ├── api/          # API implementation
│   └── utils/        # Utility functions and helpers
├── tests/            # Unit and integration tests
├── notebooks/        # Jupyter notebooks for analysis and examples
├── docs/            # Documentation
└── results/         # Output and visualization results

Technology Stack

  • Python 3.8+: Core programming language
  • Neo4j/RDF: Graph database (choose based on your needs)
  • NetworkX: Graph manipulation and analysis
  • pandas: Data manipulation and analysis
  • FastAPI: API development
  • pytest: Testing framework
  • Jupyter: Interactive development and visualization

Setup and Installation

  1. Clone the repository:
git clone <repository-url>
cd knowledge-graph
  1. Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure environment variables:
cp .env.example .env
# Edit .env with your configuration

Usage

Data Import

from src.data import importer
importer.load_data("path/to/data")

Creating a Knowledge Graph

from src.models import KnowledgeGraph

kg = KnowledgeGraph()
kg.add_entity("Person", {"name": "John Doe"})
kg.add_relationship("KNOWS", source_id=1, target_id=2)

Querying

results = kg.query("""
    MATCH (p:Person)-[:KNOWS]->(friend)
    RETURN p.name, friend.name
""")

API Documentation

The API documentation is available at http://localhost:8000/docs when running the server:

uvicorn src.api.main:app --reload

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

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

Contact

For any queries or suggestions, please open an issue in the repository.

Acknowledgments

  • List any references or resources that inspired or helped the project
  • Credit to contributors and maintainers

About

A modular knowledge graph system using Neo4j, FastAPI, and NetworkX for semantic search, entity modeling, and relationship analysis. Includes ETL pipeline, RESTful APIs, and visualization tools for research, BI, and content discovery. Fully documented and extensible.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages