Canon 0.6.0 freeze: ITC-CAP draft, AVT catalog, joinable review
Finish ITC-WP-0013 (AttributeValueType under ITC-DATA) and ITC-WP-0014 T02/T03/T05/T06/T07. Capability contract schemas, live-catalog review CLI, landscape/kernel-map pointers. Sit on this version.
This commit is contained in:
parent
7805560a60
commit
d453e17952
44 changed files with 1485 additions and 137 deletions
|
|
@ -26,6 +26,7 @@ This standard provides a canonical vocabulary for:
|
|||
- fields,
|
||||
- schemas,
|
||||
- data elements,
|
||||
- attribute value types,
|
||||
- code lists,
|
||||
- data stores as references,
|
||||
- data flows,
|
||||
|
|
@ -761,6 +762,30 @@ A **DataType** specifies the technical or logical type of a field or data elemen
|
|||
|
||||
---
|
||||
|
||||
## 11.15a AttributeValueType
|
||||
|
||||
An **AttributeValueType** is a closed, versioned, application-facing value
|
||||
type for structured capture. It names the type id, meaning, wire encoding,
|
||||
and whether a CodeList is required. It does not name a widget and it is not
|
||||
a competing entity with Attribute or Field.
|
||||
|
||||
It is a closed profile of **Representation** for capture and forms.
|
||||
Constraint still owns required/format/cardinality. CodeList still owns
|
||||
permitted values. Email, phone, and percentage are not types.
|
||||
|
||||
The catalog is `models/data/attribute-value-types.yaml`. Current ids:
|
||||
`text`, `text-long`, `date`, `time`, `datetime`, `amount`, `one-of`,
|
||||
`some-of`. Reserved: `boolean`, `integer`, `number`, `uri`, `identifier`.
|
||||
Legacy alias `textarea` normalizes to `text-long`.
|
||||
|
||||
`amount` is structured `{value, currency}`. `one-of` / `some-of` require a
|
||||
CodeList; domain lists are not new types.
|
||||
|
||||
**Provenance.** `demand/AttributeValueTypes.md` (citation-evidence),
|
||||
ITC-WP-0013.
|
||||
|
||||
---
|
||||
|
||||
## 11.16 Constraint
|
||||
|
||||
A **Constraint** is a rule limiting valid data.
|
||||
|
|
|
|||
27
infospace/models/data/attribute-value-types-alignment.md
Normal file
27
infospace/models/data/attribute-value-types-alignment.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# Alignment note — AttributeValueType catalog for citation-evidence
|
||||
|
||||
**Consumer:** citation-evidence Capture UX
|
||||
**Demand:** `demand/AttributeValueTypes.md`
|
||||
**Catalog:** `models/data/attribute-value-types.yaml`
|
||||
**Owner:** ITC-DATA
|
||||
**Canon version:** 0.6.0
|
||||
|
||||
citation-evidence should import these ids rather than keep a private type
|
||||
enum. Widgets, filters, and evidence links stay in the consumer.
|
||||
|
||||
| Consumer need | Canon id | Notes |
|
||||
|---|---|---|
|
||||
| short text | `text` | already in use |
|
||||
| textarea | `text-long` | accept `textarea` on load; write `text-long` |
|
||||
| date | `date` | `YYYY-MM-DD` |
|
||||
| time | `time` | requested |
|
||||
| datetime | `datetime` | ISO-8601 |
|
||||
| amount | `amount` | `{value, currency}` — accepted default |
|
||||
| single choice | `one-of` | CodeList required; widget is consumer (`select`) |
|
||||
| multi choice | `some-of` | CodeList required |
|
||||
| boolean / integer / number / uri / identifier | reserved | do not implement until needed |
|
||||
|
||||
Do not add `email`, `phone`, or `percentage` as types. Those are `text` or
|
||||
`number` plus a Constraint.
|
||||
|
||||
CE-WP-0012 widgets remain consumer work.
|
||||
129
infospace/models/data/attribute-value-types.yaml
Normal file
129
infospace/models/data/attribute-value-types.yaml
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
# InfoTechCanon Attribute Value Type Catalog
|
||||
#
|
||||
# Closed, versioned application-facing value types for structured capture.
|
||||
# Owned by ITC-DATA. Does not name widgets. Encoding rules live here;
|
||||
# Constraint, CodeList, and Representation stay the owning concepts.
|
||||
canon:
|
||||
id: itc-data-attribute-value-types
|
||||
name: InfoTechCanon Attribute Value Type Catalog
|
||||
artifact_id: catalog/attribute-value-types
|
||||
version: 0.1.0
|
||||
status: draft
|
||||
canon_version: 0.6.0
|
||||
owner: model/data
|
||||
purpose: Closed catalog of capture value types so consumers share ids and
|
||||
wire encodings without forking a private type system.
|
||||
normative_document: models/data/InfoTechCanonDataModel.md
|
||||
provenance:
|
||||
demand: demand/AttributeValueTypes.md
|
||||
consumer: citation-evidence
|
||||
consumer_draft: citation-evidence/wiki/AttributeValueTypes-proposal.md
|
||||
workplan: ITC-WP-0013
|
||||
types:
|
||||
- id: text
|
||||
status: current
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: string
|
||||
description: Short free text.
|
||||
- id: text-long
|
||||
status: current
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: string
|
||||
description: Long free text. Canonical id for the legacy alias textarea.
|
||||
aliases: [textarea]
|
||||
- id: date
|
||||
status: current
|
||||
kind: scalar
|
||||
wire: string
|
||||
format: YYYY-MM-DD
|
||||
representation: date
|
||||
description: Calendar date.
|
||||
- id: time
|
||||
status: current
|
||||
kind: scalar
|
||||
wire: string
|
||||
format: HH:MM or HH:MM:SS
|
||||
representation: string
|
||||
description: Clock time without a date.
|
||||
- id: datetime
|
||||
status: current
|
||||
kind: scalar
|
||||
wire: string
|
||||
format: ISO-8601 local or offset
|
||||
representation: timestamp
|
||||
description: Date and time.
|
||||
- id: amount
|
||||
status: current
|
||||
kind: quantity
|
||||
wire: object
|
||||
representation: decimal
|
||||
requires_codelist: currency
|
||||
description: Quantity plus currency. Wire form is structured JSON.
|
||||
encoding:
|
||||
value: decimal-as-string
|
||||
currency: ISO-4217 code
|
||||
example: {value: "1500.00", currency: EUR}
|
||||
- id: one-of
|
||||
status: current
|
||||
kind: choice
|
||||
wire: string
|
||||
representation: code
|
||||
requires_codelist: true
|
||||
cardinality: 1
|
||||
description: Exactly one value from a CodeList. Wire value is the option id.
|
||||
- id: some-of
|
||||
status: current
|
||||
kind: choice
|
||||
wire: array
|
||||
representation: code
|
||||
requires_codelist: true
|
||||
cardinality: 0-n
|
||||
description: Zero or more values from a CodeList. Wire value is an array of
|
||||
option ids.
|
||||
- id: boolean
|
||||
status: reserved
|
||||
kind: scalar
|
||||
wire: boolean
|
||||
representation: boolean
|
||||
description: Yes/no. Reserved; not required of consumers yet.
|
||||
- id: integer
|
||||
status: reserved
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: integer
|
||||
description: Integer as decimal digits. Reserved.
|
||||
- id: number
|
||||
status: reserved
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: decimal
|
||||
description: Decimal number as string. Reserved.
|
||||
- id: uri
|
||||
status: reserved
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: URI
|
||||
description: URI. Reserved.
|
||||
- id: identifier
|
||||
status: reserved
|
||||
kind: scalar
|
||||
wire: string
|
||||
representation: identifier
|
||||
description: Opaque identifier. Reserved.
|
||||
rules:
|
||||
- id: no-email-type
|
||||
statement: Do not add email, phone, or percentage as types. Use text or
|
||||
number plus a Constraint.
|
||||
- id: no-widget
|
||||
statement: AttributeValueType does not name a UI widget.
|
||||
- id: alias-normalize
|
||||
statement: Legacy alias textarea MUST be accepted on read and normalized
|
||||
to text-long on write.
|
||||
- id: amount-structured
|
||||
statement: amount MUST use {value, currency}. A single string is not
|
||||
canonical.
|
||||
- id: choice-needs-codelist
|
||||
statement: one-of and some-of MUST attach a CodeList. Domain-specific
|
||||
lists are not new types.
|
||||
Loading…
Add table
Add a link
Reference in a new issue