@prefix irw:   <http://www.ontologydesignpatterns.org/ont/web/irw.owl#> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix :      <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix sp:    <http://spinrdf.org/sp#> .
@prefix isicil: <http://ns.inria.fr/isicil#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix vs:    <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix nicetag: <http://ns.inria.fr/nicetag/2010/09/09/voc> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix sioc:  <http://rdfs.org/sioc/ns#> .
@prefix prissma: <http://ns.inria.fr/prissma/v2#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ma:    <http://www.w3.org/ns/ma-ont> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ademe: <http://www.ademe.fr/2009/svic-schema.rdfs#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix cc:    <http://creativecommons.org/ns#> .

<http://ns.inria.fr/s4ac/v2#AccessPolicy>
        a                 owl:Class ;
        rdfs:comment      "An Access Policy (AP) is a composed by an Access Condition Set, a Subject, an Access Evaluation Context, an Access Privilege, and a URI of the resource to which it is applied. "@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "AccessPolicy"@en ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasAccessEvaluationContext>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates an Access Policy with an Access Evaluation Context."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessPolicy> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasAccessEvaluationContext"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#AccessEvaluationContext> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasAccessConditionSet>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property defines whether the Access Condition Set (ACS) of an Access Policy is a Conjunctive ACS, or a Disjunctive ACS."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessPolicy> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasAccessConditionSet"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#appliesTo>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates the Access Policy to the URI of the resource to which the policy is applied."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessPolicy> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "appliesTo"@en ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasValue>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates a value to the variable used in the Access Conditions."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#Variable> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasValue"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#Value> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasAccessCondition>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property adds an Access Condition to an Access Condition Set."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasAccessCondition"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#AccessCondition> ;
        owl:inverseOf     <http://ns.inria.fr/s4ac/v2#isAccessConditionOf> ;
        vs:term_status    "stable" .

<http://dbpedia.org/resource/National_Institute_for_Research_in_Computer_Science_and_Control>
        a       foaf:Organization .

<http://ns.inria.fr/s4ac/v2>
        a                              owl:Ontology ;
        cc:license                     <http://creativecommons.org/licenses/by/3.0/> ;
        dc:description                 "A vocabulary to describe the access policies which protect an RDF data store."@en ;
        dc:issued                      "2011-06-28"^^xsd:date ;
        dc:modified                    "2011-10-06"^^xsd:date ;
        dc:publisher                   <http://dbpedia.org/resource/National_Institute_for_Research_in_Computer_Science_and_Control> ;
        dc:title                       "Social Semantic SPARQL Security For Access Control (S4AC) Ontology"@en ;
        vann:preferredNamespacePrefix  "s4ac" ;
        vann:preferredNamespaceUri     "http://ns.inria.fr/s4ac/v2#" ;
        owl:versionInfo                0.2 ;
        foaf:page                      <http://ns.inria.fr/s4ac/v2/s4ac_v2.html> .

<http://ns.inria.fr/s4ac/v2#AccessEvaluationContext>
        a                   owl:Class ;
        rdfs:comment        "An Access Evaluation Context (AEC) is a list L of predetermined bound variables names of the form (var1, val1) for which a SPARQL 1.1 Binding Clause constrains the ASK query evaluation (i.e., the evaluation of the Access Conditions) when verifying the Access Conditions."@en ;
        rdfs:isDefinedBy    <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label          "AccessEvaluationContext"@en ;
        owl:isEquivalentTo  prissma:Context ;
        vs:term_status      "stable" .

<http://ns.inria.fr/s4ac/v2#AccessCondition>
        a                 owl:Class ;
        rdfs:comment      "The Access Condition (AC) allows the users to access specific resources. An AC is a SPARQL 1.1 ASK query. If a solution exists, the ASK query returns true, and the AC is said to be verified. If no solution exists, the ASK query returns false, and the AC is said not to be verified."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "AccessCondition"@en ;
        rdfs:subClassOf   sioc:Item ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasDescription>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates a description of the variable used in the Access Condition Set to explain their use in the definition of the policies. "@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#Variable> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasDescription"@en ;
        rdfs:range        rdfs:Literal ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasVarName>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates a name to the variable used in the Access Conditions."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#Variable> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasVarName"@en ;
        rdfs:range        rdfs:Literal ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#ConjunctiveAccessConditionSet>
        a                 owl:Class ;
        rdfs:comment      "A Conjunctive ACS (CACS) is a logical conjunction of Access Conditions, and it is said to be verified if and only if every Access Condition it contains is verified.\n\t\t"@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "ConjontiveAccessConditionSet"@en ;
        rdfs:subClassOf   <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        owl:disjointWith  <http://ns.inria.fr/s4ac/v2#DisjunctiveAccessConditionSet> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasAccessPrivilege>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property associates the Access Privileges to the Access Policies."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessPolicy> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasAccessPrivilege"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#AccessPrivilege> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#DisjunctiveAccessConditionSet>
        a                 owl:Class ;
        rdfs:comment      "A Disjunctive ACS (DACS) is a logical disjunction of Access Conditions, and it is said to be verified if and only if at least one Access Condition it contains is verified.\n\t\t"@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "DisjontiveAccessConditionSet"@en ;
        rdfs:subClassOf   <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        owl:disjointWith  <http://ns.inria.fr/s4ac/v2#ConjunctiveAccessConditionSet> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#Variable>
        a                 owl:Class ;
        rdfs:comment      "This class is used to describe the variables used in the Access Conditions."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "Variable"@en ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#AccessConditionSet>
        a                 owl:Class ;
        rdfs:comment      "An Access Condition Set (ACS) represents a set of Access Conditions which can be either Conjunctive or Disjunctive.\n\t\t"@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "AccessConditionSet"@en ;
        rdfs:subClassOf   sioc:Container ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasQueryAsk>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property defines the SPARQL 1.1 ASK queries which represent the Access Conditions."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessCondition> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasQueryAsk"@en ;
        rdfs:range        rdfs:Literal ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#hasName>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property assigns a name to an Access Condition."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessCondition> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasName"@en ;
        rdfs:range        rdfs:Literal ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#Value>
        a                 owl:Class ;
        rdfs:comment      "This class is used to describe the value assigned to the variables used in the Access Conditions."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "Value"@en ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#AccessPrivilege>
        a                 owl:Class ;
        rdfs:comment      "This class represents the kind of access privileges which is granted to the user (Create, Read, Update, Delete)."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "AccessPrivilege"@en ;
        rdfs:subClassOf   sioc:Item ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#Create>
        a                    owl:Class ;
        rdfs:comment         "This class represents a create access on the resource. This class is equivalent to acl:Append."@en ;
        rdfs:isDefinedBy     <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label           "Create"@en ;
        rdfs:subClassOf      <http://ns.inria.fr/s4ac/v2#AccessPrivilege> ;
        owl:equivalentClass  <http://www.w3.org/ns/auth/acl#Append> ;
        vs:term_status       "stable" ;
        skos:related         sp:InsertData , sp:Create , sp:Load .

<http://ns.inria.fr/s4ac/v2#Update>
        a                 owl:Class ;
        rdfs:comment      "This class represents an update access on the resource."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "Update"@en ;
        rdfs:subClassOf   <http://ns.inria.fr/s4ac/v2#AccessPrivilege> ;
        vs:term_status    "stable" ;
        skos:related      sp:Modify .

<http://ns.inria.fr/s4ac/v2#Read>
        a                    owl:Class ;
        rdfs:comment         "This class represents a read access on the resource. This class is equivalent to acl:Read."@en ;
        rdfs:isDefinedBy     <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label           "Read"@en ;
        rdfs:subClassOf      <http://ns.inria.fr/s4ac/v2#AccessPrivilege> ;
        owl:equivalentClass  <http://www.w3.org/ns/auth/acl#Read> ;
        vs:term_status       "stable" ;
        skos:related         sp:Describe , sp:Select , sp:Construct , sp:Ask .

<http://ns.inria.fr/s4ac/v2#isAccessConditionOf>
        a                 owl:ObjectProperty ;
        rdfs:comment      "This property says that an Access Condition is part of an Access Condition Set."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessCondition> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "isAccessConditionOf"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        owl:inverseOf     <http://ns.inria.fr/s4ac/v2#hasAccessCondition> ;
        vs:term_status    "stable" .

<http://ns.inria.fr/s4ac/v2#Delete>
        a                 owl:Class ;
        rdfs:comment      "This class represents a delete access on the resource."@en ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "Delete"@en ;
        rdfs:subClassOf   <http://ns.inria.fr/s4ac/v2#AccessPrivilege> ;
        vs:term_status    "stable" ;
        skos:related      sp:Clear , sp:Drop , sp:DeleteWhere , sp:DeleteData .

<http://ns.inria.fr/s4ac/v2#hasVariable>
        a                 owl:ObjectProperty ;
        rdfs:comment      "The property associates the variables and the Access Condition Set where they are used."@en ;
        rdfs:domain       <http://ns.inria.fr/s4ac/v2#AccessConditionSet> ;
        rdfs:isDefinedBy  <http://ns.inria.fr/s4ac/v2#> ;
        rdfs:label        "hasVariable"@en ;
        rdfs:range        <http://ns.inria.fr/s4ac/v2#Variable> ;
        vs:term_status    "stable" .
