Skip to content

Commit d8efe25

Browse files
committed
Interpret legacy IPTC technical metadata
Version 0.4.84 is ready: - Added technical-image, audio-asset, preview-asset, and rasterized-caption interpretation. - Correctly handles decoded IPTC byte values and big-endian preview fields. - Keeps IPTC image layout separate from EXIF rotation. - Marks technical records source-bound and rendered-transfer unsafe. - Updated thin Python bindings, public docs, and OpenMeta/CHANGES.md.
1 parent c226740 commit d8efe25

15 files changed

Lines changed: 832 additions & 40 deletions

CHANGES.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
11
# OpenMeta Changes
22

3+
## 0.4.84 - 2026-07-24
4+
5+
Changes compared with `0.4.83`.
6+
7+
### Added
8+
9+
- Added source-bound legacy IPTC technical-image, audio-asset, and
10+
preview-asset records with exact `technical_image`, `audio`, and `preview`
11+
query semantics.
12+
- Added normalized image component/layout, audio
13+
channel/content/rate/resolution/duration/outcue, preview format/version/data,
14+
and rasterized-caption roles.
15+
- Added matching append-only C++ and thin Python enums.
16+
17+
### Changed
18+
19+
- IPTC concept resolution now consumes the raw byte representation produced by
20+
the IPTC-IIM decoder for known textual and date/time datasets.
21+
- IPTC image layout remains distinct from EXIF rotation orientation, preview
22+
format/version values use big-endian decoding, and binary preview identity
23+
uses bounded size/hash keys without copying payloads into concept records.
24+
- Legacy IPTC technical records are source-bound and unsafe for automatic
25+
rendered-image transfer.
26+
327
## 0.4.83 - 2026-07-24
428

529
Changes compared with `0.4.82`.

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4.83
1+
0.4.84

docs/api_stability.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ rights holders, licensors, licensees, licenses, releases, end users, image
4646
creators, image suppliers, image assets, controlled-vocabulary terms, registry
4747
entries, image regions, resource references, resource events, manifest items,
4848
versions, editorial workflows, source software, editorial contacts, and pantry
49-
items. Sensitivity is a
49+
items, plus legacy IPTC technical-image, audio-asset, and preview-asset
50+
records. The IPTC technical records normalize image layout, component count,
51+
audio channel/rate/resolution/duration, preview format/version, and bounded
52+
binary payload identity without treating IPTC layout as EXIF rotation.
53+
Sensitivity is a
5054
policy signal independent of technical transfer safety; the same fields are
5155
mirrored in transfer diagnostics and thin Python dictionaries. Hosts must not
5256
interpret `safe` as approval to publish personal-contact, person-identity,
@@ -58,12 +62,15 @@ references and originating software, IPTC Core accessibility and taxonomy
5862
fields, IPTC Extension registry and
5963
image-region entities, resource/document identity and lineage/history, and
6064
remaining bounded PLUS party, delivered-asset, and license-policy fields.
65+
Legacy IPTC image, audio, and preview datasets use exact `technical_image`,
66+
`audio`, and `preview` semantics.
6167
Equivalent scalar pairs participate in preference/conflict handling; taxonomy,
6268
resource-identifier, and license-document collections remain additive.
6369
Document identity/lineage/history, registry, prior-envelope-reference, and
6470
source-software records are source-bound for rendered transfer; image-region
6571
records require target image specifications. Editorial contacts carry
6672
personal-contact sensitivity independently of their technical transfer hint.
73+
Technical-image, audio-asset, and preview-asset records are source-bound.
6774

6875
The bounded BMFF tiled-image field contract covers `tilC` version 0 tile
6976
dimensions, up to eight extra dimensions, `dref`/`deti` mapping, internal

docs/development.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ model should stay compact:
1717
| Area | Purpose | Readiness |
1818
| --- | --- | --- |
1919
| Decoding | Find metadata carriers and decode EXIF, XMP, IPTC, ICC, Photoshop IRB, JUMBF/C2PA, EXR, and related blocks into `MetaStore` entries. | High, about 98-100% for the current target scope. |
20-
| Interpretation | Normalize names and values, group entries by meaning, and classify source-bound data such as RAW crop, exposure adjustment, color/profile/source-color-transform evidence, RAW curves/linearity metadata with descriptor-backed compressed-storage applicability, lens-correction, sensor, BMFF brand/item-property associations and rollups including `avio` AVIF brands, item groups, item semantic counts, whole-scene policy hints, graph-component summaries with per-component roles, member item IDs, semantic composition, typed relation counts, bounded `grid`/`iovl`/`iden` construction semantics with recursive item-offset descriptors and graph-cycle/source validation, bounded complete `tili` configuration/reference/offset-table interpretation, `container_graph` concepts, primary item properties, primary metadata-carrier flags, primary sidecar and scene summaries, and display-transform summaries, JUMBF labels, Photoshop IRB embedded carriers plus fixed-layout, XML/text, working-path and numbered clipping-path records, byte-count, descriptor-header, scalar/class/alias/enum/reference, and bounded nested list/object summaries, EXIF 3.1 correction/noise labels, version/firmware-style value formatting for selected EXIF/Nikon/Olympus/native RAF contexts, selected Sony ILCE-7RM6 correction-offset routing, Fujifilm flash white-balance naming, Apple/FLIR/JVC/GE/Reconyx/Microsoft/Nintendo/Sanyo scalar MakerNote labels, current Canon RF/Nikon Z lens labels, an ambiguous Pentax Sigma/Samsung/Tokina lens-family label, EXIF/XMP GPS timestamp composites, EXIF `OffsetTime*`/`SubSecTime*` date composition with normalized-instant conflict checks, separate camera/destination/shown/created GPS roles with scope-aware structured-location conflicts, language-aware descriptive roles, legacy editorial duplicate reconciliation, non-equivalent IPTC taxonomy/workflow fields, content-location and prior-envelope scopes, editorial release/expiration date-time pairs, source software and editorial contacts, accessibility/taxonomy/registry/image-region/document-identity/lineage/history semantics, structured creator-contact/event/person/organization/product/artwork/rights/license/release/end-user/image-creator/image-supplier/image-asset/controlled-vocabulary/registry/image-region/image-region-boundary/resource-reference/resource-event/manifest-item/version/editorial-workflow/source-software/editorial-contact/pantry records, explicit image-region shape and coordinate-unit contracts, independent privacy/policy sensitivity, computational, thermal, stitch/panorama capture state, and vendor-private fields. | High, about 98-99%. |
21-
| Query | Find entries by name, fuzzy term, or semantic group, then expose normalized query candidates, structured interpretation records, bounded cross-family concept resolutions, transfer hints, sensitivity, and conflict flags for crop/border/active-area, exposure/gain, color/WB/profile/source-color-transform, orientation, date/time, GPS, descriptive fields including contact/event/person/organization/product/artwork/rights/license/release, editorial, accessibility, taxonomy, registry, image-region, document-identity, document-lineage, and document-history semantics, lens-correction, computational/thermal/stitch, RAW/source-processing fields, and BMFF derived-image construction and tiled-image configuration evidence across standard and vendor metadata. | High, about 98-99%. |
20+
| Interpretation | Normalize names and values, group entries by meaning, and classify source-bound data such as RAW crop, exposure adjustment, color/profile/source-color-transform evidence, RAW curves/linearity metadata with descriptor-backed compressed-storage applicability, lens-correction, sensor, BMFF brand/item-property associations and rollups including `avio` AVIF brands, item groups, item semantic counts, whole-scene policy hints, graph-component summaries with per-component roles, member item IDs, semantic composition, typed relation counts, bounded `grid`/`iovl`/`iden` construction semantics with recursive item-offset descriptors and graph-cycle/source validation, bounded complete `tili` configuration/reference/offset-table interpretation, `container_graph` concepts, primary item properties, primary metadata-carrier flags, primary sidecar and scene summaries, and display-transform summaries, JUMBF labels, Photoshop IRB embedded carriers plus fixed-layout, XML/text, working-path and numbered clipping-path records, byte-count, descriptor-header, scalar/class/alias/enum/reference, and bounded nested list/object summaries, EXIF 3.1 correction/noise labels, version/firmware-style value formatting for selected EXIF/Nikon/Olympus/native RAF contexts, selected Sony ILCE-7RM6 correction-offset routing, Fujifilm flash white-balance naming, Apple/FLIR/JVC/GE/Reconyx/Microsoft/Nintendo/Sanyo scalar MakerNote labels, current Canon RF/Nikon Z lens labels, an ambiguous Pentax Sigma/Samsung/Tokina lens-family label, EXIF/XMP GPS timestamp composites, EXIF `OffsetTime*`/`SubSecTime*` date composition with normalized-instant conflict checks, separate camera/destination/shown/created GPS roles with scope-aware structured-location conflicts, language-aware descriptive roles, legacy editorial duplicate reconciliation, non-equivalent IPTC taxonomy/workflow fields, content-location and prior-envelope scopes, editorial release/expiration date-time pairs, source software and editorial contacts, source-bound IPTC technical-image/audio/preview records, accessibility/taxonomy/registry/image-region/document-identity/lineage/history semantics, structured creator-contact/event/person/organization/product/artwork/rights/license/release/end-user/image-creator/image-supplier/image-asset/controlled-vocabulary/registry/image-region/image-region-boundary/resource-reference/resource-event/manifest-item/version/editorial-workflow/source-software/editorial-contact/technical-image/audio-asset/preview-asset/pantry records, explicit image-region shape and coordinate-unit contracts, independent privacy/policy sensitivity, computational, thermal, stitch/panorama capture state, and vendor-private fields. | High, about 99%. |
21+
| Query | Find entries by name, fuzzy term, or semantic group, then expose normalized query candidates, structured interpretation records, bounded cross-family concept resolutions, transfer hints, sensitivity, and conflict flags for crop/border/active-area, exposure/gain, color/WB/profile/source-color-transform, orientation, date/time, GPS, descriptive fields including contact/event/person/organization/product/artwork/rights/license/release, editorial, accessibility, taxonomy, registry, image-region, document-identity, document-lineage, document-history, technical-image, audio, and preview semantics, lens-correction, computational/thermal/stitch, RAW/source-processing fields, and BMFF derived-image construction and tiled-image configuration evidence across standard and vendor metadata. | High, about 99%. |
2222
| Creation | Build fresh metadata entries from host-provided values. | Medium, about 55-65%. |
2323
| Editing | Modify existing logical metadata entries while preserving valid surrounding structure. | Medium, about 60-70%. |
2424
| Transfer | Move metadata between files using explicit compatible-file or rendered-image safety policies. | Medium-high, about 80-85%. |
@@ -102,7 +102,8 @@ structured-location scope, normalized descriptive language, additive
102102
collection preference, structured record kinds and scopes for editorial,
103103
rights, license, release, end-user, image-creator, image-supplier, and
104104
image-asset, controlled-vocabulary, registry, image-region,
105-
resource-reference, resource-event, and pantry records, independent policy
105+
resource-reference, resource-event, technical-image, audio-asset,
106+
preview-asset, and pantry records, independent policy
106107
sensitivity,
107108
canonical geometry origin/size/rect/margins,
108109
normalized exposure values, full normalized value vectors for grouped

0 commit comments

Comments
 (0)