open-standards/openpay/vocab/v1.ttl
Transaction Science 2354fd9a96 vocab v1 across sister standards: arl + openpay + smart-byte + eoc + wai + joule-code (wave-23 #3)
Carries the third-generation-interop pattern shipped at
jouleclaw/vocab/v1 across every TX Science open standard. Every
sister standard now has a stable IRI for every wire field of
every major data type, plus a Turtle ontology covering classes,
enumerations, and properties.

What ships, per standard:

  arl/vocab/         Claim, Session, Evaluation, Attestation;
                     the four axes (Validation Depth 1–9,
                     Convergence A–E, EnergyProfile, S0–S4);
                     ARL-S isolation tiers 0–3.

  openpay/vocab/     Money, Currency, PaymentMethod, Receipt,
                     Refund, Dispute; the five rails (FedNow / PIX
                     / SEPA Instant / USDC / USDT); the four card
                     schemes; the seven lifecycle states.

  smart-byte/vocab/  Byte, Envelope, Issuer, Holder, KERI AID,
                     LockstepEvent; the cargo-class taxonomy
                     (Value / Coding / Identity / Telemetry /
                     Custom) and the shared HwShunt / ModelBased /
                     Estimator energy-provenance enum.

  eoc/vocab/         Query, Resolution, EOC Receipt, the four
                     cascade stages (Cache / KeyValue / Graph /
                     Neural), CarbonRecord, VendorAPI binding.

  wai/vocab/         Manifest, Capability, Codec; the two paths
                     (NeuralPath shared-prior + ZerothPath
                     registered codec menu); the six modalities;
                     the nine codecs in the v1 menu.

  joule-code/vocab/  README.md complements the LEXICON.md / v1.jsonld
                     / v1.ttl already shipped in b838b86.

Every JSON-LD `@context` pairs with a Turtle ontology. Every
ontology subclasses W3C PROV-O where the alignment is exact
(prov:Activity for sessions / resolutions / lockstep events,
prov:Entity for source trees, prov:Agent for issuers / agents).

Pattern is identical to jouleclaw/vocab/v1 so a downstream
consumer that already loads one vocabulary picks up the others
with no new code: same namespace shape, same JSON-LD context
binding, same Turtle conventions.

Standards documents stay unchanged on the wire: vocabularies are
optional additions, not modifications. A receipt or claim that
doesn't carry `@context` deserialises exactly as before; one that
does gains typed RDF semantics for free.

Licences match each standard's spec text — CC-BY-4.0 for ARL,
Smart Byte, EOC, joule-code; Apache-2.0 for OpenPay, WAI.

Deploy follow-up: extending the Caddyfile @-blocks of arl /
openpay / byte / eoc / wai / joulecode sites to serve `.jsonld`
files as `application/ld+json` is a separate small change. Until
then the vocab is reachable via the GitHub raw URL.
2026-06-02 14:16:58 -04:00

79 lines
5.5 KiB
Turtle

@prefix op: <https://openpay.transaction.science/vocab/v1#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dc: <http://purl.org/dc/terms/> .
<https://openpay.transaction.science/vocab/v1> a owl:Ontology ;
dc:title "OpenPay vocabulary (v1)" ;
dc:description "Stable IRIs for the OpenPay payment-acceptance standard: Money, PaymentMethod, Receipt, Refund, Dispute, and the card / A2A / stablecoin rails." ;
dc:license <https://www.apache.org/licenses/LICENSE-2.0> ;
owl:versionInfo "1" .
# ─── Top-level classes ───────────────────────────────────────────────
op:Money a owl:Class ; rdfs:label "Money" ; rdfs:comment "A signed integer in minor units paired with a Currency." .
op:Currency a owl:Class ; rdfs:label "Currency (ISO 4217)" .
op:PaymentMethod a owl:Class ; rdfs:label "Payment method" .
op:Receipt a owl:Class ; rdfs:label "Payment receipt" .
op:Refund a owl:Class ; rdfs:label "Refund" .
op:Dispute a owl:Class ; rdfs:label "Dispute / chargeback" .
op:Authorization a owl:Class ; rdfs:label "Authorization step" .
op:Capture a owl:Class ; rdfs:label "Capture step" .
op:Void a owl:Class ; rdfs:label "Void step" .
op:Settlement a owl:Class ; rdfs:label "Settlement record" .
op:Driver a owl:Class ; rdfs:label "Rail driver" .
op:Idempotency a owl:Class ; rdfs:label "Idempotency record" .
op:Rail a owl:Class ; rdfs:label "Payment rail" .
op:Card a op:PaymentMethod ; rdfs:label "Card payment method" .
op:A2A a op:PaymentMethod ; rdfs:label "Account-to-account payment method" .
op:Stablecoin a op:PaymentMethod ; rdfs:label "Stablecoin payment method" .
op:Wallet a op:PaymentMethod ; rdfs:label "Wallet-of-record payment method" .
op:EMV a op:PaymentMethod ; rdfs:label "EMV present-card payment method" .
# Rails
op:FedNow a op:Rail ; rdfs:label "FedNow (USD instant)" .
op:PIX a op:Rail ; rdfs:label "PIX (BRL instant)" .
op:SEPAInstant a op:Rail ; rdfs:label "SEPA Instant Credit Transfer" .
op:USDC a op:Rail ; rdfs:label "USDC stablecoin" .
op:USDT a op:Rail ; rdfs:label "USDT stablecoin" .
# Card schemes
op:Scheme a owl:Class ; rdfs:label "Card scheme" .
op:Visa a op:Scheme ; rdfs:label "Visa" .
op:Mastercard a op:Scheme ; rdfs:label "Mastercard" .
op:Amex a op:Scheme ; rdfs:label "American Express" .
op:Discover a op:Scheme ; rdfs:label "Discover" .
# Receipt lifecycle states
op:LifecycleStatus a owl:Class ; rdfs:label "Receipt lifecycle status" .
op:Authorized a op:LifecycleStatus ; rdfs:label "Authorized" .
op:Captured a op:LifecycleStatus ; rdfs:label "Captured" .
op:Settled a op:LifecycleStatus ; rdfs:label "Settled" .
op:Refunded a op:LifecycleStatus ; rdfs:label "Refunded" .
op:Voided a op:LifecycleStatus ; rdfs:label "Voided" .
op:Disputed a op:LifecycleStatus ; rdfs:label "Disputed" .
op:Failed a op:LifecycleStatus ; rdfs:label "Failed" .
# ─── Properties ──────────────────────────────────────────────────────
op:amountMinorUnits a owl:DatatypeProperty ; rdfs:domain op:Money ; rdfs:range xsd:integer ; rdfs:label "Amount in minor units (signed)" .
op:currency a owl:ObjectProperty ; rdfs:domain op:Money ; rdfs:range op:Currency ; rdfs:label "Currency (ISO 4217)" .
op:method a owl:ObjectProperty ; rdfs:domain op:Receipt ; rdfs:range op:PaymentMethod ; rdfs:label "Payment method used" .
op:rail a owl:ObjectProperty ; rdfs:domain op:Receipt ; rdfs:range op:Rail ; rdfs:label "Rail used" .
op:driverId a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Driver id (stable across deployments)" .
op:idempotencyKey a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Idempotency key" .
op:authorizedAt a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; rdfs:label "Authorized at (RFC 3339)" .
op:capturedAt a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; rdfs:label "Captured at (RFC 3339)" .
op:settledAt a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; rdfs:label "Settled at (RFC 3339)" .
op:refundedAt a owl:DatatypeProperty ; rdfs:range xsd:dateTime ; rdfs:label "Refunded at (RFC 3339)" .
op:merchantId a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Merchant id" .
op:customerId a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Customer id" .
op:vaultRef a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Vault reference (PAN never present)" .
op:walletRef a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "Wallet reference" .
op:scheme a owl:ObjectProperty ; rdfs:domain op:Card ; rdfs:range op:Scheme ; rdfs:label "Card scheme" .
op:status a owl:ObjectProperty ; rdfs:domain op:Receipt ; rdfs:range op:LifecycleStatus ; rdfs:label "Lifecycle status" .
op:iso20022Doc a owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "ISO 20022 document reference (PACS.008 / PAIN.001 / CAMT.054)" .
op:fraudScore a owl:DatatypeProperty ; rdfs:range xsd:double ; rdfs:label "Fraud score (0..1)" .