@prefix : <https://ontology.inferal.com/modules/scoped-statements/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix mod: <https://w3id.org/mod#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pubacc: <https://ontology.inferal.com/modules/publication-access/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix vann: <http://purl.org/vocab/vann/> .

:
    a owl:Ontology, pubacc:PublicationManagedOntology ;
    dcterms:accessRights pubacc:PublicAccess ;
    dcterms:title "Scoped Statements Ontology" ;
    dcterms:description "Terms for exact RDF quad targets, quad groups, and claims scoped to arbitrary applicability resources." ;
    dcterms:license <https://creativecommons.org/licenses/by/4.0/> ;
    vann:preferredNamespacePrefix "ss" ;
    vann:preferredNamespaceUri "https://ontology.inferal.com/modules/scoped-statements/" ;
    mod:status "draft" ;
    rdfs:comment "This module provides claims over RDF statements that apply within arbitrary scopes. A scope can be supplied by any domain vocabulary, including range or versioning vocabularies, but this module does not define those scope semantics." ;
    owl:versionInfo "0.1.0" .

:ScopedTarget
    a rdfs:Class ;
    rdfs:label "scoped target" ;
    rdfs:comment "A target that can receive claims scoped by an applicability resource. Concrete targets include exact RDF quads and groups of quads." .

:QuadTarget
    a rdfs:Class ;
    rdfs:subClassOf :ScopedTarget ;
    rdfs:label "quad target" ;
    rdfs:comment "An exact RDF quad target identified by subject, predicate, object, and optional graph term. The object can be either a resource term or a literal value." ;
    rdfs:seeAlso rdf:Statement .

:QuadGroup
    a rdfs:Class ;
    rdfs:subClassOf :ScopedTarget ;
    rdfs:label "quad group" ;
    rdfs:comment "A named group of quad targets treated as one target for scoped claims." .

:ScopedClaim
    a rdfs:Class ;
    rdfs:label "scoped claim" ;
    rdfs:comment "A claim that applies to a target within a stated scope. A scope can be a range, version range, named graph, environment, policy context, jurisdiction, temporal context, or another resource that defines applicability." .

:subjectTerm
    a rdf:Property ;
    rdfs:label "subject term" ;
    rdfs:comment "Subject term of the targeted RDF quad." ;
    rdfs:domain :QuadTarget ;
    rdfs:range rdfs:Resource .

:predicateTerm
    a rdf:Property ;
    rdfs:label "predicate term" ;
    rdfs:comment "Predicate IRI of the targeted RDF quad." ;
    rdfs:domain :QuadTarget ;
    rdfs:range rdf:Property .

:objectResourceTerm
    a rdf:Property ;
    rdfs:label "object resource term" ;
    rdfs:comment "Resource object term of the targeted RDF quad. Use objectLiteralValue instead when the object is a literal." ;
    rdfs:domain :QuadTarget ;
    rdfs:range rdfs:Resource .

:objectLiteralValue
    a rdf:Property ;
    rdfs:label "object literal value" ;
    rdfs:comment "Literal object value of the targeted RDF quad. Use objectResourceTerm instead when the object is an IRI or blank node." ;
    rdfs:domain :QuadTarget ;
    rdfs:range rdfs:Literal .

:graphTerm
    a rdf:Property ;
    rdfs:label "graph term" ;
    rdfs:comment "Optional IRI or blank-node graph-name term for the targeted RDF quad." ;
    rdfs:domain :QuadTarget ;
    rdfs:range rdfs:Resource .

:hasQuad
    a rdf:Property ;
    rdfs:label "has quad" ;
    rdfs:comment "Connects a quad group to one of its member quad targets." ;
    rdfs:domain :QuadGroup ;
    rdfs:range :QuadTarget .

:claimTarget
    a rdf:Property ;
    rdfs:label "claim target" ;
    rdfs:comment "Target to which the scoped claim applies." ;
    rdfs:domain :ScopedClaim ;
    rdfs:range :ScopedTarget .

:scope
    a rdf:Property ;
    rdfs:label "scope" ;
    rdfs:comment "Applicability context in which the claim applies. The scope resource's own vocabulary or application contract defines how that scope is interpreted." ;
    rdfs:domain :ScopedClaim ;
    rdfs:range rdfs:Resource .

:claimValue
    a rdf:Property ;
    rdfs:label "claim value" ;
    rdfs:comment "Resource representing the meaning or classification of the claim, such as reviewed, vulnerable, deprecated, or authoritative." ;
    rdfs:domain :ScopedClaim ;
    rdfs:range rdfs:Resource .
