{
  "@context": {
    "rdfs": "http://www.w3.org/2000/01/rdf-schema#",
    "rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "owl": "http://www.w3.org/2002/07/owl#"
  },
  "@id": "https://uofa.net/vocab/surrogate",
  "@graph": [
    {
      "@id": "https://uofa.net/vocab/surrogate#_evalOutsideEnvelope",
      "@type": "rdf:Property",
      "rdfs:label": "(derived) evaluation outside envelope",
      "rdfs:comment": "Materialized by derivations/surrogate_derivations_v0.1.sparql when the evaluation point/region is not contained in the training envelope. Leading underscore signals 'computed, not authored'. Consumed by W-SURR-03.",
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#boolean"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#BenchmarkProvenance",
      "@type": "rdfs:Class",
      "rdfs:label": "Benchmark Provenance",
      "rdfs:comment": "Provenance of the benchmark set used to interrogate the surrogate. Supports the W-SURR-04 benchmark-coverage-gap candidate (method-first; not pre-implemented).",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#ProcessAttestation"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#CalibrationClaim",
      "@type": "rdfs:Class",
      "rdfs:label": "Surrogate Calibration Claim",
      "rdfs:comment": "Claim that the surrogate was calibrated. Bundle-sufficiency (OOS-SURR-CALIBRATION / D-VAL-07) wants calibration evidence AND calibration-data provenance distinct from training data.",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#AssuranceClaim"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#CalibrationDataProvenance",
      "@type": "rdfs:Class",
      "rdfs:label": "Calibration Data Provenance",
      "rdfs:comment": "Provenance of the calibration data, distinct from training data (D-VAL-07).",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#ProcessAttestation"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#CalibrationEvidence",
      "@type": "rdfs:Class",
      "rdfs:label": "Calibration Evidence",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#ValidationResult"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#ComparativePerformanceClaim",
      "@type": "rdfs:Class",
      "rdfs:label": "Comparative Performance Claim",
      "rdfs:comment": "Claim that the surrogate's performance was compared against an alternative model or CSE baseline. Bundle-sufficiency (OOS-SURR-COMPARISON / D-CCB-15) wants a model-comparison record.",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#AssuranceClaim"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#ConstraintCheckEvidence",
      "@type": "rdfs:Class",
      "rdfs:label": "Constraint Check Evidence",
      "rdfs:comment": "A checkable residual/conservation-check artifact for a declared physics constraint. Measured by SIP (physicsConstraintResidual).",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#ValidationResult"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#constraintId",
      "@type": "rdf:Property",
      "rdfs:label": "constraint id",
      "rdfs:comment": "Identifies which governing law or invariant is being asserted, so the same constraint carries the same name across packages.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#PhysicsConstraint"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#constraintKind",
      "@type": "rdf:Property",
      "rdfs:label": "constraint kind",
      "rdfs:comment": "conservation | boundary-condition | invariant | monotonicity | ...",
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#coordinateName",
      "@type": "rdf:Property",
      "rdfs:label": "coordinate name",
      "rdfs:comment": "Which input dimension this coordinate gives a value for, matching the dimension names declared by the training envelope.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#PointCoordinate"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#coordinateValue",
      "@type": "rdf:Property",
      "rdfs:label": "coordinate value",
      "rdfs:comment": "The value of this coordinate, compared against the envelope bounds to decide whether the point was inside what the surrogate was trained on.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#PointCoordinate"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#decimal"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#declaredPhysicsConstraint",
      "@type": "rdf:Property",
      "rdfs:label": "declared physics constraint",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#PhysicsConstraint"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#dimensionName",
      "@type": "rdf:Property",
      "rdfs:label": "dimension name",
      "rdfs:comment": "The named input dimension this bound applies to, matching the coordinate names used by evaluation points.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#EnvelopeDimension"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#EnvelopeDimension",
      "@type": "rdfs:Class",
      "rdfs:label": "Envelope Dimension",
      "rdfs:comment": "One named input dimension with a lower and upper bound (e.g. reynolds in [2e6, 6e6])."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#evaluationPoint",
      "@type": "rdf:Property",
      "rdfs:label": "evaluation point",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#EvaluationPoint"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#EvaluationPoint",
      "@type": "rdfs:Class",
      "rdfs:label": "Evaluation Point",
      "rdfs:comment": "Where this COU exercises the surrogate, as per-dimension scalar coordinates."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#evaluationRegion",
      "@type": "rdf:Property",
      "rdfs:label": "evaluation region",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#EvaluationRegion"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#EvaluationRegion",
      "@type": "rdfs:Class",
      "rdfs:label": "Evaluation Region",
      "rdfs:comment": "Where this COU exercises the surrogate, as per-dimension bounds (uses hasDimension like a TrainingEnvelope)."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#hasBenchmarkProvenance",
      "@type": "rdf:Property",
      "rdfs:label": "has benchmark provenance",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#BenchmarkProvenance"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#hasConstraintCheckEvidence",
      "@type": "rdf:Property",
      "rdfs:label": "has constraint check evidence",
      "rdfs:comment": "Links a declared physics constraint to its residual/conservation-check artifact. Absence is W-SURR-01.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#PhysicsConstraint"
      },
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#ConstraintCheckEvidence"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#hasCoordinate",
      "@type": "rdf:Property",
      "rdfs:label": "has coordinate",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#PointCoordinate"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#hasDimension",
      "@type": "rdf:Property",
      "rdfs:label": "has dimension",
      "rdfs:comment": "Links a TrainingEnvelope or EvaluationRegion to one of its named bounded dimensions.",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#EnvelopeDimension"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#maxBound",
      "@type": "rdf:Property",
      "rdfs:label": "maximum bound",
      "rdfs:comment": "The upper end of the range the surrogate was trained over for this dimension. Together with minBound this is what makes an evaluation point inside or outside the training envelope.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#EnvelopeDimension"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#decimal"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#minBound",
      "@type": "rdf:Property",
      "rdfs:label": "minimum bound",
      "rdfs:comment": "The lower end of the range the surrogate was trained over for this dimension.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#EnvelopeDimension"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#decimal"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#ModelComparisonRecord",
      "@type": "rdfs:Class",
      "rdfs:label": "Model Comparison Record",
      "rdfs:comment": "Comparison of the surrogate against an alternative SciML model or a CSE baseline using purpose-specific metrics (D-CCB-15).",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#ValidationResult"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#parentCOU",
      "@type": "rdf:Property",
      "rdfs:label": "parent COU",
      "rdfs:comment": "Identifier of the parent high-fidelity model's Context of Use."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#parentDecision",
      "@type": "rdf:Property",
      "rdfs:label": "parent decision",
      "rdfs:comment": "The parent COU's recorded decision: Accepted, Not Accepted, or Conditional. Absence means no decision recorded. W-SURR-02 reads this.",
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#parentModelSnapshot",
      "@type": "rdf:Property",
      "rdfs:label": "parent model snapshot",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#ParentModelSnapshot"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#ParentModelSnapshot",
      "@type": "rdfs:Class",
      "rdfs:label": "Parent Model Snapshot",
      "rdfs:comment": "Embedded snapshot of the high-fidelity parent model's credibility for the COU the surrogate inherits from. v1 inheritance architecture: no live cross-package reasoning. parentDecision is the parent's RECORDED decision (inherited provenance), never a SIP/UofA verdict."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#parentMRL",
      "@type": "rdf:Property",
      "rdfs:label": "parent MRL",
      "rdfs:comment": "The parent's Model Readiness Level (PCMM-grounded)."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#parentSignatureTimestamp",
      "@type": "rdf:Property",
      "rdfs:label": "parent signature timestamp"
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#PhysicsConstraint",
      "@type": "rdfs:Class",
      "rdfs:label": "Declared Physics Constraint",
      "rdfs:comment": "A governing law or invariant the surrogate is expected to respect (conservation, boundary condition, monotonicity)."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#PointCoordinate",
      "@type": "rdfs:Class",
      "rdfs:label": "Point Coordinate",
      "rdfs:comment": "One named scalar coordinate of an EvaluationPoint (e.g. aoa = 4.0)."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#snapshotTimestamp",
      "@type": "rdf:Property",
      "rdfs:label": "snapshot timestamp",
      "rdfs:comment": "When this snapshot of the parent decision was taken (drift indicator)."
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#SurrogateModel",
      "@type": "rdfs:Class",
      "rdfs:label": "Surrogate Model",
      "rdfs:comment": "A physics-based AI/ML surrogate standing in for high-fidelity simulation: ROM, PINN, operator-learning, data-driven emulator, or ML closure.",
      "rdfs:subClassOf": {
        "@id": "https://uofa.net/vocab#Model"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#surrogateType",
      "@type": "rdf:Property",
      "rdfs:label": "surrogate type",
      "rdfs:comment": "One of: ROM, PINN, operator-learning, data-driven-emulator, ML-closure.",
      "rdfs:domain": {
        "@id": "https://uofa.net/vocab/surrogate#SurrogateModel"
      },
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#surrogateUQMethod",
      "@type": "rdf:Property",
      "rdfs:label": "surrogate UQ method",
      "rdfs:comment": "UQ approach for the surrogate's own prediction uncertainty (e.g. conformal-prediction, ensemble, mc-dropout). Consumed by reused W-AL-02.",
      "rdfs:range": {
        "@id": "http://www.w3.org/2001/XMLSchema#string"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#trainingEnvelope",
      "@type": "rdf:Property",
      "rdfs:label": "training envelope",
      "rdfs:comment": "Links the surrogate COU to its declared TrainingEnvelope.",
      "rdfs:range": {
        "@id": "https://uofa.net/vocab/surrogate#TrainingEnvelope"
      }
    },
    {
      "@id": "https://uofa.net/vocab/surrogate#TrainingEnvelope",
      "@type": "rdfs:Class",
      "rdfs:label": "Training Envelope",
      "rdfs:comment": "The declared input domain over which the surrogate is trained/valid, as per-dimension bounds. The operating-envelope artifact W-ON-02 checks for presence and W-SURR-03 checks for containment of the evaluation point/region."
    }
  ]
}
