|
1 | 1 | # Overview |
2 | 2 |
|
3 | | -Compass has three major concept when it comes to data ingestion: Asset, Type, and Service. |
4 | | - |
5 | | -Asset is the main model that represents a metadata of a specific service with a specific type. |
6 | | - |
7 | | -Type defines a ‘type’ of an asset and it is pre-defined. Compass currently supports the following types: |
8 | | -1. `table` |
9 | | -2. `job` |
10 | | -3. `dashboard` |
11 | | -4. `topic` |
12 | | -5. `feature_table` |
13 | | -6. `model` (under development) |
14 | | -7. `application` (under development) |
15 | | - |
16 | | -Service defines the application or source that maintains or generates the asset. Examples would be `biquery`, `postgres`, etc. |
17 | | - |
18 | | -Some features that compass has: |
19 | | -* [Discovery](../tour/2-querying-assets.mdx) |
20 | | -* [Lineage](../tour/3-asset-lineage.mdx) |
21 | | -* [Asset Tagging](./asset#tagging-an-asset) |
22 | | -* [User](./user.md) |
23 | | -* [Discussion](../guides/discussion.md) |
24 | | -* [Starring](../guides/starring.md) |
25 | | - |
26 | | -## Discussion |
27 | | -Compass supports discussion feature. User could drop comments in each discussion. Currently, there are three types of discussions `issues`, `open ended`, and `question and answer`. Depending on the type, the discussion could have multiple possible states. In the current version, all types only have two states: `open` and `closed`. A newly created discussion will always be assign an `open` state. More detail about [Discussion](../guides/discussion.md). |
28 | | - |
29 | | -## Starring |
30 | | -Compass allows a user to stars an asset. This bookmarking functionality is introduced to increase the speed of a user to get information. There is also an API to see which users star an asset (stargazers). More detail about [Starring](../guides/starring.md). |
| 3 | +Compass is an organizational context engine that builds a temporal entity graph of your systems and serves it to AI agents via MCP. |
| 4 | + |
| 5 | +## Core Concepts |
| 6 | + |
| 7 | +**Entity** is the core domain object — anything worth naming in your organization's knowledge graph: a table, service, pipeline, satellite, person, decision, etc. Entities have an open type system — any non-empty string is a valid type. |
| 8 | + |
| 9 | +**Edge** is a typed, directed, temporal relationship between two entities. Lineage, ownership, and other relationships are all modeled as edges. |
| 10 | + |
| 11 | +**Chunk** is a text fragment with a vector embedding for semantic search. Chunks are derived from entities — they're an indexing mechanism, not knowledge. |
| 12 | + |
| 13 | +## Features |
| 14 | + |
| 15 | +- **Entity Graph**: Temporal entities with typed edges and properties (JSONB) |
| 16 | +- **Search**: Keyword (tsvector), semantic (pgvector), and hybrid (RRF fusion) |
| 17 | +- **Context Assembly**: `get_context` builds a subgraph around any entity |
| 18 | +- **Impact Analysis**: `impact` traces downstream blast radius |
| 19 | +- **MCP Tools**: AI agents query the graph via MCP protocol |
| 20 | +- **Stars**: Users can star entities for quick access |
| 21 | + |
| 22 | +## Architecture |
| 23 | + |
| 24 | +All search is Postgres-native — no Elasticsearch dependency: |
| 25 | + |
| 26 | +| Mode | Engine | Purpose | |
| 27 | +|---|---|---| |
| 28 | +| Keyword | tsvector + pg_trgm | Exact matches, fuzzy/typo tolerance | |
| 29 | +| Semantic | pgvector cosine | Conceptual/natural language | |
| 30 | +| Hybrid | Both + RRF fusion | Best of both | |
| 31 | + |
| 32 | +Schema: `namespaces` → `users` → `entities` → `edges` → `chunks` → `stars` |
0 commit comments