Skyocean Ontology

Structured vocabulary for agricultural commodities trading and humanitarian donation programs in decentralized knowledge graphs.

Base URI: https://skyocean.io/ontology/

Turtle JSON-LD

Introduction

Specialized vocabulary for global trade of agricultural commodities and traceable humanitarian donation programs: transparency, traceability, and financing. Enables semantic interoperability between ERP, DKG, and blockchain.

  • Trade transactions and lifecycle stages
  • Agricultural commodities and specifications
  • Trade parties and roles
  • Documents and verification status
  • Financing and payment processes
  • Donation campaigns, contributions, and distribution tracking

Compatible with OriginTrail DKG v8 and public/private assertion separation.

Core Classes

skyocean:Trade

Complete trade transaction between parties. Subclass: skyocean:CommodityTrade.

Details

skyocean:Commodity

Physical goods traded, including specifications and certifications.

Details

skyocean:TradeParty

Entities in a trade (buyer, seller, consignee, etc.).

Details

skyocean:Document

Trade-related documentation and verification status.

Details

skyocean:BlockchainTransaction

Records of trade events on the blockchain.

skyocean:FinancingRecord

Trade financing arrangements and token positions.

Verification & Convergence

Added v2.1.0 — the richer classification of payment signal sources and institutional attestations lives here in the DKG, keeping the on-chain contract minimal.

skyocean:InstitutionalAttestation

An independent observation by an operational institution (port, customs, inspection, carrier, condition monitor, payment rail, financial institution, or human verifier) about a trade event.

skyocean:PaymentSource

A record of a signal confirming payment occurred — mobile money, national switch, regional settlement, SWIFT, LC, CAD, on-chain escrow, or human-attested. Subclass of InstitutionalAttestation.

skyocean:ConvergenceRecord

The aggregate cross-validated state of a trade, built from the convergence of independent institutional attestations. Carries the computed verification strength.

Insurance & Cargo Incident v2.1.1

Added v2.1.1 — cargo insurance is a first-class element of every trade. The audit trail follows a damaged-cargo scenario from incident → surveyor attestation → claim filing → claim approval → payout.

skyocean:InsurancePolicy

A cargo or marine insurance policy bound to one or more trades. Subclass of Document. Carries policy number, insurer, coverage type, sum insured, deductible, effective and expiry dates.

skyocean:CargoIncident

An event affecting cargo that may trigger an insurance claim — damage, loss, theft, contamination, delay, casualty. Captures location, date, affected quantity, loss extent, and the surveyor attestation that grounds it.

skyocean:InsuranceClaim

A formal claim filed against an InsurancePolicy in respect of a CargoIncident. Carries claim status, claimed amount, payout amount and date, with references to both the policy and the incident.

Logistics & Trade Extensions v2.1.2

Added v2.1.2 — logistics record, trade-level extensions (shipper, corridor, funding-branch, payment-trigger), on-chain anchoring, financing extensions, private-layer wrappers, and the trade: sub-namespace. Semantics align with GS1 / DCSA where applicable; canonical mapping reserved for a future major version.

skyocean:LogisticsRecord

A summary of the logistics for a shipping leg — vessel, voyage, carrier, loading / discharge ports, BL number, container count and type. Attaches to a Trade via skyocean:logistics.

skyocean:PublicTradeOverview

A typeable marker class indicating that a Trade KA is published as a public-overview assertion (paired with a private TradePrivateData KA). Used as a secondary @type alongside CommodityTrade.

trade: sub-namespace

High-level commodity attributes (trade:quantity, trade:origin, trade:destination) and timeline dates (trade:expectedShipmentDate, trade:expectedArrivalDate, trade:expectedSettlementDate, trade:originatedAt) under https://skyocean.io/ontology/trade/.

Donation Classes

Extension namespace: https://skyocean.io/ontology/donation/

donation:DonationCampaign

A bounded humanitarian-aid campaign with a packing list, target amount, and delivery timeline. Anchored by a backend-issued donation:campaignId; funding sources (wallets and/or bank accounts) are attached to the campaign rather than acting as its anchor.

donation:DonationContribution

A single donor contribution to a campaign, via stablecoin or bank transfer. Links to the campaign KA.

donation:DonationDistribution

A delivery event recording kits distributed to beneficiaries, verified by state officials on the ground.

donation:DonationCampaignPrivate

Private assertion data for a campaign: supplier details, distribution plan, bank account, and access permissions.

donation:SupplyChainSignal

Real-time signals from IoT sensors, partner confirmations, or field reports linked to a campaign.

donation:DonationKit

Specification of a kit's contents — food, medicine, prevention items — with quantities and sourcing details.

Document-Level Enrichment v2.1.3

Added v2.1.3 — six new classes for granular operational signals (vessel position, production plot, cold-chain logging, donation aggregate receipt, distribution observation, last-mile acknowledgment) plus ~20 new properties used in the private layer of Document KAs (logistics, treatment, EDIFACT, SWIFT, insurance, EUDR, cold-chain, donation aggregation).

skyocean:VesselPosition

A point-in-time vessel position read (lat/lon/SOG/COG, timestamp, source AIS/SafeSeaNet). Series-style attestation produced by carrier or condition monitor; aggregated into the in-transit verification feed.

skyocean:ProductionPlot

EUDR plot record — geometry (WKT polygon or GeoJSON), country of production, deforestation-cut-off date, and sourcing-location reference. Attaches to a Document KA carrying the EUDR Due Diligence Statement.

skyocean:ColdChainLog

Continuous cold-chain telemetry — sensor reference, temperature range, deviation events, container/voyage scope. Used by donation campaigns shipping cold-chain medicines and by perishable trade corridors.

donation:DonorAggregateReceipt

Aggregated record of donor contributions for a campaign or wave — total amount, contributor count, channel mix (stablecoin / SEPA / SWIFT). Public-tier counts only; per-donor identities live in private contribution KAs.

donation:DistributionObservation

Independent observer's record of a distribution event (location, date, kit count handed out, observer DID, attestation hash). Pairs with a donation:DonationDistribution KA for verification.

donation:LastMileAcknowledgment

Last-mile recipient acknowledgment — distributor DID, recipient role (community lead / clinic / school), kit count, optional digital signature. Closes the loop on supply-chain visibility.

v2.1.3 Property Additions

New properties surfaced on Document KAs, organized by domain. Most live in the document's private assertion (auth-token-gated); a few are public-tier (issuer DID, attestor role, document number, doc type).

CategoryProperties
LogisticscontainerNumber, sealNumber, imoNumber, mmsiNumber, vesselName, bookingReference, grossWeight, netWeight
Treatment & InspectiontreatmentMethod, samplingMethod, qualityParameters, lotReference, hsCode
EDIFACTedifactMessageType, edifactStatus
SWIFTswiftUETR, senderReference, beneficiaryReference
InsuranceinsuredValue, premiumAmount
EUDRvia skyocean:ProductionPlot (plot geometry, country of production, deforestation cut-off date)
Cold-Chainvia skyocean:ColdChainLog (sensor reference, temperature range, deviation events)
Donationsvia donation:DonorAggregateReceipt, donation:DistributionObservation, donation:LastMileAcknowledgment

Key Properties

PropertyDomainRangeDescription
skyocean:tradeStatusTradexsd:stringTrade transaction status
skyocean:financingStatusTradexsd:stringFinancing status
skyocean:documentStatusDocumentxsd:stringDocument status
skyocean:verificationStatusDocumentxsd:stringVerification status
skyocean:roleTradePartyxsd:stringEntity role
skyocean:walletAddressTradePartyxsd:stringBlockchain wallet
skyocean:financierProfitRateFinancingRecordxsd:decimalFinancier profit rate
Verification & Convergence Properties (v2.1.0)
skyocean:attestorTypeInstitutionalAttestationxsd:stringCategory of institution (PortAuthority, CustomsAuthority, InspectionAgency, Carrier, ConditionMonitor, PaymentRail, FinancialInstitution, Human)
skyocean:attestorIdentityInstitutionalAttestationxsd:stringName of the specific attesting institution
skyocean:attestationTypeInstitutionalAttestationxsd:stringNature of the observation (VesselCall, CargoHandling, CustomsClearance, QualityInspection, ConditionReading, Departure, PaymentConfirmation)
skyocean:attestationTimestampInstitutionalAttestationxsd:dateTimeTime of the observation
skyocean:attestationSignatureInstitutionalAttestationxsd:stringIntegrity hash or signature of the payload
skyocean:tradeRefInstitutionalAttestationxsd:anyURILink to the Trade KA this attestation feeds
skyocean:sourceTypePaymentSourcexsd:stringMobileMoney, NationalSwitch, RegionalSettlement, SWIFT, LetterOfCredit, CashAgainstDocuments, OnChainEscrow, HumanAttested
skyocean:sourceProviderPaymentSourcexsd:stringSpecific rail or network (MTN MoMo, GhIPSS, PAPSS, etc.)
skyocean:confirmationReferencePaymentSourcexsd:stringExternal txn ID or reference
skyocean:confirmedAmountPaymentSourceschema:MonetaryAmountSettled amount as reported by the source
skyocean:attestationCountConvergenceRecordxsd:integerTotal attestations linked to the trade
skyocean:independentAttestorCountConvergenceRecordxsd:integerDistinct attesting institutions
skyocean:verificationStrengthConvergenceRecordxsd:decimalComputed score (0.0–1.0)
skyocean:consensusStatusConvergenceRecordxsd:stringInsufficient, Partial, Strong, Full
Donation Properties (donation: namespace, v2.1.0)
donation:campaignIdDonationCampaignxsd:stringCanonical anchor — backend-issued campaign ID (e.g. CMP-2026-SUD-001)
donation:statusDonationCampaignxsd:stringCampaign status (Active, Funded, Procuring, Shipping, Delivered)
donation:targetAmountDonationCampaignschema:MonetaryAmountFunding goal for the campaign
donation:currentAmountDonationCampaignschema:MonetaryAmountCurrent funds received
donation:fundingSourceDonationCampaignskyocean:PaymentSourceOne or more funding sources — wallet(s) and/or bank account(s) (Revolut, SEPA, SWIFT, stablecoin)
donation:campaignWalletDonationCampaignxsd:stringOptional. EVM wallet address — one possible funding source, never the anchor
donation:consignedToDonationCampaignskyocean:PartySkyocean in-region entity (e.g. Skyocean Sudan) that receives the goods on consignment
donation:packingListDonationCampaigndonation:DonationKitCampaign packing list (kits, quantities, specs) — analog to trade agreement in core flow
donation:costSummaryDonationCampaignschema:MonetaryAmountPublic. Top-level cost summary (kits vs operations)
donation:operationalCostBreakdownDonationCampaignPrivateschema:MonetaryAmountPrivate. Detailed ops breakdown (freight, customs, insurance, last-mile, platform)
donation:contributorCountDonationCampaignxsd:integerNumber of contributors
donation:targetBeneficiariesDonationCampaignxsd:integerTarget number of families served
donation:regionDonationCampaignxsd:stringTarget distribution region
donation:campaignRefDonationContribution, DonationDistribution, SupplyChainSignalxsd:stringReference to parent campaign by donation:campaignId (and optionally KA UAL)
donation:methodDonationContributionxsd:stringPayment rail (stablecoin, revolut, sepa, swift)
donation:paymentSourceDonationContributionskyocean:PaymentSourceRail-specific payment record (provider, reference, institutional flag)
donation:onChainTxHashDonationContributionxsd:stringOn-chain transaction hash
donation:kycRefDonationContributionxsd:stringKYC attestation reference — required for every contribution (no anonymous donations)
donation:deliveryStatusDonationDistributionxsd:stringPublic. Delivered / partially-delivered / not-delivered + recipient category
donation:familiesServedDonationDistributionxsd:integerPrivate. Number of families who received kits
donation:kitsDistributedDonationDistributionxsd:integerPrivate. Number of kits delivered
donation:verifiedByDonationDistributionskyocean:PartyState official, NGO or partner witness
donation:attestationRefDonationDistributionskyocean:InstitutionalAttestationReference to an independent institutional attestation feeding the convergence evaluator
donation:signalTypeSupplyChainSignalxsd:stringSignal type (contribution, procurement, shipment, customs, handover, distribution)

Vocabulary Terms

Transaction Status

  • Pending Initial
  • PendingFinancing Awaiting financier
  • FinancingSecured Finance complete
  • DocumentsSubmitted Awaiting verification
  • DocumentsVerified Awaiting payment
  • PaymentConfirmed Payment received
  • TokensReleased Financier paid
  • Completed Final

Document Status

  • Pending Not submitted
  • Submitted Awaiting verification
  • Verified Approved
  • Rejected Failed
  • Expired Time exceeded

Financing Status

  • NotStarted Initial
  • InProgress Underway
  • Completed Obtained
  • Failed Not secured

Payment Source Types v2.1.0

Values for skyocean:sourceType. The on-chain contract only knows CAD / LetterOfCredit / OnChainEscrow; this richer set lives in the DKG.

  • MobileMoney MTN MoMo, M-Pesa, Orange Money, Wave
  • NationalSwitch GhIPSS, NIBSS, UPI
  • RegionalSettlement PAPSS, SEPA Instant
  • SWIFT Wire / MT103
  • LetterOfCredit LC / documentary
  • CashAgainstDocuments CAD
  • OnChainEscrow Stablecoin
  • HumanAttested Operator confirmation

Attestor Types v2.1.0

Values for skyocean:attestorType. Each attestation comes from one of these categories.

  • PortAuthority Vessel call, gate events
  • CustomsAuthority Clearance, declaration
  • InspectionAgency SGS, Cotecna, Bureau Veritas
  • Carrier Shipping line, freight forwarder
  • ConditionMonitor IoT, temperature, GPS
  • PaymentRail MoMo, switch, settlement
  • FinancialInstitution Bank, LC issuer
  • Human Operator / field verifier

Consensus Status v2.1.0

Values for skyocean:consensusStatus. Derived from verificationStrength and the mix of independent attestors.

  • Insufficient < threshold
  • Partial Some corroboration
  • Strong Multiple independents agree
  • Full All expected attestors present

Attestation Types v2.1.0 extended v2.1.1

Values for skyocean:attestationType.

  • VesselCall
  • CargoHandling
  • CustomsClearance
  • QualityInspection
  • ConditionReading
  • Departure
  • PaymentConfirmation
  • IncidentReport v2.1.1
  • ClaimDecision v2.1.1
  • ComplianceVerification v2.1.1

Donation Campaign Status

  • Active Accepting contributions
  • Funded Target reached
  • Procuring Kits being sourced
  • Shipping In transit
  • Delivered Final
  • Cancelled Cancelled

Donation Signal Types

  • IoT-Temperature Container sensor
  • IoT-GPS Location tracking
  • PartnerConfirmation Port, customs, logistics
  • FieldReport Distribution evidence
  • Verification Third-party audit

Usage Example

Basic Trade Knowledge Asset

"@context": {
  "schema": "http://schema.org/",
  "skyocean": "https://skyocean.io/ontology/",
  "xsd": "http://www.w3.org/2001/XMLSchema#"
},
"@id": "urn:skyocean:trade:PO-12345678",
"@type": ["skyocean:Trade", "skyocean:CommodityTrade"],
"schema:identifier": "PO-12345678",
"schema:name": "Soybean Shipment PO-12345678",
"skyocean:tradeStatus": "Pending",
"skyocean:financingStatus": "NotStarted"
}

Payment Source Knowledge Asset v2.1.0

"@context": {
  "schema": "http://schema.org/",
  "skyocean": "https://skyocean.io/ontology/"
},
"@id": "urn:skyocean:paymentsource:MOMO-2026-0042",
"@type": ["skyocean:PaymentSource", "skyocean:InstitutionalAttestation"],
"skyocean:tradeRef": "urn:skyocean:trade:PO-12345678",
"skyocean:attestorType": "PaymentRail",
"skyocean:attestorIdentity": "MTN MoMo Ghana",
"skyocean:attestationType": "PaymentConfirmation",
"skyocean:sourceType": "MobileMoney",
"skyocean:sourceProvider": "MTN MoMo",
"skyocean:confirmationReference": "MOMO-TXN-8846201",
"skyocean:confirmedAmount": { "schema:value": 185000, "schema:currency": "USD" },
"skyocean:attestationTimestamp": "2026-04-02T09:00:00Z"
}

Donation Campaign Knowledge Asset

"@context": {
  "schema": "http://schema.org/",
  "skyocean": "https://skyocean.io/ontology/",
  "donation": "https://skyocean.io/ontology/donation/"
},
"@id": "urn:skyocean:donation:CMP-2026-SUD-001",
"@type": ["donation:DonationCampaign"],
"donation:campaignId": "CMP-2026-SUD-001",
"schema:name": "Sudan Relief — Food & Medicine Kits (Batch 001)",
"donation:status": "Active",
"donation:targetAmount": { "schema:value": 100000, "schema:currency": "EUR" },
"donation:currentAmount": { "schema:value": 47500, "schema:currency": "EUR" },
"donation:consignedTo": "Skyocean Sudan",
"donation:fundingSource": [
  { "skyocean:rail": "stablecoin", "skyocean:provider": "Polygon", "skyocean:reference": "0xabc...def" },
  { "skyocean:rail": "sepa",       "skyocean:provider": "Revolut",  "skyocean:reference": "LT00 0000 0000 0000 0001" }
],
"donation:costSummary": [
  { "schema:name": "Kits",       "schema:value": 75000, "schema:currency": "EUR" },
  { "schema:name": "Operations", "schema:value": 25000, "schema:currency": "EUR" }
],
"donation:contributorCount": 38,
"donation:targetBeneficiaries": 500,
"donation:region": "Khartoum State, Sudan"
}