You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extend cross-family concept resolution with Geometry support and richer DateTime/GPS metadata. Adds MetadataConceptKind::Geometry and new roles (Crop, ActiveArea, Border, SensorGeometry); candidate fields for origin/size/rect/margins and geometry keying; and logic to extract geometry candidates from interpretation/query records. Introduces date/time precision and timezone enums plus helpers to parse/attach precision and UTC/offset/local classification. Adds GPS altitude-reference detection (EXIF/XMP), below-sea-level state, and propagates altitude reference entries into candidates. Updates Python bindings, tests, and documentation/CHANGES to expose the new fields and behaviors.
Copy file name to clipboardExpand all lines: docs/api_stability.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ different status.
26
26
| EXIF/TIFF/DNG numeric value names: `exif_tag_numeric_value_name(...)` and focused helpers |`openmeta/exif_value_names.h`| Stable | Small helper contract for common enum-like TIFF/EXIF/DNG numeric values such as compression, photometric interpretation, planar configuration, exposure program, metering mode, light source, flash, color space, white balance, scene capture type, gain control, CFA layout, and DNG calibration illuminants. Unknown values return an empty string and remain lossless numeric metadata. |
27
27
| Semantic metadata query: `query_metadata(...)`, `query_crop_metadata(...)`, focused query helpers, and `metadata_query_fuzzy_search_available()` | `openmeta/metadata_query.h` | Experimental | Query contract for inspection matches plus normalized candidates. Current coverage includes crop/active-area/border margins, exposure/gain, white balance, color, lens correction, orientation, and RAW/source-processing metadata across standard tags, selected DNG tags, fuzzy XMP paths, and vendor RAW-processing classification. Matches report `exact_match`, `fuzzy_match`, and `fuzzy_score` so tools can label exact results separately from RapidFuzz near-miss hits. `OPENMETA_ENABLE_RAPIDFUZZ=ON` adds optional near-miss XMP/property-path scoring. Grouped candidates include `matrix_set`, `vector_set`, and `table` shapes for related non-crop metadata, including RAW black/white levels, linearization, CFA/sensor layout, source geometry, raw-storage identifiers, and source-processing buckets. Python `Document` and `TransferSourceSnapshot` mirror this as thin dictionary-returning wrappers. |
28
28
| Structured metadata interpretation records: `interpret_metadata(...)`, `interpret_metadata_query(...)`|`openmeta/metadata_interpretation.h`| Experimental | Thin structured projection over semantic query candidates. Records carry query class, semantic kind, normalized shape, confidence, source entry ids, and normalized origin/size/rect/margins/value arrays where available. Current scope covers orientation, geometry/crop/border, exposure/gain, color/white-balance, lens-correction, and RAW/source-processing records. Python `Document` and `TransferSourceSnapshot` expose matching dictionary wrappers. |
29
-
| Cross-family concept resolution: `resolve_metadata_concepts(...)`, `resolve_metadata_concept(...)`|`openmeta/metadata_concepts.h`| Experimental | First bounded resolver for duplicated host-facing concepts. Current scope reports candidates, candidate source entries, source families, preferred entries, normalized numeric/text keys, normalized date/time fields, and same-role conflicts for orientation, date/time, color/profile, and GPS evidence across EXIF, XMP, IPTC, ICC, and PNG text where applicable. GPS date/time is combined from `GPSDateStamp` plus `GPSTimeStamp` when both entries exist. It is intended for inspection UI and host policy decisions; it does not rewrite metadata or hide ambiguity. Python `Document` and `TransferSourceSnapshot` expose matching dictionary wrappers. |
29
+
| Cross-family concept resolution: `resolve_metadata_concepts(...)`, `resolve_metadata_concept(...)` | `openmeta/metadata_concepts.h` | Experimental | First bounded resolver for duplicated host-facing concepts. Current scope reports candidates, candidate source entries, source families, preferred entries, normalized numeric/text keys, normalized date/time fields, date/time precision, timezone kind, normalized geometry fields, and same-role conflicts for orientation, date/time, color/profile, GPS, and geometry evidence across EXIF, XMP, IPTC, ICC, PNG text, and query-backed interpretation records where applicable. Geometry candidates cover crop, active area, border, and sensor geometry with canonical origin, size, rect, and margin fields when available. GPS date/time is combined from `GPSDateStamp` plus `GPSTimeStamp` when both entries exist, and GPS altitude candidates expose altitude-reference code plus below-sea-level state when reference metadata is present. It is intended for inspection UI and host policy decisions; it does not rewrite metadata or hide ambiguity. Python `Document` and `TransferSourceSnapshot` expose matching dictionary wrappers. |
30
30
| Vendor RAW-processing summaries: `vendor_raw_processing_from_store(...)`, `classify_vendor_raw_processing_field(...)`|`openmeta/vendor_raw_processing.h`| Experimental | Conservative grouped source-RAW/source-processing field summaries for decoded Sony, Canon, Nikon, Fujifilm, Pentax, Panasonic, Olympus, Kodak, Minolta, Sigma, Samsung, Ricoh, Apple, DJI, Google, FLIR, Casio, Sanyo, KyoceraRaw, Reconyx, HP, JVC, GE, Motorola, Nintendo, and Microsoft MakerNotes, including vendor-private, computational, thermal, preview, face-geometry, stitch/panorama, Apple computational capture/HDR/motion, DJI pose/thermal, Google HDR+/shot-log, and FLIR radiometric/raw-value buckets. Intended for audit/UI and rendered-transfer safety decisions, not for writing vendor RAW/source-processing values into rendered targets. |
31
31
| Transfer safety audit: `transfer_safety_audit_from_store(...)`|`openmeta/metadata_transfer.h`| Experimental | Preflight summary of source entries and entries filtered or invalidated by `TransferSafetyMode`, including Sony/Canon/Nikon/Fujifilm/Pentax/Panasonic/Olympus/Kodak/Minolta/Sigma/Samsung/Ricoh/Apple/DJI/Google/FLIR/Casio/Sanyo/KyoceraRaw/Reconyx/HP/JVC/GE/Motorola/Nintendo/Microsoft RAW/source-processing buckets. Intended for diagnostics and host UI before preparing rendered-image transfers. |
32
32
| Raw-carrier passthrough audit: `raw_carrier_passthrough_audit_from_snapshot(...)`|`openmeta/metadata_transfer.h`| Experimental | Diagnostic preflight for opt-in raw carriers. Reports candidate carriers and primary block reasons such as missing payload, target incompatibility, safety filtering, content-bound C2PA, explicit profile policy, missing decoded-entry links, or unsupported carrier kind. Hosts can call it directly before enabling snapshot passthrough. |
Copy file name to clipboardExpand all lines: docs/interpretation_status.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ explicit outcome:
40
40
| Vendor MakerNotes | Broad MakerNote naming and source-processing classification exists for common vendors and several live computational/thermal vendors. Unknown entries remain lossless and source-private subgroups distinguish preview, face geometry, computational, thermal, and stitch/panorama data. | Medium-high, about 75-85%. | ExifTool-style long-tail print conversions, encrypted/custom settings, and per-model private tables. |
41
41
| BMFF item graph, HEIF/AVIF/CR3, JUMBF, and C2PA | BMFF derived fields, item-info rows, bounded relations, primary-linked roles, aux semantics, and draft C2PA/JUMBF structural fields are exposed. | Medium, about 60-70%. | Full BMFF scene modeling and full C2PA manifest/policy semantics. |
42
42
| Photoshop IRB | Raw resources are preserved and a bounded interpreted subset is decoded for fixed-layout resources. | Medium, about 60-70%. | Broader resource-specific interpretation. |
43
-
| Semantic query/search and records | Query helpers expose raw matches, confidence, provenance, value shapes, normalized candidates, canonical crop/active-area rectangles, border margins, source-processing buckets, optional RapidFuzz near-miss matching, structured interpretation records, and first bounded cross-family concept resolution for orientation, date/time, color/profile, and GPS with parsed date/time fields and combined GPS timestamps. | Medium, about 52-60%. | More canonical shapes, deeper GPS/date normalization, and richer per-record host policy hints. |
43
+
| Semantic query/search and records | Query helpers expose raw matches, confidence, provenance, value shapes, normalized candidates, canonical crop/active-area rectangles, border margins, source-processing buckets, optional RapidFuzz near-miss matching, structured interpretation records, and first bounded cross-family concept resolution for orientation, date/time, color/profile, GPS, and geometry with parsed date/time fields, timezone/precision classification, combined GPS timestamps, GPS altitude-reference state, and canonical geometry origin/size/rect/margins. | Medium, about 58-65%. | More canonical shapes for color/lens/RAW-processing records, richer GPS coordinate/reference policy, and richer per-record host policy hints. |
44
44
| Transfer-safety classification | Compatible-file versus rendered-image safety policies classify source-specific image geometry, color/profile, RAW-processing, MakerNote, JUMBF/C2PA, and vendor-private data. | High, about 85-90%. | More user-facing diagnostics and additional per-family policy tests. |
45
45
46
46
## Competitor Position
@@ -58,10 +58,11 @@ outputs.
58
58
## Next Interpretation Priorities
59
59
60
60
1. Expand cross-family concept resolution beyond the current orientation,
61
-
date/time, color/profile, and GPS pass, especially richer timezone, GPS
62
-
altitude/reference, and host policy hints.
63
-
2. Add more canonical record shapes for vendor geometry, color, lens
64
-
correction, and RAW-processing groups.
61
+
date/time, color/profile, GPS, and geometry pass, especially richer GPS
62
+
coordinate validation, altitude unit/reference policy, and host policy
63
+
hints.
64
+
2. Add more canonical record shapes for vendor color, lens correction, and
65
+
RAW-processing groups.
65
66
3. Expand MakerNote meaning depth in vendor order: Nikon, Canon, Sony,
66
67
Fujifilm, Phase One/Leaf, then remaining active vendors.
67
68
4. Deepen BMFF/CR3/HEIF/AVIF item graph semantics only where hosts can use the
0 commit comments