PREFIX atom:    <http://lv2plug.in/ns/ext/atom#>
PREFIX aufx:    <https://w3id.org/aufx/ontology/1.0#>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX doap:    <http://usefulinc.com/ns/doap#>
PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
PREFIX lv2:     <http://lv2plug.in/ns/lv2core#>
PREFIX midi:    <http://lv2plug.in/ns/ext/midi#>
PREFIX mo:      <http://purl.org/ontology/mo/>
PREFIX owl:     <http://www.w3.org/2002/07/owl#>
PREFIX prov:    <http://www.w3.org/ns/prov#>
PREFIX pu:      <http://purl.org/stuff/plugin-universe/>
PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
PREFIX schema:  <https://schema.org/>
PREFIX sh:      <http://www.w3.org/ns/shacl#>
PREFIX skos:    <http://www.w3.org/2004/02/skos/core#>
PREFIX spdx:    <http://spdx.org/rdf/terms#>
PREFIX studio:  <http://purl.org/ontology/studio/main/>
PREFIX time:    <http://lv2plug.in/ns/ext/time#>
PREFIX trn:     <http://purl.org/stuff/transmissions/>
PREFIX ui:      <http://lv2plug.in/ns/extensions/ui#>
PREFIX units:   <http://lv2plug.in/ns/extensions/units#>
PREFIX void:    <http://rdfs.org/ns/void#>
PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>

trn:parameterFlags  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:integer .

trn:stepCount  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:integer .

trn:defaultNormalized
        rdf:type    owl:DatatypeProperty;
        rdfs:range  xsd:decimal .

trn:units  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:shortTitle  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:parameterTitle  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:parameter  rdf:type  owl:ObjectProperty .

trn:discoverySource  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:modulePath  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:category  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:vstClassId  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:conductorChannelParam
        rdf:type      owl:DatatypeProperty;
        rdfs:comment  "Name of the parameter on this (receiver) plugin that selects which MIDI channel to listen on for Conductor CCs. Set to 0 to disable.";
        rdfs:domain   trn:PluginProfile;
        rdfs:label    "conductor channel parameter";
        rdfs:range    xsd:string .

trn:feedsControls  rdf:type  owl:ObjectProperty;
        rdfs:comment  "This plugin emits MIDI CC or scene control signals that can reshape live parameters on the target plugin. Route its MIDI output to the target's MIDI input and set the target's conductor channel parameter to match.";
        rdfs:domain   trn:PluginProfile;
        rdfs:label    "feeds controls" .

trn:homepage  rdf:type  owl:DatatypeProperty;
        rdfs:domain  trn:PluginProfile;
        rdfs:range   xsd:anyURI .

trn:companion  rdf:type  owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:AudioSink  rdf:type  owl:Class;
        rdfs:label       "Audio Sink";
        rdfs:subClassOf  trn:PluginRole .

trn:AudioSource  rdf:type  owl:Class;
        rdfs:label       "Audio Source";
        rdfs:subClassOf  trn:PluginRole .

trn:PluginRole  rdf:type  owl:Class;
        rdfs:label  "Plugin Role" .

trn:DiscoveredPlugin  rdf:type  owl:Class;
        rdfs:comment  "Technical metadata extracted by the isolated VST3 inspector.";
        rdfs:label    "Discovered Plugin" .

trn:AudioInstrument  rdf:type  owl:Class;
        rdfs:label       "Audio Instrument";
        rdfs:subClassOf  trn:PluginRole .

trn:AudioMixer  rdf:type  owl:Class;
        rdfs:label       "Audio Mixer";
        rdfs:subClassOf  trn:PluginRole .

trn:PerformanceInstrument
        rdf:type         owl:Class;
        rdfs:label       "Performance Instrument";
        rdfs:subClassOf  trn:PluginRole .

trn:MultiPartMidi  rdf:type  owl:NamedIndividual;
        rdfs:label  "Multi-part MIDI" .

trn:Launchpad  rdf:type  owl:NamedIndividual;
        rdfs:comment  "Plugin expects a Novation Launchpad MIDI controller for full functionality.";
        rdfs:label    "Launchpad" .

trn:recommendedAfter  rdf:type  owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:Utility  rdf:type    owl:Class;
        rdfs:label       "Utility";
        rdfs:subClassOf  trn:PluginRole .

trn:DrumInstrument  rdf:type  owl:Class;
        rdfs:label       "Drum Instrument";
        rdfs:subClassOf  trn:Instrument .

trn:DrumMidi  rdf:type  owl:NamedIndividual;
        rdfs:label  "Drum MIDI" .

trn:Controller  rdf:type  owl:Class;
        rdfs:comment     "Emits control signals (CC, scene notes) that reshape other plugins rather than producing musical audio or notes.";
        rdfs:label       "Controller";
        rdfs:subClassOf  trn:PluginRole .

trn:HarmonyMidi  rdf:type  owl:NamedIndividual;
        rdfs:label  "Harmony MIDI" .

trn:ccTriggerValue  rdf:type  owl:DatatypeProperty;
        rdfs:comment  "When set, the mapping fires only when the CC value equals this integer (e.g. 127 for Reset triggers).";
        rdfs:label    "CC trigger value";
        rdfs:range    xsd:integer .

trn:targetParameter  rdf:type  owl:DatatypeProperty;
        rdfs:comment  "Symbol or display name of the plugin parameter driven by this CC.";
        rdfs:label    "target parameter";
        rdfs:range    xsd:string .

trn:ccRole  rdf:type  owl:DatatypeProperty;
        rdfs:comment  "Semantic name for this CC as emitted by the controller (e.g. Density, Energy, Scene, Reset).";
        rdfs:label    "CC role";
        rdfs:range    xsd:string .

trn:ccNumber  rdf:type  owl:DatatypeProperty;
        rdfs:comment  "MIDI continuous controller number (0–127).";
        rdfs:label    "CC number";
        rdfs:range    xsd:integer .

trn:ccMapping  rdf:type  owl:ObjectProperty;
        rdfs:comment  "Links a plugin profile to a blank node describing one CC→parameter binding.";
        rdfs:domain   trn:PluginProfile;
        rdfs:label    "CC mapping" .

trn:ControlMidi  rdf:type  owl:NamedIndividual;
        rdfs:comment  "MIDI CCs and scene notes used to reshape other generators rather than to produce musical content directly.";
        rdfs:label    "Control MIDI" .

trn:MidiGenerator  rdf:type  owl:Class;
        rdfs:label       "MIDI Generator";
        rdfs:subClassOf  trn:PluginRole .

trn:genre  rdf:type  owl:DatatypeProperty;
        rdfs:domain  trn:PluginProfile;
        rdfs:range   xsd:string .

trn:BassMidi  rdf:type  owl:NamedIndividual;
        rdfs:label  "Bass MIDI" .

trn:BassInstrument  rdf:type  owl:Class;
        rdfs:label       "Bass Instrument";
        rdfs:subClassOf  trn:Instrument .

trn:Instrument  rdf:type  owl:Class;
        rdfs:label       "Instrument";
        rdfs:subClassOf  trn:PluginRole .

trn:recommendedBefore
        rdf:type     owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:HostTransport  rdf:type  owl:NamedIndividual;
        rdfs:comment  "Plugin requires the host to provide tempo/beat position.";
        rdfs:label    "Host Transport" .

trn:requires  rdf:type  owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:MelodyMidi  rdf:type  owl:NamedIndividual;
        rdfs:label  "Melody MIDI" .

trn:Midi  rdf:type  owl:NamedIndividual;
        rdfs:label  "MIDI" .

trn:MidiProcessor  rdf:type  owl:Class;
        rdfs:label       "MIDI Processor";
        rdfs:subClassOf  trn:PluginRole .

trn:caution  rdf:type  owl:DatatypeProperty;
        rdfs:domain  trn:PluginProfile;
        rdfs:range   xsd:string .

trn:produces  rdf:type  owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:Audio  rdf:type  owl:NamedIndividual;
        rdfs:label  "Audio" .

trn:accepts  rdf:type  owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile .

trn:AudioEffect  rdf:type  owl:Class;
        rdfs:label       "Audio Effect";
        rdfs:subClassOf  trn:PluginRole .

trn:role  rdf:type   owl:ObjectProperty;
        rdfs:domain  trn:PluginProfile;
        rdfs:range   trn:PluginRole .

trn:bundleName  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:vendor  rdf:type  owl:DatatypeProperty;
        rdfs:range  xsd:string .

trn:PluginProfile  rdf:type  owl:Class;
        rdfs:comment  "Curated behavioural knowledge about a VST3 plugin.";
        rdfs:label    "Plugin Profile" .
