All Projects → snowleopard → Alga Paper

snowleopard / Alga Paper

A minimalistic, elegant and powerful approach to working with graphs in a functional programming language

Programming Languages

haskell
3896 projects

Projects that are alternatives of or similar to Alga Paper

agda
The theory of algebraic graphs formalised in Agda
Stars: ✭ 67 (-58.9%)
Mutual labels:  algebra, graph
Alga
Algebraic graphs
Stars: ✭ 619 (+279.75%)
Mutual labels:  graph, algebra
Typescript
Algebraic graphs implementation in TypeScript
Stars: ✭ 107 (-34.36%)
Mutual labels:  graph, algebra
Numbas
A completely browser-based e-assessment/e-learning system, with an emphasis on mathematics
Stars: ✭ 144 (-11.66%)
Mutual labels:  algebra
Aachartkit Swift
📈📊📱💻🖥️An elegant modern declarative data visualization chart framework for iOS, iPadOS and macOS. Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types. 极其精美而又强大的跨平台数据可视化图表框架,支持柱状图、条形图、…
Stars: ✭ 1,962 (+1103.68%)
Mutual labels:  graph
Graphembedding
Implementation and experiments of graph embedding algorithms.
Stars: ✭ 2,461 (+1409.82%)
Mutual labels:  graph
Neo4j 3d Force Graph
Experiments with Neo4j & 3d-force-graph https://github.com/vasturiano/3d-force-graph
Stars: ✭ 159 (-2.45%)
Mutual labels:  graph
Setreplace
Wolfram Language Package for exploring Set and Hypergraph Substitution Systems
Stars: ✭ 142 (-12.88%)
Mutual labels:  graph
Q.js
Quantum computing in your browser.
Stars: ✭ 158 (-3.07%)
Mutual labels:  algebra
Backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell
Stars: ✭ 154 (-5.52%)
Mutual labels:  graph
Graspologic
Python package for graph statistics
Stars: ✭ 153 (-6.13%)
Mutual labels:  graph
Lagmonitor
Monitor performance of your Minecraft server. Similar to VisualVM and Java Mission Control.
Stars: ✭ 147 (-9.82%)
Mutual labels:  graph
Forceatlas2
Fastest Gephi's ForceAtlas2 graph layout algorithm implemented for Python and NetworkX
Stars: ✭ 154 (-5.52%)
Mutual labels:  graph
Graphembeddingrecommendationsystem
Python based Graph Propagation algorithm, DeepWalk to evaluate and compare preference propagation algorithms in heterogeneous information networks from user item relation ship.
Stars: ✭ 144 (-11.66%)
Mutual labels:  graph
Hgp Sl
Hierarchical Graph Pooling with Structure Learning
Stars: ✭ 159 (-2.45%)
Mutual labels:  graph
Pylops
PyLops – A Linear-Operator Library for Python
Stars: ✭ 144 (-11.66%)
Mutual labels:  algebra
Boost graph cookbook 1
Boost.Graph Cookbook 1: Basics
Stars: ✭ 157 (-3.68%)
Mutual labels:  graph
Graphview
Flutter GraphView is used to display data in graph structures. It can display Tree layout, Directed and Layered graph. Useful for Family Tree, Hierarchy View.
Stars: ✭ 152 (-6.75%)
Mutual labels:  graph
Neo4j Php Ogm
Neo4j Object Graph Mapper for PHP
Stars: ✭ 151 (-7.36%)
Mutual labels:  graph
Alga
Abstract algebra for Rust.
Stars: ✭ 154 (-5.52%)
Mutual labels:  algebra

Algebraic Graphs with Class

The paper is freely available in the ACM Digital Library: https://dl.acm.org/authorize?N46678.

Alternatively, you can download the preprint from https://github.com/snowleopard/alga-paper/releases.

Talks:

Abstract

The paper presents a minimalistic and elegant approach to working with graphs in Haskell. It is built on a rigorous mathematical foundation --- an algebra of graphs --- that allows us to apply equational reasoning for proving the correctness of graph transformation algorithms. Algebraic graphs let us avoid partial functions typically caused by 'malformed graphs' that contain an edge referring to a non-existent vertex. This helps to liberate APIs of existing graph libraries from partial functions.

The algebra of graphs can represent directed, undirected, reflexive and transitive graphs, as well as hypergraphs, by appropriately choosing the set of underlying axioms. The flexibility of the approach is demonstrated by developing a library for constructing and transforming polymorphic graphs.

Implementation

See https://github.com/snowleopard/alga for the source code and links to blog posts.

There are also draft implementations in Scala and Agda, see https://github.com/algebraic-graphs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].