An extension for setting named/typed variables on an instance of an LV2 Plugin (or anything else). A "variable" is really just a (reified) RDF statement with an implicit subject (e.g. the plugin instance). Variables serve as a portable, network transparent, and serialisable mechanism for clients (e.g. user interfaces, programs) to control any parameter of a running plugin instance. Because variables are 'keyed' by URI (the predicate), future extensions can define variables with specific meanings or restricted/extended types. The value (rdf:value) of a variable may be anything, but hosts or plugins aren't guaranteed to support anything other than simple typed literals. Serialisation and code access to complex variables is considered outside the scope of this extension. Hosts and plugins SHOULD use the following types for appropriate values: RDF Type Data Type xsd:string string xsd:decimal floating point number xsd:integer integer number xsd:boolean boolean value This extension does not currently define a code mechanism for access to variables. A future revision, or a different extension, may. An example of a plugin with several variables: <http://example.org/plugin> a lv2:Plugin ; lv2var:variable [ rdf:predicate <http://example.org/greetingology#Greeting> ; rdf:value "Hello, cruel world." ] , [ rdf:predicate <http://example.org/matheybits#Coeff> ; rdf:value 1.23456 ] , [ rdf:predicate <http://example.org/databits#BigValue> ; rdf:value [ a somext:Something ; someext:foo "Foo?" ; someext:bar "Bar." ; someext:baz 1234.0 ] ] .
Must have exactly one rdf:predicate which is a resource
Must have exactly one rdf:value (of any type)
Relates an LV2 Variable to some Resource, usually a plugin instance. The domain of this property is not restricted, it may be used for anything. The range is implicitly an lv2var:Variable, the 'a lv2var:Variable' triple is not mandatory.