###########################################################################
#
#  SSTIM Track Parameter Module
#
#  Version:    0.20.0
#  Date:       2026-10-19
#  Author:     Renato Fabbri <renato@junto.space>
#  License:    CC BY 4.0 <https://creativecommons.org/licenses/by/4.0/>
#
#  Protected ontology source. Public term IRIs remain stable across the
#  0.13 modular redistribution (ADR 0043).
#
#  Until 0.19.0 this module also held the BSC catalog's structure. ADR 0061
#  moved that to the BSC framework vocabulary; the terms remain here,
#  deprecated, each pointing at its replacement with dct:isReplacedBy. The
#  module IRI keeps its historical name.
#
###########################################################################

@prefix sstim:     <https://w3id.org/sstim#> .
@prefix sstim-v:   <https://w3id.org/sstim/vocab#> .
@prefix sstim-sh:  <https://w3id.org/sstim/shapes#> .
@prefix sstim-ex:  <https://w3id.org/sstim/exposure#> .
@prefix sstim-eco: <https://w3id.org/sstim/ecosystem#> .
@prefix bsc-v:     <https://w3id.org/sstim/framework/bsc/vocab#> .

@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 skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix dct:   <http://purl.org/dc/terms/> .
@prefix prov:  <http://www.w3.org/ns/prov#> .
@prefix mod:   <https://w3id.org/mod#> .

@prefix bfo:   <http://purl.obolibrary.org/obo/BFO_> .
@prefix obi:   <http://purl.obolibrary.org/obo/OBI_> .
@prefix iao:   <http://purl.obolibrary.org/obo/IAO_> .
@prefix cob:   <http://purl.obolibrary.org/obo/COB_> .
@prefix ro:    <http://purl.obolibrary.org/obo/RO_> .


###########################################################################
# Module metadata
###########################################################################

<https://w3id.org/sstim/patch-studio> a owl:Ontology ;
    owl:versionInfo "0.20.0" ;
    dct:title "SSTIM Track Parameter Module"@en ;
    dct:description "Audio, visual, haptic, control and authoring-tempo parameters for the tracks of an engine configuration, over the generic configuration and session model. Its former BSC catalog terms are deprecated in favour of the BSC framework vocabulary (ADR 0061)."@en ;
    dct:isPartOf <https://w3id.org/sstim> ;
    dct:requires <https://w3id.org/sstim/configuration>, <https://w3id.org/sstim/session> ;
    dct:creator <https://orcid.org/0000-0002-9699-629X> ;
    dct:publisher <https://www.w3.org/community/sstim/> ;
    dct:created "2026-06-17"^^xsd:date ;
    dct:issued "2026-10-19"^^xsd:date ;
    dct:modified "2026-10-19"^^xsd:date ;
    dct:license <https://creativecommons.org/licenses/by/4.0/> .


###########################################################################
# Deprecated BSC catalog terms (ADR 0061)
#
# Kept so that data written against earlier releases still resolves. Each
# points at its replacement: a BSC framework term where the meaning is BSC's,
# a generic SSTIM term where it is not.
###########################################################################

sstim:PresetGroup a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:PresetGroup ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the BSC framework's own grouping. Use bsc-v:PresetGroup."@en ;
    rdfs:subClassOf iao:0000030 ;
    rdfs:label "Preset Group"@en ;
    skos:definition "A classification of BSC presets by design character, evidence strength, and use context. Five groups: Heal, Support, Perform, Indulge, Transcend."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:VoiceType a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:VoiceType ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the BSC catalog's voice taxonomy. Use bsc-v:VoiceType."@en ;
    rdfs:subClassOf iao:0000030 ;
    rdfs:label "Voice Type"@en ;
    skos:definition "A named category of BSC audio voice (Binaural, Martigli, Martigli-Binaural, Symmetry) identifying the synthesis technique a voice realizes. Classification anchor for the SKOS voice-type vocabulary; distinct from the sstim:Voice parameter-bundle classes in Part 6."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:PermutationFunction a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:PermutationFunction ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: BSC Symmetry's permutation set. Use bsc-v:PermutationFunction."@en ;
    rdfs:subClassOf iao:0000030 ;
    rdfs:label "Permutation Function"@en ;
    skos:definition "A named reordering rule applied to a Symmetry voice note sequence at each cycle boundary (identity, rotate forward, rotate backward, reversal, shuffle)."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:Voice a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:Voice ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the BSC catalog's voice model. Use bsc-v:Voice."@en ;
    # AudioTrack is owned by Configuration, which this Patch Studio profile
    # requires. The specialization is asserted once near the end of this module;
    # Configuration therefore remains independent of the optional BSC profile.
    rdfs:subClassOf iao:0000030 ;
    rdfs:label "Voice"@en ;
    skos:definition "An audio layer within a BSC catalog preset, identified by its technique type (Binaural, Martigli, Martigli-Binaural, Symmetry) and carrying the parameters that fully specify that voice. A catalog preset contains 1–6 voices."@en ;
    skos:scopeNote "The catalog-model specialisation of sstim:AudioTrack: every voice is an audio track, while an audio track in another schema need not be one of the four catalog technique types."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0006-one-class-per-technique.md> ,
        <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0041-stimulus-description-layers-and-the-canonical-schema-gap.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:BinauralVoice a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:BinauralVoice ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a BSC catalog voice type. Use bsc-v:BinauralVoice."@en ;
    rdfs:subClassOf sstim:Voice ;
    rdfs:label "Binaural Voice"@en ;
    skos:definition "Two sine tones at slightly different frequencies (fl, fr) presented dichotically to produce a perceived beat at |fr - fl| Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:MartigliVoice a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:MartigliVoice ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a BSC catalog voice type. Use bsc-v:MartigliVoice."@en ;
    rdfs:subClassOf sstim:Voice ;
    rdfs:label "Martigli Voice"@en ;
    skos:definition "A single tone whose frequency oscillates sinusoidally with a breathing arc that decelerates linearly from mp0 to mp1 over md seconds."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:MartigliBinauralVoice a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:MartigliBinauralVoice ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a BSC catalog voice type. Use bsc-v:MartigliBinauralVoice."@en ;
    rdfs:subClassOf sstim:Voice ;
    rdfs:label "Martigli-Binaural Voice"@en ;
    skos:definition "Binaural beat combined with Martigli breathing oscillation. Both carriers sweep in parallel, maintaining constant beat frequency while timbral register evolves with breathing."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:SymmetryVoice a owl:Class ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:SymmetryVoice ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a BSC catalog voice type. Use bsc-v:SymmetryVoice."@en ;
    rdfs:subClassOf sstim:Voice ;
    rdfs:label "Symmetry Voice"@en ;
    skos:definition "N notes log-distributed over I octaves, repeated with algebraic group permutation at each cycle boundary, at pulse rate N/d Hz. When I=0, reduces to traditional isochronous tone stimulation."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:composedOf a owl:ObjectProperty ;
    owl:deprecated true ;
    dct:isReplacedBy sstim:composedOfTrack ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a catalog voice is a track, so the generic composition link carries it. Use sstim:composedOfTrack."@en ;
    rdfs:domain sstim:Preset ;
    rdfs:range  sstim:Voice ;
    rdfs:label  "composed of"@en ;
    skos:definition "Links a preset to its 1–6 voice specifications."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:inGroup a owl:ObjectProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:inGroup ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the BSC framework's own grouping. Use bsc-v:inGroup."@en ;
    rdfs:domain sstim:Preset ;
    rdfs:range  sstim:PresetGroup ;
    rdfs:label  "in group"@en ;
    skos:definition "Links a preset to its group classification. Each preset belongs to exactly one group."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:hasBreathGuide a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy sstim:breathGuideTrack ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: one pointer to the guiding track cannot contradict itself, where a preset flag and a flag per voice could. Use sstim:breathGuideTrack."@en ;
    rdfs:domain sstim:Preset ;
    rdfs:range  xsd:boolean ;
    rdfs:label  "has breath guide"@en ;
    skos:definition "True iff the preset contains exactly one voice with isOn=true. Governs visual breathing animation and haptic pulse delivery."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

[] a owl:AllDisjointClasses ;
    owl:members (
        sstim:BinauralVoice
        sstim:MartigliVoice
        sstim:MartigliBinauralVoice
        sstim:SymmetryVoice
    ) .

sstim:carrierFreqLeft a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "left carrier frequency"@en ;
    skos:definition "Left-ear carrier frequency for binaural presentation, in Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:carrierFreqRight a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "right carrier frequency"@en ;
    skos:definition "Right-ear carrier frequency for binaural presentation, in Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:initialVolume a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "initial volume"@en ;
    skos:definition "Initial output gain or amplitude of an audio track."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:panPosition a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "pan position"@en ;
    skos:definition "Stereo position from left to right."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:baseFrequency a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "base frequency"@en ;
    skos:definition "Base, carrier, or center frequency of an audio track, in Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:beatHz a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "beat frequency"@en ;
    skos:definition "Driven or perceived beat frequency in Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:pulseRateHz a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:AudioTrack sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "pulse rate"@en ;
    skos:definition "Rhythmic pulse or sequence step rate in Hz."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:noteDurationFraction a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "note duration fraction"@en ;
    skos:definition "Fraction of a rhythmic pulse occupied by the active note envelope."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:noteCount a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:AudioTrack sstim:ControlTrack ) ] ;
    rdfs:range xsd:integer ;
    rdfs:label "note count"@en ;
    skos:definition "Number of notes or sequence positions in one cycle of a repeating sequence."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:octaveSpan a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain sstim:AudioTrack ;
    rdfs:range xsd:decimal ;
    rdfs:label "octave span"@en ;
    skos:definition "Pitch span covered by a note sequence, in octaves. Zero means every note sounds at the base frequency."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:cycleDuration a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:AudioTrack sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "cycle duration"@en ;
    skos:definition "Duration of one repeated control or sequence cycle, in seconds."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:permutationFunction a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:permutationFunction ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the BSC catalog's integer coding. Use bsc-v:permutationFunction."@en ;
    rdfs:domain sstim:Voice ;
    rdfs:range xsd:integer ;
    rdfs:label "permutation function"@en ;
    skos:definition "Permutation function selector for sequence ordering. Values match the skos:notation of sstim-v:PermutationFunctionScheme members (0=shuffle, 1=rotate forward, 2=rotate backward, 3=reverse, 4=identity)."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:breathingPhaseRatio a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:AudioTrack sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "breathing phase ratio"@en ;
    skos:definition "Fraction of a breathing cycle assigned to the inhale phase."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:breathingAmplitude a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:AudioTrack sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "breathing amplitude"@en ;
    skos:definition "Depth or excursion of a breathing-shaped oscillation, in the unit of the parameter it modulates: hertz for a frequency sweep."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:martigliCenterFreq a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:martigliCenterFreq ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a parameter of a BSC catalog voice type. Use bsc-v:martigliCenterFreq."@en ;
    rdfs:domain sstim:Voice ;
    rdfs:range xsd:decimal ;
    rdfs:label "Martigli center frequency"@en ;
    skos:definition "Center frequency (mf0) of a Martigli voice's oscillating tone, in Hz; the frequency sweeps mf0 ± ma. Martigli voices only — Martigli-Binaural uses the carrier pair."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:martigliAmplitude a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:martigliAmplitude ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a parameter of a BSC catalog voice type. Use bsc-v:martigliAmplitude."@en ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:Voice sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "Martigli oscillation amplitude"@en ;
    skos:definition "Frequency-sweep amplitude (ma) of a Martigli oscillation, in Hz; the carrier(s) sweep ± ma around the center."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:martigliPeriodInitial a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:martigliPeriodInitial ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a parameter of a BSC catalog voice type. Use bsc-v:martigliPeriodInitial."@en ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:Voice sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "Martigli initial period"@en ;
    skos:definition "Initial breathing-cycle duration (mp0) of a Martigli oscillation, in seconds. Must be >= 3 s when the voice is the breathing reference (isOn)."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:martigliPeriodFinal a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:martigliPeriodFinal ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a parameter of a BSC catalog voice type. Use bsc-v:martigliPeriodFinal."@en ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:Voice sstim:ControlTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "Martigli final period"@en ;
    skos:definition "Final breathing-cycle duration (mp1) of a Martigli oscillation after the transition, in seconds."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:martigliTransitionDuration a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy bsc-v:martigliTransitionDuration ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: a parameter of a BSC catalog voice type. Use bsc-v:martigliTransitionDuration."@en ;
    rdfs:domain sstim:Voice ;
    rdfs:range xsd:decimal ;
    rdfs:label "Martigli transition duration"@en ;
    skos:definition "Time (md) over which the breathing cycle interpolates linearly from mp0 to mp1, in seconds; mp1 is held afterwards."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:isBreathReference a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    dct:isReplacedBy sstim:breathGuideTrack ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061: the breath reference is a property of the preset, not a flag on each track. Use sstim:breathGuideTrack."@en ;
    rdfs:domain sstim:Voice ;
    rdfs:range xsd:boolean ;
    rdfs:label "is breath reference"@en ;
    skos:definition "True iff this voice is the breathing reference (isOn): its oscillation drives the visual breathing animation and haptic pulse. At most one voice per preset may be the breathing reference."@en ;
    rdfs:seeAlso <https://github.com/w3c-cg/sstim/blob/v0.20.0/docs/decisions/0012-martigli-voice-parameters.md> ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:rotationSpeed a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:VisualTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "rotation speed"@en ;
    skos:definition "Visual rotation rate or angular speed."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:visualSideCount a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:VisualTrack ) ] ;
    rdfs:range xsd:integer ;
    rdfs:label "visual side count"@en ;
    skos:definition "Number of sides used by a geometric visual form."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:visualDensity a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:VisualTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "visual density"@en ;
    skos:definition "Density of rendered visual elements."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:stimulationIntensity a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:HapticTrack ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "stimulation intensity"@en ;
    skos:definition "Strength of haptic or sensory output."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:hapticPattern a owl:DatatypeProperty, owl:FunctionalProperty ;
    owl:deprecated true ;
    skos:historyNote "Deprecated in 0.19.0 by ADR 0061, with no replacement. An index into one engine's list of haptic patterns means nothing outside that engine; describe the haptic waveform with sstim:hasSignalShape instead."@en ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:HapticTrack ) ] ;
    rdfs:range xsd:integer ;
    rdfs:label "haptic pattern"@en ;
    skos:definition "Pattern index or selector for haptic delivery."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:tempoBpm a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:Preset ) ] ;
    rdfs:range xsd:decimal ;
    rdfs:label "tempo BPM"@en ;
    skos:definition "Optional authoring tempo in beats per minute."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:beatsPerBar a owl:DatatypeProperty, owl:FunctionalProperty ;
    rdfs:domain [ a owl:Class ; owl:unionOf ( sstim:SessionSpecification sstim:Preset ) ] ;
    rdfs:range xsd:integer ;
    rdfs:label "beats per bar"@en ;
    skos:definition "Number of beats in one authoring tempo bar."@en ;
    rdfs:isDefinedBy <https://w3id.org/sstim/patch-studio> .

sstim:Voice rdfs:subClassOf sstim:AudioTrack .


###########################################################################
# End of patch-studio
###########################################################################
