diff options
author | David Robillard <d@drobilla.net> | 2020-03-22 21:35:59 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2020-04-10 19:46:04 +0200 |
commit | 55f8ee266cd705a5abfdaf80e96427dd84350240 (patch) | |
tree | a6feb57229c459402cc2800b531107149dbf9430 | |
parent | adbb099856fd80445d7a6627460ce239c4bc902a (diff) | |
download | lv2-55f8ee266cd705a5abfdaf80e96427dd84350240.tar.xz |
Add more specific property types
-rw-r--r-- | lv2/atom/atom.ttl | 3 | ||||
-rw-r--r-- | lv2/event/event.ttl | 15 | ||||
-rw-r--r-- | lv2/midi/midi.ttl | 3 | ||||
-rw-r--r-- | lv2/patch/patch.ttl | 15 | ||||
-rw-r--r-- | lv2/port-props/port-props.ttl | 6 | ||||
-rw-r--r-- | lv2/presets/presets.ttl | 10 | ||||
-rw-r--r-- | lv2/state/state.ttl | 3 | ||||
-rw-r--r-- | lv2/ui/ui.ttl | 18 | ||||
-rw-r--r-- | wscript | 9 |
9 files changed, 58 insertions, 24 deletions
diff --git a/lv2/atom/atom.ttl b/lv2/atom/atom.ttl index 2f656d5..b0b7e0c 100644 --- a/lv2/atom/atom.ttl +++ b/lv2/atom/atom.ttl @@ -229,7 +229,8 @@ atom:childType rdfs:comment "The type of children in a container." . atom:supports - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "supports" ; rdfs:comment "A supported atom type." ; rdfs:range rdfs:Class . diff --git a/lv2/event/event.ttl b/lv2/event/event.ttl index ec1c4df..de400d4 100644 --- a/lv2/event/event.ttl +++ b/lv2/event/event.ttl @@ -41,14 +41,16 @@ ev:generic rdfs:comment "Port works with generic events." . ev:supportsEvent - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ev:EventPort ; rdfs:range rdfs:Class ; rdfs:label "supports event type" ; rdfs:comment "An event type supported by this port." . ev:inheritsEvent - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ev:EventPort , lv2:OutputPort ; rdfs:range lv2:Port ; @@ -56,7 +58,8 @@ ev:inheritsEvent rdfs:comment "Output port inherits event types from an input port." . ev:supportsTimeStamp - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ev:EventPort , lv2:InputPort ; rdfs:range rdfs:Class ; @@ -64,7 +67,8 @@ ev:supportsTimeStamp rdfs:comment "A time stamp type suported by this input port." . ev:generatesTimeStamp - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ev:EventPort , lv2:OutputPort ; rdfs:range rdfs:Class ; @@ -72,7 +76,8 @@ ev:generatesTimeStamp rdfs:comment "A time stamp type generated by this input port." . ev:inheritsTimeStamp - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ev:EventPort , lv2:OutputPort ; rdfs:range lv2:Port ; diff --git a/lv2/midi/midi.ttl b/lv2/midi/midi.ttl index a6af1cf..81f3495 100644 --- a/lv2/midi/midi.ttl +++ b/lv2/midi/midi.ttl @@ -269,7 +269,8 @@ midi:channel rdfs:comment "The channel number of a MIDI message." . midi:chunk - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:range midi:Chunk ; rdfs:label "MIDI chunk" ; rdfs:comment "A chunk of a MIDI message." . diff --git a/lv2/patch/patch.ttl b/lv2/patch/patch.ttl index a74a67e..e8fe8c6 100644 --- a/lv2/patch/patch.ttl +++ b/lv2/patch/patch.ttl @@ -140,7 +140,8 @@ patch:Set rdfs:comment "A compact request to set a property to a value." . patch:accept - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "accept" ; rdfs:domain patch:Request ; rdfs:range rdfs:Class ; @@ -179,14 +180,16 @@ patch:destination rdfs:comment "The destination to move the patch:subject to." . patch:property - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "property" ; rdfs:domain patch:Message ; rdfs:range rdf:Property ; rdfs:comment "The property for a patch:Set or patch:Get message." . patch:readable - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "readable" ; rdfs:range rdf:Property ; rdfs:comment "A property that can be read with a patch:Get message." . @@ -227,7 +230,8 @@ patch:subject rdfs:comment "The subject this message applies to." . patch:value - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:label "value" ; rdfs:domain patch:Set ; rdfs:range rdf:Property ; @@ -239,7 +243,8 @@ patch:wildcard rdfs:comment "A wildcard that matches any resource." . patch:writable - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "writable" ; rdfs:range rdf:Property ; rdfs:comment "A property that can be set with a patch:Set or patch:Patch message." . diff --git a/lv2/port-props/port-props.ttl b/lv2/port-props/port-props.ttl index 6dc62d0..1ddeed0 100644 --- a/lv2/port-props/port-props.ttl +++ b/lv2/port-props/port-props.ttl @@ -62,14 +62,16 @@ pprops:notOnGUI rdfs:comment "Port that should not be displayed on a GUI." . pprops:displayPriority - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:domain lv2:Port ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "display priority" ; rdfs:comment "A priority ranking this port in importance to its plugin." . pprops:rangeSteps - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:domain lv2:Port ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "range steps" ; diff --git a/lv2/presets/presets.ttl b/lv2/presets/presets.ttl index 1627ad4..c1caf43 100644 --- a/lv2/presets/presets.ttl +++ b/lv2/presets/presets.ttl @@ -35,20 +35,24 @@ pset:Preset ] . pset:bank - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain pset:Preset ; rdfs:range pset:Bank ; rdfs:label "bank" ; rdfs:comment "The bank this preset belongs to." . pset:value - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty , + owl:FunctionalProperty ; rdfs:domain lv2:PortBase ; rdfs:label "value" ; rdfs:comment "The value of a port in a preset." . pset:preset - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain lv2:PluginBase ; rdfs:range pset:Preset ; rdfs:label "preset" ; diff --git a/lv2/state/state.ttl b/lv2/state/state.ttl index a344d5f..704b312 100644 --- a/lv2/state/state.ttl +++ b/lv2/state/state.ttl @@ -27,7 +27,8 @@ state:loadDefaultState rdfs:comment "A feature indicating that the plugin has default state." . state:state - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:label "state" ; rdfs:range state:State ; rdfs:comment "The state of an LV2 plugin instance." . diff --git a/lv2/ui/ui.ttl b/lv2/ui/ui.ttl index 6ff0ad9..61f8bca 100644 --- a/lv2/ui/ui.ttl +++ b/lv2/ui/ui.ttl @@ -70,14 +70,16 @@ ui:CocoaUI rdfs:comment "A UI where the widget is a pointer to a NSView." . ui:ui - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain lv2:Plugin ; rdfs:range ui:UI ; rdfs:label "user interface" ; rdfs:comment "Relates a plugin to a UI that applies to it." . ui:binary - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; owl:sameAs lv2:binary ; owl:deprecated "true"^^xsd:boolean ; rdfs:label "binary" ; @@ -163,7 +165,8 @@ ui:portIndex rdfs:comment "The index of the port a portNotification applies to." . ui:notifyType - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ui:PortNotification ; rdfs:label "notify type" ; rdfs:comment "A particular type that the UI should be notified of." . @@ -206,19 +209,22 @@ ui:showInterface rdfs:comment "An interface for showing and hiding a window for a UI." . ui:windowTitle - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:range xsd:string ; rdfs:label "window title" ; rdfs:comment "The title for the window shown by LV2UI_Show_Interface." . ui:updateRate - a rdf:Property ; + a rdf:Property , + owl:DatatypeProperty ; rdfs:range xsd:float ; rdfs:label "update rate" ; rdfs:comment "The target rate, in Hz, to send updates to the UI." . ui:protocol - a rdf:Property ; + a rdf:Property , + owl:ObjectProperty ; rdfs:domain ui:PortNotification ; rdfs:range ui:PortProtocol ; rdfs:label "protocol" ; @@ -510,6 +510,15 @@ def test_vocabularies(check, specs, files): check(lambda: str(documentation).endswith('\n\n'), name = "%s documentation ends with blank line" % subject) + # Check that all properties are either datatype or object properties + for r in sorted(model.triples([None, rdf.type, rdf.Property])): + subject = r[0] + + check(lambda: ((owl.DatatypeProperty in model.objects(subject, rdf.type)) or + (owl.ObjectProperty in model.objects(subject, rdf.type)) or + (owl.AnnotationProperty in model.objects(subject, rdf.type))), + name = "%s is a Datatype/Object/Annotation property" % subject) + def test(tst): import tempfile |