PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX swp1: <http://www.w3.org/2004/03/trix/swp-1/>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX rdfg1: <http://www.w3.org/2004/03/trix/rdfg-1/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

swp1: a owl:Ontology ;
  vann:preferredNamespacePrefix "swp1" ;
  vann:preferredNamespaceUri "http://www.w3.org/2004/03/trix/swp-1/"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "swp1" ;
    sh:namespace "http://www.w3.org/2004/03/trix/swp-1/"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "xsd" ;
    sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI
  ] , [
    sh:prefix "rdfg1" ;
    sh:namespace "http://www.w3.org/2004/03/trix/rdfg-1/"^^xsd:anyURI
  ] .

swp1:Warrant a owl:Class ;
  rdfs:label "Warrant" ;
  rdfs:comment """
A relationship between an authority and a graph, in which the authority is in
some way an origin of that graph. Warrants may include a digital signature of
the graph by the authority.
      """ ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty swp1:certificate ;
    owl:allValuesFrom xsd:base64Binary
  ] , [
    a owl:Restriction ;
    owl:onProperty swp1:signature ;
    owl:allValuesFrom xsd:base64Binary
  ] , [
    a owl:Restriction ;
    owl:onProperty swp1:authority ;
    owl:allValuesFrom swp1:Authority
  ] , [
    a owl:Restriction ;
    owl:onProperty swp1:signatureMethod ;
    owl:allValuesFrom swp1:SignatureMethod
  ] .

swp1:SignatureMethod a owl:Class ;
  rdfs:label "Signature Method" ;
  rdfs:comment """
A method used to construct a signature used to authenticate a graph.
      """ .

swp1:Authority a owl:Class ;
  rdfs:label "Authority" ;
  rdfs:comment """
An authority, or origin, of a graph; such as a person or company.
      """ .

rdfg1:Graph a owl:Class ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty swp1:quotedBy ;
    owl:allValuesFrom swp1:Warrant
  ] , [
    a owl:Restriction ;
    owl:onProperty swp1:assertedBy ;
    owl:allValuesFrom swp1:Warrant
  ] .

swp1:certificate a owl:DatatypeProperty ;
  rdfs:label "certificate" ;
  rdfs:comment """
The object is a certificate by which the authority specified for the warrant
can be authenticated.
      """ ;
  rdfs:range xsd:base64Binary ;
  rdfs:domain swp1:Warrant .

swp1:quotedBy a owl:ObjectProperty ;
  rdfs:label "quoted by" ;
  rdfs:comment """
The subject graph originates from the authority specified for the object warrant.
The statements expressed in the graph are not taken to be claims made by that
authority, insofar as any statement using this property is concerned.
      """ ;
  rdfs:range swp1:Warrant ;
  rdfs:domain rdfg1:Graph .

swp1:signature a owl:DatatypeProperty ;
  rdfs:label "signature" ;
  rdfs:comment """
The object is the signature to be used to authenticate the graph with which the
subject warrant is associated.
      """ ;
  rdfs:range xsd:base64Binary ;
  rdfs:domain swp1:Warrant .

swp1:authority a owl:ObjectProperty ;
  rdfs:label "authority" ;
  rdfs:comment """
The object authority is the origin of the graph with which the subject warrant
is associated.
      """ ;
  rdfs:range swp1:Authority ;
  rdfs:domain swp1:Warrant .

swp1:signatureMethod a owl:ObjectProperty ;
  rdfs:label "signature method" ;
  rdfs:comment """
The object is the signature method by which  the signature specified for the
warrant subject was constructed.
      """ ;
  rdfs:range swp1:SignatureMethod ;
  rdfs:domain swp1:Warrant .

swp1:assertedBy a owl:ObjectProperty ;
  rdfs:label "asserted by" ;
  rdfs:comment """
The subject graph originates from and is asserted by the authority specified
for the object warrant. The statements expressed in the graph are taken to be
claims made by that authority. This property has performative semantics.
      """ ;
  rdfs:range swp1:Warrant ;
  rdfs:domain rdfg1:Graph .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .
