Topic Resolution v1¶
Source schema: doc/schemas/topic-resolution.v1.schema.json
Signed deterministic resolver output over one pinned topic taxonomy. Ambiguous and unresolved are first-class states, not malformed outputs.
Governing Basis¶
Project Lineage¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
|
resolution/id |
yes |
string | |
taxonomy/digest |
yes |
ref: #/$defs/sha256_digest |
|
resolver/version |
yes |
string | |
epsilon |
yes |
number | |
query/keywords |
yes |
array | |
result |
yes |
enum: resolved, ambiguous, unresolved |
|
topic/term |
no |
ref: #/$defs/topic_term |
|
score |
no |
number | |
matched/labels |
yes |
array | |
candidates |
yes |
array | |
ambiguous/reason |
no |
string | null | |
issued-at |
yes |
string | |
resolver/node-id |
yes |
string | |
signature |
yes |
ref: #/$defs/signature |
|
extensions |
no |
ref: #/$defs/extensions |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
sha256_digest |
string | |
topic_term |
string | |
matched_label |
object | |
candidate |
object | |
signature |
object | |
extensions |
object |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"result": {
"const": "resolved"
}
},
"required": [
"result"
]
}
Then:
{
"required": [
"topic/term",
"score"
]
}
Rule 2¶
When:
{
"properties": {
"result": {
"const": "ambiguous"
}
},
"required": [
"result"
]
}
Then:
{
"required": [
"ambiguous/reason"
]
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
resolution/id¶
- Required:
yes - Shape: string
taxonomy/digest¶
- Required:
yes - Shape: ref:
#/$defs/sha256_digest
resolver/version¶
- Required:
yes - Shape: string
epsilon¶
- Required:
yes - Shape: number
query/keywords¶
- Required:
yes - Shape: array
result¶
- Required:
yes - Shape: enum:
resolved,ambiguous,unresolved
topic/term¶
- Required:
no - Shape: ref:
#/$defs/topic_term
score¶
- Required:
no - Shape: number
matched/labels¶
- Required:
yes - Shape: array
candidates¶
- Required:
yes - Shape: array
ambiguous/reason¶
- Required:
no - Shape: string | null
issued-at¶
- Required:
yes - Shape: string
resolver/node-id¶
- Required:
yes - Shape: string
signature¶
- Required:
yes - Shape: ref:
#/$defs/signature
extensions¶
- Required:
no - Shape: ref:
#/$defs/extensions
Definition Semantics¶
$defs.sha256_digest¶
- Shape: string
$defs.topic_term¶
- Shape: string
$defs.matched_label¶
- Shape: object
$defs.candidate¶
- Shape: object
$defs.signature¶
- Shape: object
$defs.extensions¶
- Shape: object