From b75c914fc9a2fd99b7082e76e968f214b184c993 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 30 Mar 2012 18:12:43 +0000 Subject: Add missing ui:ui and ui:binary property definitions. Mark up properties more precisely for validation. --- lv2/lv2plug.in/ns/ext/atom/atom.ttl | 17 +++-- lv2/lv2plug.in/ns/ext/midi/midi.ttl | 80 +++++++++++++++-------- lv2/lv2plug.in/ns/ext/patch/patch.ttl | 36 +++++----- lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl | 68 +++++++++++++++++-- lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl | 10 ++- lv2/lv2plug.in/ns/ext/time/time.ttl | 49 ++++++++++---- lv2/lv2plug.in/ns/extensions/ui/ui.ttl | 17 +++++ lv2/lv2plug.in/ns/lv2core/lv2.h | 1 - lv2/lv2plug.in/ns/lv2core/lv2core.ttl | 50 +++++++++----- 9 files changed, 239 insertions(+), 89 deletions(-) (limited to 'lv2/lv2plug.in/ns') diff --git a/lv2/lv2plug.in/ns/ext/atom/atom.ttl b/lv2/lv2plug.in/ns/ext/atom/atom.ttl index bda776d..1a27389 100644 --- a/lv2/lv2plug.in/ns/ext/atom/atom.ttl +++ b/lv2/lv2plug.in/ns/ext/atom/atom.ttl @@ -71,7 +71,8 @@ extension.

atom:cType a rdf:Property , - owl:DatatypeProperty ; + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:label "C type" ; rdfs:domain rdfs:Class ; rdfs:range xsd:string ; @@ -370,7 +371,9 @@ atom:TimeUnit lv2:documentation "

A unit for atom:Event time stamps.

" . atom:frameTime - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:decimal ; rdfs:label "Frame time" ; lv2:documentation """ @@ -378,7 +381,9 @@ atom:frameTime """ . atom:beatTime - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:decimal ; rdfs:label "Beat time" ; lv2:documentation """ @@ -439,7 +444,8 @@ However, to be robust, hosts SHOULD initialise output ports to a safe sentinel """ . atom:bufferType - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain atom:AtomPort ; rdfs:label "Buffer type" ; lv2:documentation """ @@ -463,7 +469,8 @@ that, use atom:supports.

""" . atom:childType - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "Child type" ; rdfs:comment "The type of a container's children." . diff --git a/lv2/lv2plug.in/ns/ext/midi/midi.ttl b/lv2/lv2plug.in/ns/ext/midi/midi.ttl index 53f0ea1..02864f4 100644 --- a/lv2/lv2plug.in/ns/ext/midi/midi.ttl +++ b/lv2/lv2plug.in/ns/ext/midi/midi.ttl @@ -21,6 +21,7 @@ @prefix foaf: . @prefix lv2: . @prefix midi: . +@prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix xsd: . @@ -112,10 +113,10 @@ midi:Aftertouch midi:statusMask "A0"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:noteNumber ; + midi:property midi:noteNumber ] , [ midi:byteNumber 1 ; - midi:property midi:pressure ; + midi:property midi:pressure ] . midi:Bender @@ -126,7 +127,7 @@ midi:Bender midi:chunk [ midi:byteNumber 0 , 1 ; - midi:property midi:benderValue ; + midi:property midi:benderValue ] . midi:ChannelPressure @@ -136,7 +137,7 @@ midi:ChannelPressure midi:statusMask "D0"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:pressure ; + midi:property midi:pressure ] . midi:Chunk @@ -162,10 +163,10 @@ midi:Controller midi:statusMask "B0"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:controllerNumber ; + midi:property midi:controllerNumber ] , [ midi:byteNumber 1 ; - midi:property midi:controllerValue ; + midi:property midi:controllerValue ] . midi:MidiEvent @@ -204,10 +205,10 @@ midi:NoteOff midi:statusMask "80"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:noteNumber ; + midi:property midi:noteNumber ] , [ midi:byteNumber 1 ; - midi:property midi:velocity ; + midi:property midi:velocity ] . midi:NoteOn @@ -217,10 +218,10 @@ midi:NoteOn midi:statusMask "90"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:noteNumber ; + midi:property midi:noteNumber ] , [ midi:byteNumber 1 ; - midi:property midi:velocity ; + midi:property midi:velocity ] . midi:ProgramChange @@ -230,7 +231,7 @@ midi:ProgramChange midi:statusMask "C0"^^xsd:hexBinary ; midi:chunk [ midi:byteNumber 0 ; - midi:property midi:programNumber ; + midi:property midi:programNumber ] . midi:QuarterFrame @@ -253,7 +254,7 @@ midi:SongPosition midi:chunk [ midi:byteNumber 0 , 1 ; - midi:property midi:songPosition ; + midi:property midi:songPosition ] . midi:SongSelect @@ -315,12 +316,15 @@ midi:VoiceMessage midi:statusMask "F0"^^xsd:hexBinary . midi:benderValue - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:short ; rdfs:comment "The value of a pitch bender (-8192 to 8192)." . midi:byteNumber - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:domain midi:Chunk ; rdfs:range xsd:unsignedByte ; rdfs:comment "The 0-based index of a byte which is part of this chunk." . @@ -329,57 +333,77 @@ midi:chunk a rdf:Property ; rdfs:range xsd:byte , xsd:hexBinary ; - rdfs:comment "The exact status byte for a message of this type." . + rdfs:comment "A chunk of a MIDI message." . midi:controllerNumber - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "The numberic ID of a controller (0 to 127)." . midi:controllerValue - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "The value of a controller (0 to 127)." . midi:noteNumber - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; - rdfs:comment "The numeric ID of a controller (0 to 127)." . + rdfs:comment "The numeric ID of a note (0 to 127)." . midi:pressure - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "Key pressure (0 to 127)." . midi:programNumber - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "The numeric ID of a program (0 to 127)." . midi:property - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain midi:Chunk ; rdfs:range rdf:Property ; rdfs:comment "The property this chunk represents." . midi:songNumber - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "The numeric ID of a song (0 to 127)." . midi:songPosition - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:short ; rdfs:comment "Song position in MIDI beats (16th notes) (-8192 to 8192)." . midi:status - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte , xsd:hexBinary ; rdfs:comment "The exact status byte for a message of this type." . midi:statusMask - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte , xsd:hexBinary ; rdfs:comment """ @@ -387,6 +411,8 @@ The status byte for a message of this type on channel 1, i.e. a status byte with the lower nibble set to zero.""" . midi:velocity - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:range xsd:byte ; rdfs:comment "The velocity of a note message (0 to 127)." . diff --git a/lv2/lv2plug.in/ns/ext/patch/patch.ttl b/lv2/lv2plug.in/ns/ext/patch/patch.ttl index f5eef6c..9e60939 100644 --- a/lv2/lv2plug.in/ns/ext/patch/patch.ttl +++ b/lv2/lv2plug.in/ns/ext/patch/patch.ttl @@ -31,7 +31,7 @@ doap:name "LV2 Patch" ; doap:release [ doap:created "2012-02-08" ; - doap:revision "0.1" ; + doap:revision "0.1" ] ; doap:shortdesc "Messages for accessing and manipulating properties." ; lv2:documentation """ @@ -156,7 +156,7 @@ patch:Insert rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty patch:subject ; + owl:onProperty patch:subject ] ; lv2:documentation """

Insert the patch:body at patch:subject. If the subject does not exist, it is @@ -176,11 +176,11 @@ patch:Move rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty patch:subject ; + owl:onProperty patch:subject ] , [ a owl:Restriction ; owl:cardinality 1 ; - owl:onProperty patch:destination ; + owl:onProperty patch:destination ] ; lv2:documentation """

Move the patch:subject to patch:destination. After this, patch:destination has @@ -195,15 +195,15 @@ patch:Patch [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty patch:subject ; + owl:onProperty patch:subject ] , [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty patch:add ; + owl:onProperty patch:add ] , [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty patch:remove ; + owl:onProperty patch:remove ] ; lv2:documentation """

A method for modifying the properties of an object.

@@ -236,7 +236,7 @@ patch:Put rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty patch:subject ; + owl:onProperty patch:subject ] ; lv2:documentation """

Put the patch:body as the patch:subject. If the subject does not already exist, @@ -268,7 +268,7 @@ patch:Set [ a owl:Restriction ; owl:cardinality 1 ; - owl:onProperty patch:body ; + owl:onProperty patch:body ] ; lv2:documentation """

A method for setting properties of an object to unique values.

@@ -309,12 +309,14 @@ patch is equivalent to:

patch:add a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Message . patch:body a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Message ; lv2:documentation """

The body of a message.

@@ -325,12 +327,14 @@ part of.

patch:destination a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Message . patch:request a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Response ; rdfs:range patch:Request ; lv2:documentation """ @@ -339,10 +343,12 @@ patch:request patch:subject a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Message . patch:remove a rdf:Property , - owl:ObjectProperty ; + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain patch:Message . diff --git a/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl b/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl index a827c3f..005f64f 100644 --- a/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl +++ b/lv2/lv2plug.in/ns/ext/port-groups/port-groups.ttl @@ -92,8 +92,8 @@ An element of a group, which has a designation and an optional index. """ . pg:element - a rdf:Property ; - rdfs:domain pg:Group ; + a rdf:Property , + owl:ObjectProperty ; rdfs:range pg:Element ; rdfs:label "element" ; rdfs:comment """ @@ -102,7 +102,8 @@ designation with a possible index). """ . pg:sideChainOf - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "Side-chain of" ; rdfs:comment """ Indicates that this port or group should be considered a "side chain" of @@ -112,7 +113,9 @@ some other group, rather than an independent input itself. """ . pg:subGroupOf - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain pg:Group ; rdfs:range pg:Group ; rdfs:label "Sub-group of" ; @@ -125,7 +128,8 @@ symbol. """ . pg:source - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain pg:OutputGroup ; rdfs:range pg:InputGroup ; rdfs:label "Source" ; @@ -139,6 +143,7 @@ types, e.g. a mono->stereo plugin. pg:mainInput a rdf:Property , + owl:ObjectProperty , owl:FunctionalProperty ; rdfs:domain lv2:Plugin ; rdfs:range pg:InputGroup ; @@ -151,6 +156,7 @@ more than one pg:mainInput property. pg:mainOutput a rdf:Property , + owl:ObjectProperty , owl:FunctionalProperty ; rdfs:domain lv2:Plugin ; rdfs:range pg:OutputGroup ; @@ -161,7 +167,9 @@ output group SHOULD have the main input group as a pg:source. """ . pg:group - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:domain lv2:Port ; rdfs:range pg:Group ; rdfs:label "In port group" ; @@ -426,6 +434,54 @@ pg:SevenPointOneWideGroup lv2:designation pg:lowFrequencyEffects ] . +amb:ACN0 + a lv2:Channel . + +amb:ACN1 + a lv2:Channel . + +amb:ACN2 + a lv2:Channel . + +amb:ACN3 + a lv2:Channel . + +amb:ACN4 + a lv2:Channel . + +amb:ACN5 + a lv2:Channel . + +amb:ACN6 + a lv2:Channel . + +amb:ACN7 + a lv2:Channel . + +amb:ACN8 + a lv2:Channel . + +amb:ACN9 + a lv2:Channel . + +amb:ACN10 + a lv2:Channel . + +amb:ACN11 + a lv2:Channel . + +amb:ACN12 + a lv2:Channel . + +amb:ACN13 + a lv2:Channel . + +amb:ACN14 + a lv2:Channel . + +amb:ACN15 + a lv2:Channel . + pg:AmbisonicGroup a rdfs:Class ; rdfs:subClassOf pg:Group ; diff --git a/lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl b/lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl index 6b10a4d..72f81a2 100644 --- a/lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl +++ b/lv2/lv2plug.in/ns/ext/resize-port/resize-port.ttl @@ -16,6 +16,7 @@ @prefix doap: . @prefix foaf: . @prefix lv2: . +@prefix owl: . @prefix rdf: . @prefix rdfs: . @prefix rsz: . @@ -44,7 +45,8 @@ amount of space required for a particular port buffer.

""" . rsz:asLargeAs - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:domain lv2:Port ; rdfs:range lv2:Symbol ; rdfs:label "as large as" ; @@ -62,9 +64,11 @@ enough to copy I, or NULL if the port is lv2:connectionOptional. """ . rsz:minimumSize - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain lv2:Port ; - rdfs:range lv2:Symbol ; + rdfs:range xsd:nonNegativeInteger ; rdfs:label "minimum size" ; rdfs:comment """ Indicates that a port requires a buffer at least this large, in bytes. diff --git a/lv2/lv2plug.in/ns/ext/time/time.ttl b/lv2/lv2plug.in/ns/ext/time/time.ttl index 4f21505..db6a3c1 100644 --- a/lv2/lv2plug.in/ns/ext/time/time.ttl +++ b/lv2/lv2plug.in/ns/ext/time/time.ttl @@ -13,12 +13,13 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -@prefix time: . @prefix doap: . @prefix foaf: . @prefix lv2: . +@prefix owl: . @prefix rdf: . @prefix rdfs: . +@prefix time: . @prefix xsd: . @@ -50,7 +51,7 @@ The meter describes how many beats are in one bar.

time:Time a rdfs:Class ; - rdfs:subClassOf time:Position ; + rdfs:subClassOf time:Position ; rdfs:label "A point in time" ; rdfs:comment "A point in time in some unit/dimension." . @@ -63,73 +64,93 @@ both a point and a speed, which precisely defines a time within a timeline.

time:Rate a rdfs:Class ; - rdfs:subClassOf time:Position ; + rdfs:subClassOf time:Position ; rdfs:label "Rate" ; lv2:documentation """

The rate of passage of time in terms of one unit with respect to another.

""" . time:position - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty , + owl:FunctionalProperty ; rdfs:range time:Position ; rdfs:label "Position in time" . time:barBeat - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Time ; rdfs:range xsd:float ; rdfs:label "Beat within this bar" ; rdfs:comment "The beat number within the bar, from 0 to beatsPerBar." . time:bar - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Time ; rdfs:range xsd:long ; rdfs:label "Global position in bars" . time:beat - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Time ; rdfs:range xsd:double ; rdfs:label "Global position in beats" . time:beatUnit - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Rate ; - rdfs:range xsd:double ; + rdfs:range xsd:nonNegativeInteger ; lv2:documentation """

Beat unit, the note value that counts as one beat. This is the bottom number in a time signature: 2 for half note, 4 for quarter note, and so on.

""" . time:beatsPerBar - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Rate ; rdfs:range xsd:float ; rdfs:label "Beats per bar" . time:beatsPerMinute - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Rate ; rdfs:range xsd:float ; rdfs:label "Beats per minute" ; rdfs:comment "Tempo in beats per minute." . time:frame - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Time ; rdfs:range xsd:long ; rdfs:label "Global position in frames" . time:framesPerSecond - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Rate ; rdfs:range xsd:float ; rdfs:label "Frames per second" ; rdfs:comment "Frame rate in frames per second." . time:speed - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain time:Rate ; rdfs:range xsd:float ; rdfs:label "Speed" ; diff --git a/lv2/lv2plug.in/ns/extensions/ui/ui.ttl b/lv2/lv2plug.in/ns/extensions/ui/ui.ttl index f6b8e19..efc1bb1 100644 --- a/lv2/lv2plug.in/ns/extensions/ui/ui.ttl +++ b/lv2/lv2plug.in/ns/extensions/ui/ui.ttl @@ -137,6 +137,23 @@ A UI where the LV2_Widget is an X11 window ID. Note this is actually an integer, i.e. the LV2_Widget is not a pointer to an X11 window ID, but should be itself taken as an integer value.""" . +ui:ui + a rdf:Property ; + rdfs:domain lv2:Plugin ; + rdfs:range ui:UI ; + rdfs:comment """ +Relates a plugin to a UI that applies to it. +""" . + +ui:binary + a rdf:Property ; + owl:sameAs lv2:binary ; + owl:deprecated "true"^^xsd:boolean ; + rdfs:comment """ +The shared library a UI resides in. This property is redundant, new UIs SHOULD +use lv2:binary, however hosts MUST still support ui:binary at this time. +""" . + ui:makeSONameResident a lv2:Feature ; owl:deprecated "true"^^xsd:boolean ; diff --git a/lv2/lv2plug.in/ns/lv2core/lv2.h b/lv2/lv2plug.in/ns/lv2core/lv2.h index e0be241..0b04bce 100644 --- a/lv2/lv2plug.in/ns/lv2core/lv2.h +++ b/lv2/lv2plug.in/ns/lv2core/lv2.h @@ -97,7 +97,6 @@ #define LV2_CORE__index LV2_CORE_PREFIX "index" #define LV2_CORE__integer LV2_CORE_PREFIX "integer" #define LV2_CORE__isLive LV2_CORE_PREFIX "isLive" -#define LV2_CORE__isParameter LV2_CORE_PREFIX "isParameter" #define LV2_CORE__latency LV2_CORE_PREFIX "latency" #define LV2_CORE__maximum LV2_CORE_PREFIX "maximum" #define LV2_CORE__microVersion LV2_CORE_PREFIX "microVersion" diff --git a/lv2/lv2plug.in/ns/lv2core/lv2core.ttl b/lv2/lv2plug.in/ns/lv2core/lv2core.ttl index 1648f30..746b47f 100644 --- a/lv2/lv2plug.in/ns/lv2core/lv2core.ttl +++ b/lv2/lv2plug.in/ns/lv2core/lv2core.ttl @@ -23,6 +23,7 @@ @prefix xsd: . lv2:Specification a rdfs:Class , owl:Class ; + rdfs:subClassOf doap:Project ; lv2:documentation """

An LV2 specification (i.e. this specification, or an LV2 extension).

@@ -185,7 +186,8 @@ will do), but the value itself MUST be non-negative. """ ] , [ a owl:Restriction ; owl:onProperty lv2:symbol ; - owl:someValuesFrom xsd:string ; + owl:allValuesFrom xsd:string ; + owl:cardinality 1 ; rdfs:comment """ A port MUST have a single lv2:symbol which is of type xsd:string with no language tag. @@ -386,29 +388,40 @@ if/when to load the data, knowing that it describes an additional resource and not the plugin itself.

""" . -lv2:index a rdf:Property , owl:DatatypeProperty ; +lv2:index a rdf:Property , owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "index" ; rdfs:comment "A non-negative zero-based index." . -lv2:symbol a rdf:Property , owl:DatatypeProperty ; - rdfs:label "symbol" ; +lv2:Symbol a rdfs:Datatype ; + rdfs:subClassOf xsd:string ; + xsd:pattern "[_a-zA-Z][_a-zA-Z0-9]*$" ; rdfs:comment """ -A short name used as a machine and human readable identifier. +A short restricted name used as a machine and human readable identifier. + +The first character must be one of _, a-z or A-Z and subsequent characters can +be from _, a-z, A-Z and 0-9. This is a valid C identifier, and compatible in +most other contexts with restricted string identifiers (e.g. file paths). +""" . -The first character must be one of _, a-z or A-Z and subsequenct characters can -be from _, a-z, A-Z and 0-9. +lv2:symbol a rdf:Property , owl:DatatypeProperty , owl:FunctionalProperty ; + rdfs:label "symbol" ; + rdfs:range lv2:Symbol ; + lv2:documentation """ +

The value of this property MUST conform to the rules for lv2:Symbol, and +MUST NOT have a language tag.

-A language tag MUST NOT be used on this property. The symbol uniquely -identifies the port on a plugin with a given URI (i.e. the plugin author MUST -change the plugin URI if a port symbol is changed or removed). +

A symbol is a unique identifier with respect to the parent (e.g. a port's +symbol is a unique identifier with respect to its plugin). The plugin author +MUST change the plugin URI if a port symbol is changed or removed.

""" . lv2:name a rdf:Property , owl:DatatypeProperty ; - rdfs:domain lv2:Port ; rdfs:label "name" ; rdfs:comment """ -A display name for labeling the Port in a user interface. +A display name for labeling in a user interface. Unlike lv2:symbol this is +unrestricted and may be translated. The lv2:name MUST NOT be used as an +identifier. This property is required for Ports, but MUST NOT be used by the host for port identification. The plugin author may change the values of this @@ -433,6 +446,7 @@ lv2:Channel a rdfs:Class , owl:Class ; lv2:Parameter a rdfs:Class , owl:Class ; rdfs:subClassOf lv2:Designation ; + #owl:equivalentClass rdf:Property ; lv2:documentation """

A parameter, i.e. a recognized property. A parameter is a designation for a control.

@@ -445,7 +459,7 @@ messages, are possible but not defined here.

""" . lv2:hasParameter a rdf:Property , owl:ObjectProperty ; - rdfs:range lv2:Parameter ; + #rdfs:range lv2:Parameter ; rdfs:label "has parameter" ; lv2:documentation """

Indicates that a specific parameter is supported. This predicate is to @@ -457,8 +471,8 @@ parameters, simply use lv2:designation on the port for that.

not restricted to plugins.

""" . -lv2:designation a rdf:Property , owl:ObjectProperty ; - rdfs:range lv2:Designation ; +lv2:designation a rdf:Property , owl:ObjectProperty , owl:FunctionalProperty ; + #rdfs:range lv2:Designation ; rdfs:label "assignment" ; lv2:documentation """

Indicates a channel or parameter designation.

@@ -515,7 +529,7 @@ lv2:scalePoint a rdf:Property , owl:ObjectProperty ; rdfs:label "Scale point" ; rdfs:comment "Relates a Port to its ScalePoints." . -lv2:default a rdf:Property , owl:DatatypeProperty ; +lv2:default a rdf:Property , owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:domain lv2:Port ; rdfs:label "Default value" ; rdfs:comment """ @@ -523,7 +537,7 @@ The default value that the host SHOULD set this port to when there is no other information available. """ . -lv2:minimum a rdf:Property , owl:DatatypeProperty ; +lv2:minimum a rdf:Property , owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:domain lv2:Port ; rdfs:label "Minimum value" ; lv2:documentation """ @@ -532,7 +546,7 @@ is a soft limit; the plugin is required to gracefully accept all values in the range of a port's data type.

""" . -lv2:maximum a rdf:Property , owl:DatatypeProperty ; +lv2:maximum a rdf:Property , owl:DatatypeProperty , owl:FunctionalProperty ; rdfs:domain lv2:Port ; rdfs:label "Maximum value" ; lv2:documentation """ -- cgit v1.2.1