@prefix : <https://ontology.inferal.com/modules/commerce-margin-evidence/> .
@prefix ctx: <https://ontology.inferal.com/modules/commerce-transaction/> .
@prefix adm: <https://ontology.inferal.com/modules/advertising-measurement/> .
@prefix cmi: <https://ontology.inferal.com/modules/commercial-intelligence/> .
@prefix rng: <https://ontology.inferal.com/modules/range/> .
@prefix time: <http://www.w3.org/2006/time#> .
@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 dcterms: <http://purl.org/dc/terms/> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix pubacc: <https://ontology.inferal.com/modules/publication-access/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
: a owl:Ontology, pubacc:PublicationManagedOntology ; dcterms:accessRights pubacc:PublicAccess ;
 dcterms:title "Commerce Margin Evidence Ontology" ; dcterms:description "Source-qualified known-comparable whole-line gross margin and independent coverage." ;
 dcterms:license <https://creativecommons.org/licenses/by/4.0/> ; owl:versionInfo "0.1.0" ; mod:status "draft" ;
 vann:preferredNamespacePrefix "cme" ; vann:preferredNamespaceUri "https://ontology.inferal.com/modules/commerce-margin-evidence/" ;
 owl:imports ctx:, adm:, rng:, cmi:, <http://www.w3.org/ns/prov-o> ;
 rdfs:comment "Caller-declared selections and policies bind interpretations of captured source records; unknown evidence remains visible." .
:Cohort a rdfs:Class ; rdfs:label "Cohort" ; rdfs:comment "Caller-declared merchant selection over one captured asserted source; not independently verified completeness." ; rdfs:subClassOf prov:Entity .
:EligibilityPolicy a rdfs:Class ; rdfs:label "EligibilityPolicy" ; rdfs:comment "Explicit source-supported accounting eligibility, currency support and signed-value declarations." ; rdfs:subClassOf prov:Entity .
:OrderAssessment a rdfs:Class ; rdfs:label "OrderAssessment" ; rdfs:comment "Interpretation of one selected source order record in one cohort and package." ; rdfs:subClassOf prov:Entity .
:LineAssessment a rdfs:Class ; rdfs:label "LineAssessment" ; rdfs:comment "Interpretation of one captured source line candidate, preserving independent owner, money and product standings." ; rdfs:subClassOf prov:Entity .
:ExecutionContext a rdfs:Class ; rdfs:label "ExecutionContext" ; rdfs:comment "Generated package and source bindings for graph-qualified interpretation." .
:TermBinding a rdfs:Class ; rdfs:label "TermBinding" ; rdfs:comment "Private generic source-graph-qualified RDF resource transport key." .
:Standing a rdfs:Class ; rdfs:label "Standing" ; rdfs:comment "An evidence standing or eligibility outcome within the declared selected-source interpretation." .
:merchantScope a rdf:Property ; rdfs:label "merchantScope" ; rdfs:comment "Caller-declared merchant context; not canonical merchant identity." ; rdfs:domain :Cohort ; rdfs:range rdfs:Resource .
:selectedOrder a rdf:Property ; rdfs:label "selectedOrder" ; rdfs:comment "Explicit named captured order handle selected for this cohort." ; rdfs:domain :Cohort ; rdfs:range ctx:Order .
:policy a rdf:Property ; rdfs:label "policy" ; rdfs:comment "Named declared accounting policy interpreted with this record or cohort." ; rdfs:domain rdfs:Resource ; rdfs:range :EligibilityPolicy .
:placementWindow a rdf:Property ; rdfs:label "placementWindow" ; rdfs:comment "Declared two-sided order-placement window, with explicit boundary inclusivity." ; rdfs:domain :Cohort ; rdfs:range rng:Range .
:selectionEvidence a rdf:Property ; rdfs:label "selectionEvidence" ; rdfs:comment "Supplied evidence for the declared selection." ; rdfs:domain :Cohort ; rdfs:range rdfs:Resource .
:sourceCompleteness a rdf:Property ; rdfs:label "sourceCompleteness" ; rdfs:comment "Caller-declared source export standing, retaining unassessed or declared status." ; rdfs:domain :Cohort ; rdfs:range :Standing .
:historyCompleteness a rdf:Property ; rdfs:label "historyCompleteness" ; rdfs:comment "Caller-declared history standing; never inferred from known-cost coverage." ; rdfs:domain :Cohort ; rdfs:range :Standing .
:policyVersion a rdf:Property ; rdfs:label "policyVersion" ; rdfs:comment "Supplied version of the selected policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range xsd:string .
:policyEvidence a rdf:Property ; rdfs:label "policyEvidence" ; rdfs:comment "Evidence for the selected accounting policy declaration." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:recognisedPayment a rdf:Property ; rdfs:label "recognisedPayment" ; rdfs:comment "Payment state IRI recognised by the supplied policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:admittedPayment a rdf:Property ; rdfs:label "admittedPayment" ; rdfs:comment "Recognised payment state admitted by the supplied policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:recognisedLifecycle a rdf:Property ; rdfs:label "recognisedLifecycle" ; rdfs:comment "Lifecycle state IRI recognised by the supplied policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:admittedLifecycle a rdf:Property ; rdfs:label "admittedLifecycle" ; rdfs:comment "Recognised lifecycle state admitted by the supplied policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:supportedCurrency a rdf:Property ; rdfs:label "supportedCurrency" ; rdfs:comment "Exact caller-supported currency token; not independent ISO membership evidence." ; rdfs:domain :EligibilityPolicy ; rdfs:range xsd:string .
:currencySupportEvidence a rdf:Property ; rdfs:label "currencySupportEvidence" ; rdfs:comment "Evidence for declared currency support." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:allowSigned a rdf:Property ; rdfs:label "allowSigned" ; rdfs:comment "True only when signed whole-line amounts are explicitly qualified by the supplied policy." ; rdfs:domain :EligibilityPolicy ; rdfs:range xsd:boolean .
:signedValueEvidence a rdf:Property ; rdfs:label "signedValueEvidence" ; rdfs:comment "Evidence for the declared signed-value interpretation." ; rdfs:domain :EligibilityPolicy ; rdfs:range rdfs:Resource .
:cohort a rdf:Property ; rdfs:label "cohort" ; rdfs:comment "Declared selection context for generated interpretation or execution." ; rdfs:domain rdfs:Resource ; rdfs:range :Cohort .
:sourceRecord a rdf:Property ; rdfs:label "sourceRecord" ; rdfs:comment "Original captured RDF resource interpreted by this assessment." ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource .
:sourceGraph a rdf:Property ; rdfs:label "sourceGraph" ; rdfs:comment "Named retained asserted source graph; never a default union." ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource .
:selectionGraph a rdf:Property ; rdfs:label "selectionGraph" ; rdfs:comment "Named supplied selection and policy graph." ; rdfs:domain :ExecutionContext ; rdfs:range rdfs:Resource .
:dictionaryGraph a rdf:Property ; rdfs:label "dictionaryGraph" ; rdfs:comment "Named private generic source term dictionary graph." ; rdfs:domain :ExecutionContext ; rdfs:range rdfs:Resource .
:assessmentGraph a rdf:Property ; rdfs:label "assessmentGraph" ; rdfs:comment "Named generated assessment graph for this package and selection." ; rdfs:domain :ExecutionContext ; rdfs:range rdfs:Resource .
:term a rdf:Property ; rdfs:label "term" ; rdfs:comment "Original RDF resource encoded by this private graph-qualified transport key." ; rdfs:domain :TermBinding ; rdfs:range rdfs:Resource .
:sourceDigest a rdf:Property ; rdfs:label "sourceDigest" ; rdfs:comment "Exact selected captured source byte SHA-256." ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string .
:selectionDigest a rdf:Property ; rdfs:label "selectionDigest" ; rdfs:comment "Exact supplied selection and policy byte SHA-256." ; rdfs:domain :ExecutionContext ; rdfs:range xsd:string .
:packageDigest a rdf:Property ; rdfs:label "packageDigest" ; rdfs:comment "Interpretation source and locked runtime package SHA-256." ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string .
:inputRecipeDigest a rdf:Property ; rdfs:label "inputRecipeDigest" ; rdfs:comment "Exact authored orchestration recipe byte SHA-256." ; rdfs:domain :ExecutionContext ; rdfs:range xsd:string .
:sourceDescriptorPath a rdf:Property ; rdfs:label "sourceDescriptorPath" ; rdfs:comment "Source path relative to supplied recipe; not an entity identifier." ; rdfs:domain :ExecutionContext ; rdfs:range xsd:string .
:selectionDescriptorPath a rdf:Property ; rdfs:label "selectionDescriptorPath" ; rdfs:comment "Selection path relative to supplied recipe; not an entity identifier." ; rdfs:domain :ExecutionContext ; rdfs:range xsd:string .
:engine a rdf:Property ; rdfs:label "engine" ; rdfs:comment "Actual configured query engine used by generation." ; rdfs:domain :ExecutionContext ; rdfs:range xsd:string .
:orderEligibility a rdf:Property ; rdfs:label "orderEligibility" ; rdfs:comment "Selected-order eligibility, independent of line money and product qualification." ; rdfs:domain rdfs:Resource ; rdfs:range :Standing .
:moneyStanding a rdf:Property ; rdfs:label "moneyStanding" ; rdfs:comment "Whether both whole-line monetary roles are uniquely known and comparable." ; rdfs:domain :LineAssessment ; rdfs:range :Standing .
:productStanding a rdf:Property ; rdfs:label "productStanding" ; rdfs:comment "Whether this captured line has one resource-valued product assignment." ; rdfs:domain :LineAssessment ; rdfs:range :Standing .
:reason a rdf:Property ; rdfs:label "reason" ; rdfs:comment "One applicable diagnostic reason; reasons overlap and are not exclusive counts." ; rdfs:domain rdfs:Resource ; rdfs:range :Standing .
:foundOrder a rdf:Property ; rdfs:label "foundOrder" ; rdfs:comment "Whether the selected order handle has any asserted source subject statements." ; rdfs:domain :OrderAssessment ; rdfs:range xsd:boolean .
:ownerCount a rdf:Property ; rdfs:label "ownerCount" ; rdfs:comment "Distinct owners across the whole selected asserted source, including untyped and unselected owners." ; rdfs:domain :LineAssessment ; rdfs:range xsd:integer .
:selectedOwnerCount a rdf:Property ; rdfs:label "selectedOwnerCount" ; rdfs:comment "Source owners selected by this cohort, counted without global native identifier reconciliation." ; rdfs:domain :LineAssessment ; rdfs:range xsd:integer .
:product a rdf:Property ; rdfs:label "product" ; rdfs:comment "Original uniquely assigned source product resource, retained without identity reconciliation." ; rdfs:domain :LineAssessment ; rdfs:range cmi:Product .
:currency a rdf:Property ; rdfs:label "currency" ; rdfs:comment "Explicit matching caller-supported currency of both qualified source money roles." ; rdfs:domain :LineAssessment ; rdfs:range xsd:string .
:qualifiedRevenue a rdf:Property ; rdfs:label "qualifiedRevenue" ; rdfs:comment "Comparable whole-line source revenue, post-discount and pre-refund." ; rdfs:domain :LineAssessment ; rdfs:range xsd:decimal .
:qualifiedCost a rdf:Property ; rdfs:label "qualifiedCost" ; rdfs:comment "Comparable whole-line source direct goods cost before ads, fulfilment and overhead." ; rdfs:domain :LineAssessment ; rdfs:range xsd:decimal .
:Assigned a :Standing ; rdfs:label "Assigned" ; rdfs:comment "Assigned in the selected source interpretation; no independent source truth or completeness claim." .
:Comparable a :Standing ; rdfs:label "Comparable" ; rdfs:comment "Comparable in the selected source interpretation; no independent source truth or completeness claim." .
:DeclaredComplete a :Standing ; rdfs:label "DeclaredComplete" ; rdfs:comment "DeclaredComplete in the selected source interpretation; no independent source truth or completeness claim." .
:DeclaredPartial a :Standing ; rdfs:label "DeclaredPartial" ; rdfs:comment "DeclaredPartial in the selected source interpretation; no independent source truth or completeness claim." .
:Eligible a :Standing ; rdfs:label "Eligible" ; rdfs:comment "Eligible in the selected source interpretation; no independent source truth or completeness claim." .
:Excluded a :Standing ; rdfs:label "Excluded" ; rdfs:comment "Excluded in the selected source interpretation; no independent source truth or completeness claim." .
:OutsideCohort a :Standing ; rdfs:label "OutsideCohort" ; rdfs:comment "OutsideCohort in the selected source interpretation; no independent source truth or completeness claim." .
:Unassessed a :Standing ; rdfs:label "Unassessed" ; rdfs:comment "Unassessed in the selected source interpretation; no independent source truth or completeness claim." .
:costCurrencyCardinality a :Standing ; rdfs:label "costCurrencyCardinality" ; rdfs:comment "costCurrencyCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:costCurrencyUnsupported a :Standing ; rdfs:label "costCurrencyUnsupported" ; rdfs:comment "costCurrencyUnsupported in the selected source interpretation; no independent source truth or completeness claim." .
:costResourceCardinality a :Standing ; rdfs:label "costResourceCardinality" ; rdfs:comment "costResourceCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:costResourceInvalid a :Standing ; rdfs:label "costResourceInvalid" ; rdfs:comment "costResourceInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:costValueCardinality a :Standing ; rdfs:label "costValueCardinality" ; rdfs:comment "costValueCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:costValueInvalid a :Standing ; rdfs:label "costValueInvalid" ; rdfs:comment "costValueInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:currencyMismatch a :Standing ; rdfs:label "currencyMismatch" ; rdfs:comment "currencyMismatch in the selected source interpretation; no independent source truth or completeness claim." .
:lifecycleCardinality a :Standing ; rdfs:label "lifecycleCardinality" ; rdfs:comment "lifecycleCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:lifecyclePolicyRejected a :Standing ; rdfs:label "lifecyclePolicyRejected" ; rdfs:comment "lifecyclePolicyRejected in the selected source interpretation; no independent source truth or completeness claim." .
:lifecycleUnsupported a :Standing ; rdfs:label "lifecycleUnsupported" ; rdfs:comment "lifecycleUnsupported in the selected source interpretation; no independent source truth or completeness claim." .
:lineRoleConflict a :Standing ; rdfs:label "lineRoleConflict" ; rdfs:comment "lineRoleConflict in the selected source interpretation; no independent source truth or completeness claim." .
:lineRoleUnqualified a :Standing ; rdfs:label "lineRoleUnqualified" ; rdfs:comment "lineRoleUnqualified in the selected source interpretation; no independent source truth or completeness claim." .
:missingOrder a :Standing ; rdfs:label "missingOrder" ; rdfs:comment "missingOrder in the selected source interpretation; no independent source truth or completeness claim." .
:missingOwner a :Standing ; rdfs:label "missingOwner" ; rdfs:comment "missingOwner in the selected source interpretation; no independent source truth or completeness claim." .
:multipleOwners a :Standing ; rdfs:label "multipleOwners" ; rdfs:comment "multipleOwners in the selected source interpretation; no independent source truth or completeness claim." .
:orderRoleConflict a :Standing ; rdfs:label "orderRoleConflict" ; rdfs:comment "orderRoleConflict in the selected source interpretation; no independent source truth or completeness claim." .
:orderRoleUnqualified a :Standing ; rdfs:label "orderRoleUnqualified" ; rdfs:comment "orderRoleUnqualified in the selected source interpretation; no independent source truth or completeness claim." .
:outsideCohort a :Standing ; rdfs:label "outsideCohort" ; rdfs:comment "outsideCohort in the selected source interpretation; no independent source truth or completeness claim." .
:outsideWindow a :Standing ; rdfs:label "outsideWindow" ; rdfs:comment "outsideWindow in the selected source interpretation; no independent source truth or completeness claim." .
:ownerExcluded a :Standing ; rdfs:label "ownerExcluded" ; rdfs:comment "ownerExcluded in the selected source interpretation; no independent source truth or completeness claim." .
:ownerUnassessed a :Standing ; rdfs:label "ownerUnassessed" ; rdfs:comment "ownerUnassessed in the selected source interpretation; no independent source truth or completeness claim." .
:paymentCardinality a :Standing ; rdfs:label "paymentCardinality" ; rdfs:comment "paymentCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:paymentPolicyRejected a :Standing ; rdfs:label "paymentPolicyRejected" ; rdfs:comment "paymentPolicyRejected in the selected source interpretation; no independent source truth or completeness claim." .
:paymentUnsupported a :Standing ; rdfs:label "paymentUnsupported" ; rdfs:comment "paymentUnsupported in the selected source interpretation; no independent source truth or completeness claim." .
:placementCardinality a :Standing ; rdfs:label "placementCardinality" ; rdfs:comment "placementCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:placementInvalid a :Standing ; rdfs:label "placementInvalid" ; rdfs:comment "placementInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:placementResourceInvalid a :Standing ; rdfs:label "placementResourceInvalid" ; rdfs:comment "placementResourceInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:placementValueCardinality a :Standing ; rdfs:label "placementValueCardinality" ; rdfs:comment "placementValueCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:productCardinality a :Standing ; rdfs:label "productCardinality" ; rdfs:comment "productCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:productInvalid a :Standing ; rdfs:label "productInvalid" ; rdfs:comment "productInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:revenueCurrencyCardinality a :Standing ; rdfs:label "revenueCurrencyCardinality" ; rdfs:comment "revenueCurrencyCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:revenueCurrencyUnsupported a :Standing ; rdfs:label "revenueCurrencyUnsupported" ; rdfs:comment "revenueCurrencyUnsupported in the selected source interpretation; no independent source truth or completeness claim." .
:revenueResourceCardinality a :Standing ; rdfs:label "revenueResourceCardinality" ; rdfs:comment "revenueResourceCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:revenueResourceInvalid a :Standing ; rdfs:label "revenueResourceInvalid" ; rdfs:comment "revenueResourceInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:revenueValueCardinality a :Standing ; rdfs:label "revenueValueCardinality" ; rdfs:comment "revenueValueCardinality in the selected source interpretation; no independent source truth or completeness claim." .
:revenueValueInvalid a :Standing ; rdfs:label "revenueValueInvalid" ; rdfs:comment "revenueValueInvalid in the selected source interpretation; no independent source truth or completeness claim." .
:signedValueUnqualified a :Standing ; rdfs:label "signedValueUnqualified" ; rdfs:comment "signedValueUnqualified in the selected source interpretation; no independent source truth or completeness claim." .
