Skip to content

Commit a3a8c15

Browse files
Terraphim CIclaude
andcommitted
docs: add Dynamic Ontology documentation and blog posts
- Add comprehensive docs/src/dynamic-ontology.md with architecture, feature gates, core types, and usage examples - Add docs/blog/dynamic-ontology-launch.md launch blog post - Add docs/blog/announcement-dynamic-ontology.md with Twitter/X, LinkedIn, Hacker News, and GitHub release templates - Update SUMMARY.md with Dynamic Ontology section Part of Dynamic Ontology feature (v1.9) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 48214f5 commit a3a8c15

4 files changed

Lines changed: 477 additions & 0 deletions

File tree

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# Dynamic Ontology Launch Announcement
2+
3+
## Twitter/X Thread
4+
5+
**Tweet 1:**
6+
Just shipped Dynamic Ontology - a schema-first approach to knowledge graphs that actually works.
7+
8+
No vector embeddings. No expensive ML. Just your documents + automata + coverage signals.
9+
10+
Here's what makes it different...
11+
12+
**Tweet 2:**
13+
The problem with knowledge graphs: you build one but have no idea if it's working.
14+
15+
Dynamic Ontology solves this with Coverage Signals - continuous quality governance that tells you exactly how well your extraction is performing.
16+
17+
**Tweet 3:**
18+
We tested on 1,013 documents:
19+
- 4,090 domain terms extracted
20+
- Real concepts identified (ontology, schema, inference, entity)
21+
- Quality measurable and actionable
22+
23+
Coverage: 70%+ = proceed, <20% = rethink approach
24+
25+
**Tweet 4:**
26+
Built with Rust feature gates so you only pay for what you need:
27+
- `ontology` - core generic types (default)
28+
- `medical` - medical entity types
29+
- `hgnc` - gene normalization (EGFR, TP53, KRAS...)
30+
31+
```bash
32+
cargo run --example kg_normalization -p terraphim_types
33+
```
34+
35+
**Tweet 5:**
36+
The best part: no vector embeddings required. Uses existing Aho-Corasick + fuzzy matching. Fast, deterministic, explainable.
37+
38+
Docs: https://github.com/terraphim/terraphim-ai/tree/main/docs/src/dynamic-ontology.md
39+
40+
Star us to follow the journey.
41+
42+
---
43+
44+
## LinkedIn Post
45+
46+
Excited to announce Dynamic Ontology - a practical approach to knowledge graphs that makes extraction quality visible.
47+
48+
After months of research and implementation, we've shipped a schema-first methodology that:
49+
50+
1. Extracts entities from your existing documents
51+
2. Builds ontology automatically
52+
3. Measures coverage continuously
53+
4. Grounds entities to canonical URIs
54+
55+
The key insight? You don't need vector embeddings. The existing automata (Aho-Corasick + fuzzy matching) combined with graph ranking does the job - faster, cheaper, and more explainable.
56+
57+
We tested on 1,013 documents and extracted 4,090 domain-specific terms. The system correctly identifies concepts like "knowledge graphs", "ontology", "schema", and "inference" - and importantly, tells you when it's missing something.
58+
59+
Coverage signals provide continuous governance:
60+
- 70%+ coverage = ready to use
61+
- 40-70% = minor review needed
62+
- <20% = different approach needed
63+
64+
Built with Rust feature gates for flexibility - enable medical types or HGNC gene normalization when you need it.
65+
66+
Check out the docs and example in our GitHub repo.
67+
68+
#KnowledgeGraph #AI #DataScience #Rust
69+
70+
---
71+
72+
## Hacker News Submission
73+
74+
**Title:** Dynamic Ontology: Schema-first knowledge graphs without vector embeddings
75+
76+
**Body:**
77+
We've been working on a practical approach to knowledge graphs that doesn't require expensive vector embeddings or perfect schema design upfront.
78+
79+
Key features:
80+
- Extract entities from documents automatically
81+
- Build ontology from your corpus
82+
- Coverage signals measure extraction quality
83+
- No ML infrastructure needed
84+
85+
The insight: existing Aho-Corasick automata + fuzzy matching handles normalization fine. What we needed was a feedback loop - coverage signals that tell you what you're missing so you can expand intelligently.
86+
87+
Tested on 1,013 documents - 4,090 terms extracted, domain concepts identified correctly.
88+
89+
https://github.com/terraphim/terraphim-ai/tree/main/docs/src/dynamic-ontology.md
90+
91+
---
92+
93+
## GitHub Release Notes
94+
95+
## Dynamic Ontology v1.4
96+
97+
We're excited to announce Dynamic Ontology - a schema-first approach to knowledge graph construction.
98+
99+
### What's New
100+
101+
- **GroundingMetadata** - Canonical URIs for normalized entities
102+
- **CoverageSignal** - Quality governance signals
103+
- **SchemaSignal** - Entity extraction with confidence scores
104+
- **HgncNormalizer** - Gene normalization (EGFR, TP53, KRAS, etc.)
105+
106+
### Feature Gates
107+
108+
| Feature | Description |
109+
|---------|-------------|
110+
| `ontology` | Core generic types (default) |
111+
| `medical` | Medical entity types |
112+
| `hgnc` | HGNC gene normalization |
113+
114+
### Example
115+
116+
```bash
117+
cargo run --example kg_normalization -p terraphim_types
118+
cargo run --example ontology_usage -p terraphim_types --features hgnc
119+
```
120+
121+
### Documentation
122+
123+
See [docs/src/dynamic-ontology.md](./docs/src/dynamic-ontology.md) for full documentation.
124+
125+
### Breaking Changes
126+
127+
- `ExtractedEntity.entity_type` is now `String` (was enum) - enables cross-domain use
128+
- `ExtractedRelationship.relationship_type` is now `String` (was enum)
129+
- Medical types moved to feature-gated `EntityType`/`RelationshipType` enums
130+
131+
---
132+
133+
*For additional announcement formats or localization, let me know.*
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Introducing Dynamic Ontology: Schema-First Knowledge Graphs
2+
3+
Knowledge graphs are powerful, but building them has always been the hard part. Traditional approaches require either expensive vector embeddings or manual schema design. Today, we're launching **Dynamic Ontology** - a schema-first approach that makes knowledge graph construction practical without the complexity.
4+
5+
## The Problem
6+
7+
Building knowledge graphs has been stuck in a rut:
8+
9+
1. **Vector embeddings are expensive** - Running BERT/embeddings for every entity is costly and slow
10+
2. **Schema design is hard** - Deciding what entities and relationships to capture upfront is nearly impossible
11+
3. **Quality is invisible** - How do you know if your extraction is actually working?
12+
13+
We've all been there - you build a knowledge graph, but you have no idea if it's actually capturing what's important.
14+
15+
## The Solution: Dynamic Ontology
16+
17+
Dynamic Ontology flips the script. Instead of designing a perfect schema upfront, it:
18+
19+
1. **Starts with your documents** - Pull entities and terms directly from your existing knowledge base
20+
2. **Uses existing automata** - Our Aho-Corasick + fuzzy matching does the heavy lifting (no embeddings needed)
21+
3. **Measures quality continuously** - Coverage signals tell you how well your ontology is working
22+
23+
### How It Works
24+
25+
```
26+
Your Documents → Extract Terms → Build Ontology → Extract Entities → Quality Signal
27+
```
28+
29+
The magic is in the feedback loop. Coverage signals tell you what you're missing, so you can expand your ontology intelligently.
30+
31+
## Under the Hood
32+
33+
We implemented this with a multi-agent architecture:
34+
35+
- **Extraction Agent** - LLM-based entity extraction with schema signals
36+
- **Normalization Agent** - Grounds entities to canonical terms using graph + fuzzy matching
37+
- **Coverage Agent** - Computes quality governance signals
38+
- **Review Agent** - QA for low-confidence matches
39+
40+
### Feature Gates for Flexibility
41+
42+
We built this with Rust's feature gates so you only pay for what you need:
43+
44+
- **`ontology`** (default) - Core generic types work for any domain
45+
- **`medical`** - Medical/oncology entity types when you need them
46+
- **`hgnc`** - HGNC gene normalization (EGFR, TP53, KRAS, etc.)
47+
48+
```rust
49+
// Just want the basics?
50+
terraphim_types = { features = ["ontology"] }
51+
52+
// Building a medical knowledge graph?
53+
terraphim_types = { features = ["hgnc"] }
54+
```
55+
56+
### No Vector Embeddings Required
57+
58+
Here's the thing - we don't use vector embeddings at all. The existing Terraphim automata (Aho-Corasick + fuzzy matching) combined with graph ranking does the job. This means:
59+
60+
- Fast extraction (milliseconds, not seconds)
61+
- No ML infrastructure to manage
62+
- Deterministic results you can explain
63+
64+
## Real Results
65+
66+
We tested Dynamic Ontology on a corpus of 1,013 documents from our knowledge base:
67+
68+
- **4,090 terms** extracted into the ontology
69+
- **Domain concepts** like "knowledge graphs", "ontology", "schema", "inference" correctly identified
70+
- **Coverage signals** correctly flag when quality needs attention
71+
72+
The system knows what it knows - and more importantly, knows what it doesn't know.
73+
74+
## Get Started
75+
76+
```bash
77+
# Run the knowledge graph normalization example
78+
cargo run --example kg_normalization -p terraphim_types
79+
80+
# Or with HGNC gene normalization
81+
cargo run --example ontology_usage -p terraphim_types --features hgnc
82+
```
83+
84+
Check out the [documentation](./dynamic-ontology.md) for full details.
85+
86+
## What's Next
87+
88+
This is just the beginning. We're working on:
89+
90+
- Automatic ontology expansion based on coverage gaps
91+
- Integration with external ontologies (UniProt, ChEBI)
92+
- Batch processing for large document sets
93+
94+
The foundation is solid - now we build on it.
95+
96+
---
97+
98+
*Dynamic Ontology is available now in terraphim_types 1.4+. Star us on GitHub to follow the journey.*

docs/src/SUMMARY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@
5757
- [Bug Reporting Terminology](./kg/bug-reporting.md)
5858
- [Issue Tracking Terminology](./kg/issue-tracking.md)
5959

60+
## Dynamic Ontology
61+
62+
- [Dynamic Ontology](./dynamic-ontology.md)
63+
6064
## Domains
6165

6266
- [VM](./domains/vm/README.md)

0 commit comments

Comments
 (0)