@prefix adms:  <http://www.w3.org/ns/adms#> .
@prefix dc:    <http://purl.org/dc/elements/1.1/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix vann:  <http://purl.org/vocab/vann/> .
@prefix csp:   <http://vocab.deri.ie/csp#> .
@prefix dcterms: <http://purl.org/dc/terms/> .

csp:Not  a                owl:Class , rdfs:Class ;
        rdfs:comment      "Models the negation of a logical sub-expression NOT(BoolExpr)." ;
        rdfs:label        "Not" ;
        rdfs:subClassOf   csp:BoolExpr ;
        owl:disjointWith  csp:Or , csp:And .

csp:isSatisfiable  a  rdf:Property ;
        rdfs:comment  "Boolean flag indicating for a relation if each supported combination of values must be satisfiable or not." ;
        rdfs:domain   csp:Relation ;
        rdfs:label    "is satisfiable" .

csp:and  a            rdf:Property ;
        rdfs:comment  "Links a logical conjunction operator to its arguments." ;
        rdfs:domain   csp:And ;
        rdfs:label    "and" ;
        rdfs:range    csp:BoolExpr .

<http://vocab.deri.ie/csp>
        a                              adms:SemanticAsset , owl:Ontology ;
        dc:creator                     csp:fpservant , csp:fbadra , csp:alepas ;
        dcterms:created                "2011-03-09"^^xsd:date ;
        dcterms:description            "A vocabulary to represent Constraint Satisfaction Problems (CSPs) in which constraints are expressed by Boolean expressions on fluents.</b>" ;
        dcterms:modified               "2011-06-29"^^xsd:date ;
        dcterms:partOf                 <http://vocab.deri.ie> ;
        dcterms:publisher              "http://vocab.deri.ie/csp#DERI%2C%20NUI%20Galway" ;
        dcterms:status                 <http://purl.org/adms/status/UnderDevelopment> ;
        dcterms:title                  "CSP - A vocabulary to represent Constraint Satisfaction Problems." ;
        dcterms:type                   <http://purl.org/adms/assettype/Ontology> ;
        vann:preferredNamespacePrefix  "csp" ;
        vann:preferredNamespaceUri     "http://vocab.deri.ie/csp#" ;
        foaf:homepage                  <http://vocab.deri.ie/csp.html> .

csp:val  a            rdf:Property ;
        rdfs:comment  "A value associated with a fluent." ;
        rdfs:domain   csp:Fluent ;
        rdfs:label    "has value" ;
        rdfs:range    rdfs:Resource .

csp:var  a            rdf:Property ;
        rdfs:comment  "The variable associated with a fluent." ;
        rdfs:domain   csp:Fluent ;
        rdfs:label    "has variable" ;
        rdfs:range    rdfs:Resource .

csp:Relation  a       owl:Class , rdfs:Class ;
        rdfs:comment  "The list of all valid combinations of values of a set of variables." ;
        rdfs:label    "Relation" .

csp:fpservant  a       foaf:Person ;
        foaf:homepage  <http://vocab.deri.ie/csp> ;
        foaf:mbox      <mailto:francois-paul.servant@renault.com> ;
        foaf:name      "François-Paul Servant" .

<http://vocab.deri.ie/csp#DERI%2C%20NUI%20Galway>
        a              dcterms:Agent ;
        foaf:homepage  <http://deri.ie> ;
        foaf:member    csp:fbadra , csp:alepas ;
        foaf:name      "DERI, NUI Galway" .

csp:rdf  a                  adms:SemanticDistribution ;
        dcterms:FileFormat  <http://vocab.deri.ie/csp> ;
        adms:accessURL      "http://vocab.deri.ie/csp.rdf" ;
        adms:status         <http://purl.org/adms/status/Completed> .

csp:alepas  a          foaf:Person ;
        foaf:homepage  <http://apassant.net> ;
        foaf:name      "Alexandre Passant" .

csp:BoolExpr  a       owl:Class , rdfs:Class ;
        rdfs:comment  "A Boolean expression." ;
        rdfs:label    "Boolean expression" .

csp:ttl  a                  adms:SemanticDistribution ;
        dcterms:FileFormat  <http://vocab.deri.ie/csp> ;
        adms:accessURL      "http://vocab.deri.ie/csp.ttl" ;
        adms:status         <http://purl.org/adms/status/Completed> .

csp:not  a            rdf:Property ;
        rdfs:comment  "Links a logical negation operator to its argument." ;
        rdfs:domain   csp:Not ;
        rdfs:label    "not" ;
        rdfs:range    csp:BoolExpr .

csp:And  a               owl:Class , rdfs:Class ;
        rdfs:comment     "Models a conjunctive logical sub-expression AND (BoolExpr1 BoolExpr2 ... BoolExprn)." ;
        rdfs:label       "And" ;
        rdfs:subClassOf  csp:BoolExpr .

csp:or  a             rdf:Property ;
        rdfs:comment  "Links a logical disjunction operator to its arguments." ;
        rdfs:domain   csp:Or ;
        rdfs:label    "or" ;
        rdfs:range    csp:BoolExpr .

csp:Renault  a         dcterms:Agent ;
        foaf:homepage  <http://vocab.deri.ie/csp> ;
        foaf:member    csp:fpservant ;
        foaf:name      "Renault" .

csp:fbadra  a          foaf:Person ;
        foaf:homepage  <http://fadi.lautre.net> ;
        foaf:name      "Fadi Badra" .

csp:Solution  a       owl:Class , rdfs:Class ;
        rdfs:comment  "A solution of the constraint satisfaction problem." ;
        rdfs:label    "Solution" .

csp:Or  a                 owl:Class , rdfs:Class ;
        rdfs:comment      "Models a disjunctive logical sub-expression OR (BoolExpr1 BoolExpr2 ... BoolExprn)." ;
        rdfs:label        "Or" ;
        rdfs:subClassOf   csp:BoolExpr ;
        owl:disjointWith  csp:Not , csp:And .

csp:variable  a       rdf:Property ;
        rdfs:comment  "A variable can be seen as a function associating a value to an object, and is therefore modelled as an RDF property that points to one (or many) value(s)." ;
        rdfs:domain   csp:Solution ;
        rdfs:label    "variable" ;
        rdfs:range    rdfs:Resource .

csp:supports  a       rdf:Property ;
        rdfs:comment  "Specifies all supported value combinations in the relation. " ;
        rdfs:domain   csp:Relation ;
        rdfs:label    "supports" ;
        rdfs:range    rdfs:Resource .

csp:Fluent  a            owl:Class , rdfs:Class ;
        rdfs:comment     "A fluent is the association of a variable name and a subset of its domain of values." ;
        rdfs:label       "Fluent" ;
        rdfs:subClassOf  csp:BoolExpr .
