AIS Maritime Positions — Ontology Crosswalk
Schema: pending (AXC-9 — schemas/ais-maritime/v1.0.md)
Target standards: IHO S-100 (data model), IMO Resolution A.600(15) (vessel identity), ITU-R M.1371 (AIS message format), DCAT-US v3.0 (dataset-level)
Authority: International Hydrographic Organization (IHO), International Maritime Organization (IMO), ITU
Status: FAIR-aligned, S-100 extension documented
Dataset SPDX license: CC-BY-SA-4.0 (research tier reflects AIS data pooling conventions) · proprietary commercial license for paid tiers
1. Why S-100 + IMO A.600
S-100 is the IHO's universal hydrographic data model (replacing the S-57 ENC standard). Every modern ECDIS, port authority, and maritime analytics platform is moving onto S-100 through 2026–2028. IMO Resolution A.600(15) defines the IMO identification number — the permanent vessel identity that survives ownership, flag, and name changes. Together they give a Codex-emitted AIS dataset two critical attributes: compatibility with institutional maritime tooling and identity stability across the vessel lifecycle.
ITU-R M.1371 is the underlying AIS message protocol (message types 1/2/3/5/18/19/24). Codex respects the standard's field semantics without re-serializing to NMEA; we expose the already-decoded values.
2. Dataset-level (DCAT-US v3.0)
| DCAT-US field |
Value |
dct:identifier |
urn:axiom:codex:dataset:ais-maritime:v1.0.0 |
dct:title |
"Axiom AIS Maritime Positions Dataset" |
dct:description |
"Normalized AIS position and voyage data enriched with vessel identity, behavior signals, and port-event linkage." |
dcat:keyword |
["ais", "maritime", "vessel", "imo", "mmsi", "port", "navigation", "tracking"] |
dcat:theme |
["http://publications.europa.eu/resource/authority/data-theme/TRAN"] |
dct:accessRights |
tiered |
dct:license |
CC-BY-SA-4.0 (research) |
3. Record-level crosswalk
3.1 Vessel identity → IMO A.600 + ITU-R M.1371
| Codex field |
Target |
Target field |
imo |
IMO A.600(15) |
IMO Number (7-digit) — primary key per standard |
mmsi |
ITU-R M.1371 |
Maritime Mobile Service Identity (9-digit) |
vessel_name |
ITU-R M.1371 msg 5 |
Name (max 20 ASCII chars) |
call_sign |
ITU-R M.1371 msg 5 |
Call Sign (max 7 chars) |
flag_state |
IMO A.600 / ISO 3166-1 |
ISO-3 country code |
vessel_type |
ITU-R M.1371 |
Type of Ship and Cargo Type (0–99 codes) — Codex also emits human-readable enum |
dwt |
IMO |
Deadweight tonnage in metric tonnes |
length_oa · beam · draught |
IMO |
All in meters |
3.2 Position & kinematics → S-100 / ITU-R M.1371
| Codex field |
Target |
lat / lng |
S-100 Position feature · ITU-R M.1371 msg 1/2/3 |
speed |
ITU-R M.1371 Speed Over Ground (0.1 kn resolution) |
course |
ITU-R M.1371 Course Over Ground (0.1° resolution) |
heading |
ITU-R M.1371 True Heading (1° resolution) |
nav_status |
ITU-R M.1371 |
timestamp |
S-100 |
rot (rate-of-turn) |
ITU-R M.1371 |
3.3 Codex extensions (no S-100 slot)
| Codex field |
Exposed as |
behavior_anomaly_flag (bool) |
axiom:behaviorAnomaly |
port_event_id |
axiom:portEventId (links to Events Timeline) |
enrichment_id |
axiom:enrichmentId (out-of-band vessel-registry payload) |
beneficial_owner_urn |
axiom:beneficialOwnerUrn (entity-resolution link) |
sanctioned_owner (bool) |
axiom:sanctionedOwner |
h3_index |
axiom:h3Index — Codex res-8 spatial key |
Additional Codex-extension fields (vessel behavior signatures, anomaly
classification, enrichment provenance) are documented in the commercial
schema spec.
3.4 APRS envelope → standard provenance terms
| Codex field |
Target |
record_id |
dct:identifier + prov:Entity IRI |
source_uri |
dcat:accessURL |
source_system |
prov:wasGeneratedBy (= ingest agent IRI) |
ingested_at / modified_at |
prov:generatedAtTime / dct:modified |
confidence_score |
axiom:confidence |
4. Deviations from standards
- AIS positions are compressed at ingest to 1-per-minute vessel-wise (configurable per tier). S-100 assumes raw stream; Codex publishes both the raw ITU-coded positions and the compressed view.
nav_status is decoded — we emit the human-readable label AND the numeric code. ITU-R M.1371 strictly requires the numeric code on the wire; consumers of our JSON-LD distribution get both.
- Vessel type — Codex emits ITU-coded type (0–99) but augments with a 6-category enum (
container, tanker_crude, tanker_product, bulker, fishing, other) for downstream analytics ergonomics.
- Vessel-registry enrichment is out-of-band w.r.t. S-100 / AIS. It's treated as a separate
prov:Activity that generates a linked prov:Entity (the enrichment payload).
5. FAIR compliance
| Principle |
Status |
| Findable |
✅ (DCAT-US + IMO number lookup) |
| Accessible |
✅ (Parquet + NDJSON over HTTPS, MCP) |
| Interoperable |
✅ (S-100 / ITU-R M.1371 / IMO A.600 aligned) |
| Reusable |
✅ (CC-BY-SA-4.0, versioned schemas) |
S-100 conformance: Position + Vessel features at Profile level 2 (feature-type catalog + attribute bindings). Full S-100 Portrayal Catalog (PC) is out of scope — Codex is a data product, not an ECDIS.
6. Changelog
- v1.0 (2026-04-16) — Initial crosswalk. AXC-9 schema spec pending; this doc will be revisited when that ships.