Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,9 @@ not participate in graph traversal by default.
Every `kind = connection` arc carries a `Template` AVP — `#{attribute
=> 31, value => TemplateNref}` — that scopes the connection's
semantic context. The AVP attribute is bootstrap-seeded at nref 31;
it is forbidden on relationships of any other kind. See §7 and
`graphdb_instance:add_relationship/4,5`.
it is forbidden on relationships of any other kind. Template nodes
are compositional children of class nodes (see §3 cache field
sources). API: `graphdb_instance:add_relationship/4,5`.

---

Expand Down
49 changes: 24 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@ The project compiles clean with zero warnings (OTP 27 / rebar3 3.24). The
architecture is fully designed (see `ARCHITECTURE.md`). Implementation is
underway:

| Component | Status |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `nref` subsystem | Fully implemented (DETS-backed ID allocator with `set_floor/1`) |
| `dictionary` subsystem | `dictionary_imp` implemented; server stubs not yet wired (Task 7) |
| `graphdb_bootstrap` | Fully implemented — Mnesia schema/table creation, bootstrap scaffold loader (31 nodes, 30 relationship pairs) |
| `graphdb_mgr` | Implemented — bootstrap init, public read API (`get_node`, `get_relationships`), category immutability guard; write operations delegate to workers |
| `graphdb_attr` | Fully implemented — attribute library (name, literal, relationship attributes, relationship types) |
| `graphdb_class` | Fully implemented — taxonomic hierarchy, qualifying characteristics, class-level inheritance |
| `graphdb_instance` | Fully implemented — compositional hierarchy, instance-to-class membership, four-level inheritance resolution |
| `graphdb_rules` | Gen_server stub — deferred to Enhancements (pattern recognition, relationship constraints) |
| `graphdb_language` | Gen_server stub — next to implement (Task 6) |

**179 tests** (64 EUnit + 115 Common Test) — all passing. See
| Component | Status |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `nref` subsystem | Fully implemented (DETS-backed ID allocator with `set_floor/1`) |
| `dictionary` subsystem | `dictionary_imp` implemented; server stubs not yet wired (Task 7) |
| `graphdb_bootstrap` | Fully implemented — Mnesia schema/table creation, bootstrap scaffold loader (31 nodes, 30 relationship pairs) |
| `graphdb_mgr` | Implemented — bootstrap init, public read API (`get_node`, `get_relationships`), category immutability guard, cache audit/repair (`verify_caches/0`, `rebuild_caches/0`); write operations delegate to workers |
| `graphdb_attr` | Fully implemented — attribute library (name, literal, relationship attributes, relationship types) |
| `graphdb_class` | Fully implemented — taxonomic hierarchy, qualifying characteristics, class-level inheritance |
| `graphdb_instance` | Fully implemented — compositional hierarchy, instance-to-class membership, four-level inheritance resolution |
| `graphdb_rules` | Gen_server stub — deferred to Enhancements (pattern recognition, relationship constraints) |
| `graphdb_language` | Gen_server stub — next to implement (Task 6) |

**186 tests** (64 EUnit + 122 Common Test) — all passing. See
`TASKS-HIGH.md`, `TASKS-MEDIUM.md`, and `TASKS-LOW.md` for the
prioritised task list (organised by severity).

Expand Down Expand Up @@ -226,18 +226,17 @@ Priority order — each step applies only to attributes not yet resolved by a hi
./rebar3 eunit --app=graphdb && ./rebar3 ct
```

| Suite | Type | Tests | Coverage |
| ------------------------- | ----- | ----- | -------------------------------------------------------------------------- |
| `graphdb_bootstrap_tests` | EUnit | 35 | Term parsing, validation, record conversion |
| `graphdb_mgr_tests` | EUnit | 9 | Direction validation, client-side arg checks |
| `graphdb_attr_tests` | EUnit | 11 | Attribute type seeding, pure function checks |
| `graphdb_class_tests` | EUnit | 11 | `is_valid_parent_kind/1`, `collect_qc_nrefs/2` |
| `graphdb_instance_tests` | EUnit | 7 | `find_avp_value/2` |
| `graphdb_bootstrap_SUITE` | CT | 16 | Full bootstrap load, Mnesia tables, idempotency, error handling |
| `graphdb_mgr_SUITE` | CT | 19 | Bootstrap init, read ops, category guard, write stubs |
| `graphdb_attr_SUITE` | CT | 22 | Attribute create/lookup, seeding, relationship types |
| `graphdb_class_SUITE` | CT | 22 | Class create, QC, lookups, hierarchy, inheritance |
| `graphdb_instance_SUITE` | CT | 23 | Instance create, relationships, lookups, hierarchy, four-level inheritance |
| Suite | Type | Tests | Coverage |
| ------------------------- | ----- | ----- | --------------------------------------------------------------------------------------- |
| `graphdb_bootstrap_tests` | EUnit | 37 | Term parsing, validation, record conversion |
| `graphdb_mgr_tests` | EUnit | 9 | Direction validation, client-side arg checks |
| `graphdb_class_tests` | EUnit | 11 | `is_valid_parent_kind/1`, `collect_qc_nrefs/2` |
| `graphdb_instance_tests` | EUnit | 7 | `find_avp_value/2` |
| `graphdb_bootstrap_SUITE` | CT | 17 | Full bootstrap load, Mnesia tables, idempotency, error handling |
| `graphdb_mgr_SUITE` | CT | 23 | Bootstrap init, read ops, category guard, write stubs, cache audit/repair |
| `graphdb_attr_SUITE` | CT | 16 | Attribute create/lookup, seeding, relationship types |
| `graphdb_class_SUITE` | CT | 34 | Class create, QC, lookups, hierarchy, inheritance, templates |
| `graphdb_instance_SUITE` | CT | 32 | Instance create, relationships, lookups, hierarchy, four-level inheritance, connections |

Each CT test case runs in an isolated Mnesia database with a fresh nref
allocator in a private temp directory.
Expand Down
Loading