euler-database


Nameeuler-database JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryA graph database application with embedding and similarity calculations.
upload_time2024-07-13 06:32:26
maintainerNone
docs_urlNone
authorPrashant Verma
requires_python>=3.6
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Euler Graph Database - Knowledge Graph Viewer 📊

![Euler Graph Database](icons/application.png)

## Author ✍ī¸
**Name**: Prashant Verma  
**Email**: prashant27050@gmail.com

---

## Table of Contents 📚

1. [Introduction](#introduction-ℹī¸)
2. [Installation](#installation-đŸ’ģ)
3. [Project Structure](#project-structure-📁)
4. [Running the Application](#running-the-application-🚀)
5. [User Guide](#user-guide-📝)
    - [Main Interface](#main-interface-đŸ–Ĩī¸)
    - [Loading a Graph](#loading-a-graph-📂)
    - [Visualizing a Graph](#visualizing-a-graph-🔍)
    - [Adding Nodes](#adding-nodes-➕)
    - [Adding Edges](#adding-edges-🔗)
    - [Saving a Graph](#saving-a-graph-💾)
    - [Executing Queries](#executing-queries-📋)
    - [Saving Queries](#saving-queries-đŸ’ŧ)
    - [Loading Queries](#loading-queries-📄)
6. [Using Euler Database for Knowledge Graph Building](#using-euler-database-for-knowledge-graph-building-🧠)
    - [Creating Chunks of Relational Data](#creating-chunks-of-relational-data-🔗)
    - [Building Knowledge Graphs](#building-knowledge-graphs-🌐)
    - [GraphRAG (Graph-based Retrieval Augmented Generation)](#graphrag-🚀)
7. [FAQ](#faq-❓)
8. [Support](#support-🙋‍♂ī¸)

---

## Introduction ℹī¸

The Euler Graph Database is a knowledge graph viewer that allows users to create, visualize, and manage knowledge graphs. It provides an interactive graphical user interface (GUI) for performing various operations on the knowledge graph such as adding nodes and edges, executing queries, and visualizing the graph.

## Installation đŸ’ģ

1. **Install the Package**:
    ```bash
    pip install euler_database
    ```

## Project Structure 📁

```
euler_graph_database/
├── data/
├── docs/
├── euler/
│   ├── experimental/
│   ├── function_tools/
│   ├── graph_embeddings/
│   ├── llm_reader/
│   ├── path_finding/
│   ├── similarity/
│   ├── __init__.py
│   ├── edge_node.py
│   ├── graph_api.py
│   ├── knowledge_graph.py
│   ├── query_engine.py
│   ├── query_executer.py
│   ├── query_parser.py
│   ├── relationship.py
├── examples/
├── gui/
│   ├── __init__.py
│   ├── app.py
│   ├── gui_navbar.py
│   ├── modal_dialog.py
│   ├── syntax_highlighter.py
├── icons/
├── tests/
├── README.md
├── requirements.txt
├── setup.py
```

## Running the Application 🚀

To run the application, use the following command:
```bash
eulerdb
```

## User Guide 📝

### Main Interface đŸ–Ĩī¸

The main interface of the application consists of the following components:
- **Header**: Displays the application name and logo.
- **Navbar**: Provides options to load, visualize, add nodes, add edges, save the graph, and display help/about information.
- **Query Entry**: A text area to enter queries.
- **Buttons**: 
    - `Execute Query`: Executes the entered query.
    - `Save Query`: Saves the entered queries to a file.
    - `Load Query`: Loads queries from a file.
- **Output Areas**:
    - `Query Output`: Displays the results of executed queries.
    - `JSON Output`: Displays the JSON representation of the current graph.

### Loading a Graph 📂

1. Click on the `Load Graph` button in the navbar.
2. Select the file containing the graph you want to load.

### Visualizing a Graph 🔍

1. After loading a graph, click on the `Visualize Graph` button in the navbar.
2. The graph will be displayed in the visualization area.

### Adding Nodes ➕

1. Click on the `Add Node` button in the navbar.
2. Enter the node ID and label in the prompt that appears.
3. The node will be added to the graph.

### Adding Edges 🔗

1. Click on the `Add Edge` button in the navbar.
2. Enter the edge ID, source node ID, target node ID, and edge label in the prompt that appears.
3. The edge will be added to the graph.

### Saving a Graph 💾

1. Click on the `Save Graph` button in the navbar.
2. Choose the location to save the graph file.

### Executing Queries 📋

1. Enter your query in the `Query Entry` area.
2. Click the `Execute Query` button.
3. The result of the query will be displayed in the `Query Output` area.

### Saving Queries đŸ’ŧ

1. Enter your queries in the `Query Entry` area.
2. Click the `Save Query` button.
3. Choose the location to save the queries file (with `.euler` extension).

### Loading Queries 📄

1. Click the `Load Query` button.
2. Select the file containing the queries.
3. The queries will be loaded into the `Query Entry` area.

## Using Euler Database for Knowledge Graph Building 🧠

### Creating Chunks of Relational Data 🔗

The Euler Database provides classes to create chunks of relational data, which can be used to build knowledge graphs. By importing and utilizing these classes, you can preprocess your data and represent it in a graph format.

#### Example:
```python
from euler.graph_api import KnowledgeGraphAPI
from euler.query_parser import QueryParser
from euler.query_executor import QueryExecutor

# Initialize API and related components
api = KnowledgeGraphAPI()
parser = QueryParser(api.graph)
executor = QueryExecutor(api.graph)

# Add nodes and edges
api.create_node('1', 'Person', {'name': 'Alice'})
api.create_node('2', 'Person', {'name': 'Bob'})
api.create_edge('1', '1', '2', 'knows')

# Query the graph
result = executor.execute_query('FIND (n)-[r]->(m)')
print(result)
```

### Building Knowledge Graphs 🌐

Using the provided classes, you can build comprehensive knowledge graphs. These graphs can help in organizing information, discovering relationships, and enhancing data analysis.

#### Benefits:
- **Organized Data**: Represent your data in an easily understandable graph format.
- **Relationship Discovery**: Identify and explore relationships between different data points.
- **Enhanced Analysis**: Use graph-based analysis techniques to gain deeper insights.

### GraphRAG (Graph-based Retrieval Augmented Generation) 🚀

GraphRAG is a powerful technique that leverages knowledge graphs to enhance information retrieval and generation processes. By building and utilizing knowledge graphs, GraphRAG can provide more accurate and contextually relevant information.

#### Benefits:
- **Improved Retrieval**: Enhance search and retrieval processes by leveraging the structure and relationships in knowledge graphs.
- **Contextual Generation**: Generate more relevant and contextually accurate information by utilizing the rich relational data in knowledge graphs.

## FAQ ❓

**Q: What file formats are supported for saving graphs?**  
A: The application supports saving graphs in JSON format.

**Q: How do I fix module import errors?**  
A: Ensure you are running the application using `eulerdb` to correctly set up the module paths.

**Q: Can I visualize large graphs?**  
A: Yes, but performance may vary depending on the size of the graph and the capabilities of your system.

## Support 🙋‍♂ī¸

For any issues or questions, please contact:

**Name**: Prashant Verma  
**Email**: prashant27050@gmail.com

Or visit the GitHub repository for more information and updates.
```

### Key Additions

- **Using Euler Database for Knowledge Graph Building**: New section detailing how to use the classes provided by the Euler Database package to create chunks of relational data, build knowledge graphs, and leverage GraphRAG.
- **Code Examples**: Example code snippets showing how to use the provided classes to build and query knowledge graphs.

By following this updated `README.md`, users will have a comprehensive guide on how to install, run, use, and extend the `Euler Graph Database` for their knowledge graph needs.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "euler-database",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Prashant Verma",
    "author_email": "prashant27050@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f1/9f/759ecde9c4da1ed7d91a5275013c2eff51ae9a8195f77061efcf65c64f5a/euler_database-3.0.0.tar.gz",
    "platform": null,
    "description": "# Euler Graph Database - Knowledge Graph Viewer \ud83d\udcca\r\n\r\n![Euler Graph Database](icons/application.png)\r\n\r\n## Author \u270d\ufe0f\r\n**Name**: Prashant Verma  \r\n**Email**: prashant27050@gmail.com\r\n\r\n---\r\n\r\n## Table of Contents \ud83d\udcda\r\n\r\n1. [Introduction](#introduction-\u2139\ufe0f)\r\n2. [Installation](#installation-\ud83d\udcbb)\r\n3. [Project Structure](#project-structure-\ud83d\udcc1)\r\n4. [Running the Application](#running-the-application-\ud83d\ude80)\r\n5. [User Guide](#user-guide-\ud83d\udcdd)\r\n    - [Main Interface](#main-interface-\ud83d\udda5\ufe0f)\r\n    - [Loading a Graph](#loading-a-graph-\ud83d\udcc2)\r\n    - [Visualizing a Graph](#visualizing-a-graph-\ud83d\udd0d)\r\n    - [Adding Nodes](#adding-nodes-\u2795)\r\n    - [Adding Edges](#adding-edges-\ud83d\udd17)\r\n    - [Saving a Graph](#saving-a-graph-\ud83d\udcbe)\r\n    - [Executing Queries](#executing-queries-\ud83d\udccb)\r\n    - [Saving Queries](#saving-queries-\ud83d\udcbc)\r\n    - [Loading Queries](#loading-queries-\ud83d\udcc4)\r\n6. [Using Euler Database for Knowledge Graph Building](#using-euler-database-for-knowledge-graph-building-\ud83e\udde0)\r\n    - [Creating Chunks of Relational Data](#creating-chunks-of-relational-data-\ud83d\udd17)\r\n    - [Building Knowledge Graphs](#building-knowledge-graphs-\ud83c\udf10)\r\n    - [GraphRAG (Graph-based Retrieval Augmented Generation)](#graphrag-\ud83d\ude80)\r\n7. [FAQ](#faq-\u2753)\r\n8. [Support](#support-\ud83d\ude4b\u200d\u2642\ufe0f)\r\n\r\n---\r\n\r\n## Introduction \u2139\ufe0f\r\n\r\nThe Euler Graph Database is a knowledge graph viewer that allows users to create, visualize, and manage knowledge graphs. It provides an interactive graphical user interface (GUI) for performing various operations on the knowledge graph such as adding nodes and edges, executing queries, and visualizing the graph.\r\n\r\n## Installation \ud83d\udcbb\r\n\r\n1. **Install the Package**:\r\n    ```bash\r\n    pip install euler_database\r\n    ```\r\n\r\n## Project Structure \ud83d\udcc1\r\n\r\n```\r\neuler_graph_database/\r\n\u251c\u2500\u2500 data/\r\n\u251c\u2500\u2500 docs/\r\n\u251c\u2500\u2500 euler/\r\n\u2502   \u251c\u2500\u2500 experimental/\r\n\u2502   \u251c\u2500\u2500 function_tools/\r\n\u2502   \u251c\u2500\u2500 graph_embeddings/\r\n\u2502   \u251c\u2500\u2500 llm_reader/\r\n\u2502   \u251c\u2500\u2500 path_finding/\r\n\u2502   \u251c\u2500\u2500 similarity/\r\n\u2502   \u251c\u2500\u2500 __init__.py\r\n\u2502   \u251c\u2500\u2500 edge_node.py\r\n\u2502   \u251c\u2500\u2500 graph_api.py\r\n\u2502   \u251c\u2500\u2500 knowledge_graph.py\r\n\u2502   \u251c\u2500\u2500 query_engine.py\r\n\u2502   \u251c\u2500\u2500 query_executer.py\r\n\u2502   \u251c\u2500\u2500 query_parser.py\r\n\u2502   \u251c\u2500\u2500 relationship.py\r\n\u251c\u2500\u2500 examples/\r\n\u251c\u2500\u2500 gui/\r\n\u2502   \u251c\u2500\u2500 __init__.py\r\n\u2502   \u251c\u2500\u2500 app.py\r\n\u2502   \u251c\u2500\u2500 gui_navbar.py\r\n\u2502   \u251c\u2500\u2500 modal_dialog.py\r\n\u2502   \u251c\u2500\u2500 syntax_highlighter.py\r\n\u251c\u2500\u2500 icons/\r\n\u251c\u2500\u2500 tests/\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 requirements.txt\r\n\u251c\u2500\u2500 setup.py\r\n```\r\n\r\n## Running the Application \ud83d\ude80\r\n\r\nTo run the application, use the following command:\r\n```bash\r\neulerdb\r\n```\r\n\r\n## User Guide \ud83d\udcdd\r\n\r\n### Main Interface \ud83d\udda5\ufe0f\r\n\r\nThe main interface of the application consists of the following components:\r\n- **Header**: Displays the application name and logo.\r\n- **Navbar**: Provides options to load, visualize, add nodes, add edges, save the graph, and display help/about information.\r\n- **Query Entry**: A text area to enter queries.\r\n- **Buttons**: \r\n    - `Execute Query`: Executes the entered query.\r\n    - `Save Query`: Saves the entered queries to a file.\r\n    - `Load Query`: Loads queries from a file.\r\n- **Output Areas**:\r\n    - `Query Output`: Displays the results of executed queries.\r\n    - `JSON Output`: Displays the JSON representation of the current graph.\r\n\r\n### Loading a Graph \ud83d\udcc2\r\n\r\n1. Click on the `Load Graph` button in the navbar.\r\n2. Select the file containing the graph you want to load.\r\n\r\n### Visualizing a Graph \ud83d\udd0d\r\n\r\n1. After loading a graph, click on the `Visualize Graph` button in the navbar.\r\n2. The graph will be displayed in the visualization area.\r\n\r\n### Adding Nodes \u2795\r\n\r\n1. Click on the `Add Node` button in the navbar.\r\n2. Enter the node ID and label in the prompt that appears.\r\n3. The node will be added to the graph.\r\n\r\n### Adding Edges \ud83d\udd17\r\n\r\n1. Click on the `Add Edge` button in the navbar.\r\n2. Enter the edge ID, source node ID, target node ID, and edge label in the prompt that appears.\r\n3. The edge will be added to the graph.\r\n\r\n### Saving a Graph \ud83d\udcbe\r\n\r\n1. Click on the `Save Graph` button in the navbar.\r\n2. Choose the location to save the graph file.\r\n\r\n### Executing Queries \ud83d\udccb\r\n\r\n1. Enter your query in the `Query Entry` area.\r\n2. Click the `Execute Query` button.\r\n3. The result of the query will be displayed in the `Query Output` area.\r\n\r\n### Saving Queries \ud83d\udcbc\r\n\r\n1. Enter your queries in the `Query Entry` area.\r\n2. Click the `Save Query` button.\r\n3. Choose the location to save the queries file (with `.euler` extension).\r\n\r\n### Loading Queries \ud83d\udcc4\r\n\r\n1. Click the `Load Query` button.\r\n2. Select the file containing the queries.\r\n3. The queries will be loaded into the `Query Entry` area.\r\n\r\n## Using Euler Database for Knowledge Graph Building \ud83e\udde0\r\n\r\n### Creating Chunks of Relational Data \ud83d\udd17\r\n\r\nThe Euler Database provides classes to create chunks of relational data, which can be used to build knowledge graphs. By importing and utilizing these classes, you can preprocess your data and represent it in a graph format.\r\n\r\n#### Example:\r\n```python\r\nfrom euler.graph_api import KnowledgeGraphAPI\r\nfrom euler.query_parser import QueryParser\r\nfrom euler.query_executor import QueryExecutor\r\n\r\n# Initialize API and related components\r\napi = KnowledgeGraphAPI()\r\nparser = QueryParser(api.graph)\r\nexecutor = QueryExecutor(api.graph)\r\n\r\n# Add nodes and edges\r\napi.create_node('1', 'Person', {'name': 'Alice'})\r\napi.create_node('2', 'Person', {'name': 'Bob'})\r\napi.create_edge('1', '1', '2', 'knows')\r\n\r\n# Query the graph\r\nresult = executor.execute_query('FIND (n)-[r]->(m)')\r\nprint(result)\r\n```\r\n\r\n### Building Knowledge Graphs \ud83c\udf10\r\n\r\nUsing the provided classes, you can build comprehensive knowledge graphs. These graphs can help in organizing information, discovering relationships, and enhancing data analysis.\r\n\r\n#### Benefits:\r\n- **Organized Data**: Represent your data in an easily understandable graph format.\r\n- **Relationship Discovery**: Identify and explore relationships between different data points.\r\n- **Enhanced Analysis**: Use graph-based analysis techniques to gain deeper insights.\r\n\r\n### GraphRAG (Graph-based Retrieval Augmented Generation) \ud83d\ude80\r\n\r\nGraphRAG is a powerful technique that leverages knowledge graphs to enhance information retrieval and generation processes. By building and utilizing knowledge graphs, GraphRAG can provide more accurate and contextually relevant information.\r\n\r\n#### Benefits:\r\n- **Improved Retrieval**: Enhance search and retrieval processes by leveraging the structure and relationships in knowledge graphs.\r\n- **Contextual Generation**: Generate more relevant and contextually accurate information by utilizing the rich relational data in knowledge graphs.\r\n\r\n## FAQ \u2753\r\n\r\n**Q: What file formats are supported for saving graphs?**  \r\nA: The application supports saving graphs in JSON format.\r\n\r\n**Q: How do I fix module import errors?**  \r\nA: Ensure you are running the application using `eulerdb` to correctly set up the module paths.\r\n\r\n**Q: Can I visualize large graphs?**  \r\nA: Yes, but performance may vary depending on the size of the graph and the capabilities of your system.\r\n\r\n## Support \ud83d\ude4b\u200d\u2642\ufe0f\r\n\r\nFor any issues or questions, please contact:\r\n\r\n**Name**: Prashant Verma  \r\n**Email**: prashant27050@gmail.com\r\n\r\nOr visit the GitHub repository for more information and updates.\r\n```\r\n\r\n### Key Additions\r\n\r\n- **Using Euler Database for Knowledge Graph Building**: New section detailing how to use the classes provided by the Euler Database package to create chunks of relational data, build knowledge graphs, and leverage GraphRAG.\r\n- **Code Examples**: Example code snippets showing how to use the provided classes to build and query knowledge graphs.\r\n\r\nBy following this updated `README.md`, users will have a comprehensive guide on how to install, run, use, and extend the `Euler Graph Database` for their knowledge graph needs.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A graph database application with embedding and similarity calculations.",
    "version": "3.0.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3aac131f56d2062a5a1507b6830f317fb57c7be9cf6f7ae9bc72105d956e589",
                "md5": "e9089c523d8deda7dba49273adfaece3",
                "sha256": "a79b63e8a0646256907f747fd4a553af0483b687410f1f8efbd3c789b308018f"
            },
            "downloads": -1,
            "filename": "euler_database-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e9089c523d8deda7dba49273adfaece3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 307593,
            "upload_time": "2024-07-13T06:32:24",
            "upload_time_iso_8601": "2024-07-13T06:32:24.818201Z",
            "url": "https://files.pythonhosted.org/packages/a3/aa/c131f56d2062a5a1507b6830f317fb57c7be9cf6f7ae9bc72105d956e589/euler_database-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f19f759ecde9c4da1ed7d91a5275013c2eff51ae9a8195f77061efcf65c64f5a",
                "md5": "867266fd5e0416edcf1dda4e040ab193",
                "sha256": "02925cdd044f6fa25f9b488596de547ef275e83ac11662bb1de97238e2255186"
            },
            "downloads": -1,
            "filename": "euler_database-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "867266fd5e0416edcf1dda4e040ab193",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 298934,
            "upload_time": "2024-07-13T06:32:26",
            "upload_time_iso_8601": "2024-07-13T06:32:26.764874Z",
            "url": "https://files.pythonhosted.org/packages/f1/9f/759ecde9c4da1ed7d91a5275013c2eff51ae9a8195f77061efcf65c64f5a/euler_database-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-13 06:32:26",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "euler-database"
}
        
Elapsed time: 0.82418s