apache / age

Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.
https://age.apache.org
Apache License 2.0
3.15k stars 412 forks source link

Research about similarities and differences in NetworkX and AGE #745

Closed eyab closed 6 months ago

rrrokhtar commented 1 year ago

Hey I have created a shallow comparison, I hope it is a good starting point and an explanation to the ISSUE topic

On AGE NetworkX
Defination a PostgreSQL extension that provides graph database functionality a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks
Graph visualization extended through age-viewer built-in the package
Built in graph algorithms support NO YES
In side of DB YES NO
Hybrid query support YES NO
Language dependent NO YES
Open source YES YES
Github stars 1.5k 12k
Github https://github.com/apache/age https://github.com/networkx/networkx
Huzaiifaaaa commented 1 year ago

Hey, Both of these are open source & are used for data visualization. NetworkX is python library focusing on network analysis via graphs. You can use this library to create network of your choice, also it has built-in graph algorithms. On the other hand AGE is specific for attributed graphs, i.e., a specific weight or property is assigned to each node. NetworkX is comparatively better, but AGE can also be used(depending upon your requirements).

kenwoon commented 1 year ago

NetworkX and Apache Age are both open-source graph analysis libraries that can be used to analyze and manipulate graph data, but they differ in their specific features and intended use cases.

NetworkX is a Python package for the creation, manipulation, and study of complex networks. It provides a set of tools for working with graphs, including algorithms for analyzing network structure, tools for visualizing networks, and functions for generating random graphs. NetworkX is widely used in scientific research, social network analysis, and network-based machine learning applications.

On the other hand, Apache Age is a distributed graph database and computation engine that can be used for large-scale graph analysis. It provides a graph query language and supports multiple graph processing frameworks. Apache Age is designed for handling large and complex graphs and can perform graph analytics at scale.

Other technical differences include:

M4rcxs commented 1 year ago

Similarities

Differences

APACHE AGE

NetworkX

References:

moiz697 commented 1 year ago

It's worth noting that NetworkX has been around for over a decade and has a large community of developers and users who contribute to its ongoing development and support. This means that there are many tutorials, examples, and documentation available to help new users get started and troubleshoot any issues they may encounter.

On the other hand, Apache Age is a newer package that is still in active development, and its user community is still growing. This means that while it may not have as many resources available as NetworkX, it has the potential to develop into a powerful and widely-used tool for graph analysis.

Overall, both packages have their strengths and weaknesses, and the choice of which to use will depend on the specific needs of the user and the nature of the graph data being analyzed. It's worth considering factors such as the size of the graph, the types of analysis being performed, and the level of parallel processing required when choosing between these two packages

Nimra-1234 commented 1 year ago

Both NetworkX and AGE are tools for working with graphs, but their approaches to graph processing and analysis vary. Here is the comparison:

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

Parameters | Age | NetworkX -- | -- | -- Open Source | Yes | Yes Accept Variety of Graphs(directed, undirected, weighted or unweighted and etc.) | Yes(support directed graphs) | Yes Provide tools and methods for graph processing and analysis. | Yes | Yes Python Library | No | Yes Graph Database | Yes | No Supports SQL query | Yes | No Working with smaller graphs | No | Yes Handle structure and unstructured data | No(only unstructured data) | Yes

JoshInnis commented 1 year ago

AGE can handle unstructured data, if it is a property value. the relational between a vertex and a node is hard coded, but the properties both a node and edge are not by default enforced... ie. there is no schema.

JoshInnis commented 1 year ago

AGE and OpenCypher only support directed graphs

Nimra-1234 commented 1 year ago

AGE and OpenCypher only support directed graphs

Thank you.

im-aditya30 commented 1 year ago

NetworkX is a python package, which focuses on the study of complex networks using graphs and is mainly used for analysis. Its nodes can be any object that is hashable, meaning that its value never changes. These can be text strings, images, XML objects, entire graphs, and customized nodes.

AGE on the other hand uses query written in SQL and Cypher and provides graph database functionality, which means to provide graph data processing and analytics capability to all relational databases. It also provides access to graph query modeling within the existing relational database.

safi50 commented 1 year ago

Hi! I am Syed Safi Ullah. Looking forward to contributing to this project.

titoausten commented 1 year ago

Some similarities between Apache AGE and NetworkX are as follows:

The differences include:

hammadsaleemm commented 1 year ago

Here are some key similarities and differences between NetworkX and AGE:

Similarities:

Differences:

In summary, while both NetworkX and AGE provide functionality for working with graph data, they differ in their focus and use cases. NetworkX is a general-purpose library for creating, manipulating, and analyzing graphs and networks, while AGE is a graph database management system that is fully integrated with PostgreSQL and supports the Cypher query language.

safi50 commented 1 year ago

NetworkX

Apache AGE

DavidGMdev commented 1 year ago

Similarities :

1. AGE or Advanced Graph Extension

2. NetworkX :

References :

github-actions[bot] commented 6 months ago

This issue is stale because it has been open 45 days with no activity. Remove "Abondoned" label or comment or this will be closed in 7 days.

github-actions[bot] commented 6 months ago

This issue was closed because it has been stalled for further 7 days with no activity.