Abodit.Graph
3.23.0
dotnet add package Abodit.Graph --version 3.23.0
NuGet\Install-Package Abodit.Graph -Version 3.23.0
<PackageReference Include="Abodit.Graph" Version="3.23.0" />
<PackageVersion Include="Abodit.Graph" Version="3.23.0" />
<PackageReference Include="Abodit.Graph" />
paket add Abodit.Graph --version 3.23.0
#r "nuget: Abodit.Graph, 3.23.0"
#:package Abodit.Graph@3.23.0
#addin nuget:?package=Abodit.Graph&version=3.23.0
#tool nuget:?package=Abodit.Graph&version=3.23.0
AboditGraph
Graph library for RDF-like in-memory graphs. Efficient either-direction traversals. Provides depth-first, breadth-first and random-first traversals, topological sort, path finding, and page rank algorithms. Supports Dotgraph for rendering output which is very helpful when debugging.

Create a graph using RDF-like predicates on nodes of any type.
var g = new Graph<string, Relation>();
g.AddStatement("a", Relation.RDFSType, "b");
g.AddStatement("a", Relation.RDFSType, "c");
g.AddStatement("b", Relation.RDFSType, "d");
g.AddStatement("c", Relation.RDFSType, "e");
g.AddStatement("d", Relation.RDFSType, "f");
g.AddStatement("e", Relation.RDFSType, "f");
And then traverse it, union it, intersect it, find paths, topological sorts, page rank, ...
var sorted = string.Join("", g.TopologicalSortApprox());
sorted.Should().Be("abcdef");
var path = g.ShortestPath(a, Relation.RDFSType, e, (r) => 1.0, (x, y) => x + y);
string result = string.Join(";", path);
result.Should().Be("a;c;e");
Why create another graph library?
- Performance when traversing a graph in both directions.
- Full control over Node and Edge type including the ability to use Nodes as Edges in true RDF 'turtles-all-the-way-down' fashion.
- Compact in memory representation for very large in-memory graphs.
- Immutable data structures wherever possible.
- Complete set of algorithms including exploration, path finding, union, topological sort and page rank.
- Support for Dotgraph rendering of graphs.
Nuget
Available on nuget as https://www.nuget.org/packages/Abodit.Graph
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
-
net9.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Abodit.Graph:
| Package | Downloads |
|---|---|
|
AboditUnits
Units of measure, TokenExpressions, TemporalSets and other supporting classes for the Abodit NLP Engine. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.23.0 | 215 | 3/28/2026 |
| 3.22.20.4 | 80,653 | 1/20/2022 |
| 3.22.20.2 | 615 | 1/20/2022 |
| 3.22.20.1 | 623 | 1/20/2022 |
| 3.21.152.1 | 11,057 | 6/1/2021 |
| 3.21.151.5 | 547 | 6/1/2021 |
| 3.21.151.4 | 496 | 6/1/2021 |
| 3.21.147.1 | 549 | 5/28/2021 |
| 3.21.128.2 | 527 | 5/9/2021 |
| 3.21.86.1 | 515 | 4/4/2021 |
| 3.21.83.3 | 519 | 3/25/2021 |