@base <https://w3id.org/associations/vocab> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<>
    a owl:Ontology ;
    owl:versionIRI <vocab/1.0.0> ;
    owl:versionInfo "1.0.0" .

:Association
    a owl:Class ;
    rdfs:comment "An association having a stimulus and a respone, a count and frequency." ;
    rdfs:label "Association" .

:Mapping
    a owl:Class ;
    rdfs:comment "A mapping in the context of associations. If an association is an instance of this class it typically wasn't directly created on the dataset of the stimulus and response but was mapped to the entities from another dataset (see the mappedTo property)." ;
    rdfs:label "Mapping" .

:Term
    a owl:Class ;
    rdfs:comment "A class representing an association term that can either occur as stimulus or as response of an association." ;
    rdfs:label "Term" .

:VerifiedMapping
    a owl:Class ;
    rdfs:comment "A mapping that has been manually verified." ;
    rdfs:label "VerifiedMapping" ;
    rdfs:subClassOf :Mapping .

:count
    a owl:DatatypeProperty ;
    rdfs:comment "The count how often this association occurred." ;
    rdfs:domain :Association ;
    rdfs:label "count" ;
    rdfs:range xsd:positiveInteger .

:frequency
    a owl:DatatypeProperty ;
    rdfs:comment "The relative count of this association wrt. all associations of the stimulus." ;
    rdfs:domain :Association ;
    rdfs:label "frequency" ;
    rdfs:range [
        a rdfs:Datatype ;
        owl:onDatatype xsd:double ;
        owl:withRestrictions ([
                xsd:minExclusive 0.0
            ]
            [
                xsd:maxInclusive 1.0
            ]
        )
    ] .

:mappedTo
    a owl:ObjectProperty ;
    rdfs:comment "A mapping from an association in one dataset to an equivalent one in another." ;
    rdfs:domain :Association ;
    rdfs:label "mapped to" ;
    rdfs:range :Association .

:response
    a owl:ObjectProperty ;
    rdfs:comment "The response term of an association." ;
    rdfs:domain :Association ;
    rdfs:label "response" ;
    rdfs:range :Term .

:stimulus
    a owl:ObjectProperty ;
    rdfs:comment "The stimulus term of an association." ;
    rdfs:domain :Association ;
    rdfs:label "stimulus" ;
    rdfs:range :Term .

