Skip to content

v0.5.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Aug 13:54
· 448 commits to master since this release
1a02189

Raphtory 0.5.0 Release - Views From the Afternoon 🌅

Since our transfer from Java to Rust and the release of Raphtory 0.3.0 the team has been hard at work perfecting the ways in which you can interact with your graphy data. As usual there are more updates than you can shake a stick at, so below are a couple of the key highlights!

Highlights 🏆

API Makeover 🎮

  • Pandas Connectors: To make the ingestion process easier, Raphtory graphs can now automatically ingest Pandas dataframes, fully handling the merging of complex property rich data.
  • Property Overhaul: We have overhauled graph properties from the inside out, allowing you to store values on nodes, edges and the graph itself. These can now also be much more complex values, such as dicts, lists and even whole Raphtory graphs, allowing for mind melting hierarchal modelling 🤯
  • Unified Property API: These new property features are joined by a unified property API, supporting fine grained manipulation and aggregation.
  • Vectorised Exploration: Instead of performing operations on individual edges or vertices you can now call the same functions on collections of Vertices and Edges and the operation will be performed on all of them simultaneously.
  • Standardised Algorithmic Output: To top it off, algorithms now return a new result object which provides group_by's, sorting, top_k, and translation back into a Pandas dataframes - drastically reducing the complexity of pipelines involving Raphtory.

New Views 👀

  • Edge Deletions: Deletions are back in Raphtory and they have got their own semantics! With the new GraphWithDeletions class you can model relationships with duration and graph views (such as windowing) will include all prior entities unless explicitly deleted.
  • Subgraphs: With the new subgraph API you can subset the nodes in your graph, based on any criteria you like, hiding the rest and their associated edges. This allows you to apply k-core filters, investigate the importance of individual nodes by 'removing' them from the analysis or look at individual communities without having to ever recreate the graph.
  • Multi-Layer Graphs: When adding edges to a Raphtory graph you can now add an additional parameter, setting the layer within which the edge belongs. This allows you to model entities in your data sharing different relationship types or nodes existing in multiple networks simultaneously.
  • Composable Views: All of these new views, along with those already available, are fully composable allowing you to combine them in any way your heart desires!
  • Materialisable Views: Last but not least, any view you create via a combination of all of the above can be materialised into a new graph or saved to disk in our binary format for later analysis.

Raphtory as a service 🌐

  • Running a Raphtory Service: Adding to the many ways Raphtory can be utilised you can now run Raphtory as a GraphQL server! For this you can either load graphs directly from a python dict or from a directory of saved graphs on disk. The GraphQL schema then provides exactly the same functionality as the python APIs.
  • Indexed Graphs and Searching: In addition to the standard Raphtory APIs, the GraphQL server also indexes all graphs it is hosting via tantivy allowing for fuzzy searching of node/edge properties as part of your queries!

Where to go next ⏭️

If you would like to give this new version a go, you can check out the docs as well as our examples - available in both Python and Rust. Good places to start are the Jupyter notebook for the Reddit snap dataset.

If you have an other suggestions please do let us know via Github issues, discussions or on Slack!

Full Changelog: v0.3.1...v0.5.0