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.
79 lines
5.5 KiB
Turtle
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)" .
|