Add comprehensive documentation with i18n support (EN/BG)
- Add docs/ folder with English (en/) and Bulgarian (bg/) documentation - Create index.md with language switching and links - English docs: installation, quickstart, architecture, baraql, storage, schema, lsm, btree, vector, graph, fts, columnar, transactions, distributed, protocol, udf, api-binary, api-http, api-websocket - Bulgarian docs: installation, quickstart, architecture, baraql, schema, lsm, btree, vector, graph, fts, transactions, distributed - Update README license to BSD 3-Clause - Add LICENSE file with BSD 3-Clause text
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# Graph Engine
|
||||
|
||||
Adjacency list storage with built-in algorithms for graph traversal and analysis.
|
||||
|
||||
## Usage
|
||||
|
||||
```nim
|
||||
import barabadb/graph/engine
|
||||
|
||||
var g = newGraph()
|
||||
let alice = g.addNode("Person", {"name": "Alice"}.toTable)
|
||||
let bob = g.addNode("Person", {"name": "Bob"}.toTable)
|
||||
discard g.addEdge(alice, bob, "knows")
|
||||
|
||||
# Traversal
|
||||
let bfs = g.bfs(alice)
|
||||
let dfs = g.dfs(alice)
|
||||
let path = g.shortestPath(alice, bob)
|
||||
let ranks = g.pageRank()
|
||||
```
|
||||
|
||||
## Algorithms
|
||||
|
||||
| Algorithm | Description |
|
||||
|-----------|-------------|
|
||||
| `bfs` | Breadth-first traversal |
|
||||
| `dfs` | Depth-first traversal |
|
||||
| `dijkstra` | Shortest weighted path |
|
||||
| `pageRank` | Node importance ranking |
|
||||
| `louvain` | Community detection |
|
||||
| `patternMatch` | Subgraph isomorphism |
|
||||
|
||||
## Cypher Query
|
||||
|
||||
```nim
|
||||
import barabadb/graph/cypher
|
||||
|
||||
var engine = newCypherEngine(g)
|
||||
let results = engine.execute("""
|
||||
MATCH (p:Person)-[:KNOWS]->(friend:Person)
|
||||
WHERE p.name = 'Alice'
|
||||
RETURN friend.name
|
||||
""")
|
||||
```
|
||||
|
||||
## Pattern Matching
|
||||
|
||||
```sql
|
||||
MATCH (a:Person)-[:KNOWS]->(b:Person)-[:KNOWS]->(c:Person)
|
||||
WHERE a.name = 'Alice'
|
||||
RETURN b.name, c.name
|
||||
```
|
||||
Reference in New Issue
Block a user