Skip to content

Latest commit

 

History

History
180 lines (123 loc) · 19.2 KB

README.md

File metadata and controls

180 lines (123 loc) · 19.2 KB

Awesome Graph Universe 🌐

Welcome to Awesome Graph Universe, a curated list of resources, tools, libraries, and applications for working with graphs and networks. This repository covers everything from Graph Databases and Knowledge Graphs to Graph Analytics, Graph Computing, and beyond.

Graphs and networks are essential in fields like data science, knowledge representation, machine learning, and computational biology. Our goal is to provide a comprehensive resource that helps researchers, developers, and enthusiasts explore and utilize graph-based technologies.

Feel free to contribute by submitting pull requests! 🚀

Table of Contents


Graph Databases

Graph databases are designed to store, manage, and query graph-structured data. They come in two main categories: Property Graphs and Triple Stores. Below are some key tools and their respective languages.

Property Graph Databases

Property graphs allow nodes and edges to have associated properties, making them useful for more detailed graph representations.

  • Amazon Neptune Status Language - A managed graph database service that supports both RDF graphs (Triple Store) and property graphs.
  • ArangoDB Status Language - Multi-model database supporting graphs, documents, and key-value pairs.
  • Data Graphs Status - Ultra-fast graph database SaaS platform, easy to use, with openCypher.
  • JanusGraph Status Language - A scalable, distributed property graph database optimized for querying massive graphs.
  • KuzuDB Status - A highly scalable, extremely fast, easy-to-use embeddedable graph database.
  • Memgraph Status Language - Open-source in-memory graph database, tuned for dynamic analytics environments.
  • Neo4j Status Language - A leading native graph database with high-performance queries for large datasets.
  • OrientDB Status Language - A multi-model database supporting graphs and documents.
  • TigerGraph Status Language - A fast, scalable graph database for enterprise applications and analytics.

Triple Stores (RDF Databases)

Triple stores are designed to store and query RDF (Resource Description Framework) data, which represents information in triples: subject-predicate-object.

  • Amazon Neptune Status Language - A managed graph database service that supports both RDF graphs (Triple Store) and property graphs.
  • Blazegraph Status Language - A high-performance triple store used for RDF data.
  • GraphDB Status Language - An RDF database that helps create and query linked data.
  • Stardog Status Language - An enterprise knowledge graph platform, fully compliant with RDF and SPARQL.

Graph Engines

Graph engines are optimized systems for performing queries, computations, and analytics on large graph datasets, leveraging both hardware and software efficiencies.

  • AnzoGraph Status Language - A massively parallel, in-memory graph database engine for advanced analytics.
  • Dgraph Status Language - A fast, distributed graph database system designed for real-time query execution.
  • GunDB Status Language - A decentralized graph database engine designed for distributed systems.
  • KuzuDB Status - A highly scalable, extremely fast, easy-to-use embeddedable graph database.
  • Memgraph Status Language - Open-source in-memory graph database, tuned for dynamic analytics environments.
  • PuppyGraph Status - Seamlessly query one or multiple data stores as a unified graph model.
  • TigerGraph Status Language - A real-time graph analytics platform that supports massive datasets and deep link analytics.

Knowledge Graphs

Knowledge graphs connect data points into a rich semantic web of entities and relationships. They are often used in AI applications, search engines, and data integration platforms.

  • DBpedia Status Language - A project aimed at extracting structured content from Wikipedia.
  • Google Knowledge Graph Status - Powering Google's search engine with structured knowledge representation.
  • Wikidata Status Language - A free and open knowledge graph that can be queried and used in various applications.
  • YAGO Status Language - A huge semantic knowledge base derived from Wikipedia, WordNet, and GeoNames.

Graph Data Science and Analytics

Graph data science focuses on analyzing the structure and patterns in graphs to solve complex problems in domains like recommendation systems, fraud detection, and social network analysis.

  • Data Graphs Status - Stunning graph data visualizations and domain modelling tools.
  • GraphTool Status Language - An efficient Python module for manipulation and statistical analysis of graphs.
  • GraphX (Apache Spark) Status Language - A component of Apache Spark for graph-parallel computation.
  • GraphFrames - GraphFrames is a package for Apache Spark which provides DataFrame-based Graphs in Scala, Java, and Python. Features includes motif finding and a Pregel engine.
  • MAGE - Memgraph Advanced Graph Extensions is an open-source graph algorithms library written in C++, Python and Rust.
  • Neo4j Graph Data Science Status Language - A comprehensive library for graph algorithms and machine learning models.
  • NetworkX Status Language - A Python library for creating, manipulating, and studying complex networks.
  • TigerGraph Graph Studio Status Language - Powerful tools for exploring and analyzing graph data.

Graph Computing

Graph computing refers to the infrastructure and platforms that handle large-scale graph processing, often distributed across multiple machines for speed and scalability.

  • Apache Giraph Status Language - A scalable graph processing system used by Facebook for social graph analysis.
  • GraphFrames (Apache Spark) Status Language - Combines the benefits of GraphX and DataFrames for scalable graph processing.
  • GraphLab Status Language - A high-performance, graph-based computation engine for machine learning applications.
  • Pregel Status Language - Google's graph processing model, inspired by Bulk Synchronous Parallel (BSP) systems.
  • thatDot Streaming Graph Status Language - Built on top of Quine, Streaming Graph is a high-performance stream processor designed for real-time, massively parallel, graph data processing and analytics, capable of ingesting millions of events per second.

Graph Visualization

Graph visualization tools can be used to visualize and interact with graphs, in a way that helps detect patterns in the data. Some are primiraly meant for Purpose, that is for global pattern identification. Other have functionalities for Purpose, that is to identify pattern in the local context of nodes. Some tools are meant to Purpose or for Purpose .

Apps

  • Gephi Purpose visualization and exploration software for all kinds of graphs and networks. Gephi is open-source and free.
  • GraphAware Hume Purpose Connected Data Analytics Platform.
  • G.V() - A Graph Database Client compatible with Apache TinkerPop enabled graph databases that enables users to write and run Gremlin queries against their database, and visualize the results using various formats (graph visualization, JSON, tables, etc). It's also comes with query debugging/profiling features, and graph data exploration and editing features.
  • Kineviz, GraphXR Purpose Exploring connected data in an immersive browser-based platform.
  • Kineviz, GraphXR,Neo4j GraphApp Purpose
  • Kineviz, SightXR Purpose Navigate unstructured data with visual knowledge maps and GenAI.
  • Linkurious Enterprise Purpose For interactive visual exploration of local graph patterns. Contextual decision intelligence solutions
  • Neo4j Bloom Purpose Techno Explore and freely interact with Neo4j’s graph data platform with no coding required.
  • NeoDash Purpose Build dashboards (tables, maps, graph visualization,...) from data in a Techno db.
  • SemSpect Purpose No-code graph exploration. Techno RDF
  • TheBrain Purpose Organizing notes and documents in a graph structure, with creation of visual representation of relations with the mouse.
  • WebVOWL RDF Ontologies visualisation
  • yWork, yEd Desktop Purpose Easily draw graphs for illustration, with icons on nodes, styling of labels and relations.
  • yWork, yEd Live Purpose Display graphs with styling for nodes, relationships and apply several automatic layout algorithm and export to pdf , png, graphML.
  • yWorks, Data Explorer for Neo4j Purpose Extract nodes from a Techno db and display them by appling templates based on node labels. Resulting graph can be sent to yWork, yEd Live to further adjust the display.

Libraries

Various Language and Language librairies allow to display large networks.


GraphRAG Infrastructure

GraphRAG refers to using knowledge graphs for the basis of RAG (Retrieval-Augmented Generation) to improve the accuracy of Generative AI responses.

  • GraphRAG Status Language - Microsoft's open source project to deploy a GraphRAG solution
  • TrustGraph Status Language - Full end-to-end and open source GraphRAG solution that deploys in minutes with a single line of code.

Graph Stream Processors

Graph stream processors enable real-time graph computations within event-stream processing systems. They integrate seamlessly into ETL pipelines or event streams, allowing graph operations to be performed on incoming data streams. These tools consume events, apply graph-based transformations or analyses, and emit processed events, facilitating dynamic graph processing as data flows through the system.

  • Quine Status Language - Quine allows developers to combine multiple event streams into a single graph, query for complex event relationships to identify high value patterns, and take an action in real time.

Contributing

Contributions are welcome! If you know of any valuable graph-related resources, tools, or libraries that should be included, feel free to submit a pull request or open an issue.

Please follow the contribution guidelines to maintain the quality and consistency of Awesome Graph Universe.


License

CC0

This repository is licensed under CC0 1.0 Universal, which means you can freely use and contribute to this project.


Happy Graphing! 😊


Inspired by the work of Jean-Baptiste Musso - which is currently inactive.