aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--doc/asciidoc.css2
-rw-r--r--doc/reference.doxygen.in47
-rw-r--r--lv2/atom/atom.meta.ttl2
-rw-r--r--lv2/atom/atom.ttl5
-rw-r--r--lv2/atom/manifest.ttl2
-rw-r--r--lv2/buf-size/buf-size.ttl4
-rw-r--r--lv2/core/lv2_util.h2
-rw-r--r--lv2/core/lv2core.meta.ttl6
-rw-r--r--lv2/core/lv2core.ttl5
-rw-r--r--lv2/core/manifest.ttl2
-rw-r--r--lv2/core/meta.ttl4
-rw-r--r--lv2/event/event.meta.ttl2
-rw-r--r--lv2/event/event.ttl5
-rw-r--r--lv2/event/manifest.ttl2
-rw-r--r--lv2/log/log.ttl3
-rw-r--r--lv2/morph/morph.ttl3
-rw-r--r--lv2/options/options.ttl3
-rw-r--r--lv2/parameters/parameters.ttl5
-rw-r--r--lv2/patch/manifest.ttl2
-rw-r--r--lv2/patch/patch.meta.ttl2
-rw-r--r--lv2/patch/patch.ttl6
-rw-r--r--lv2/port-groups/port-groups.ttl3
-rw-r--r--lv2/port-props/port-props.ttl3
-rw-r--r--lv2/presets/presets.ttl7
-rw-r--r--lv2/resize-port/resize-port.ttl3
-rw-r--r--lv2/state/manifest.ttl2
-rw-r--r--lv2/state/state.meta.ttl2
-rw-r--r--lv2/state/state.ttl3
-rw-r--r--lv2/ui/manifest.ttl2
-rw-r--r--lv2/ui/ui.meta.ttl2
-rw-r--r--lv2/ui/ui.ttl8
-rw-r--r--lv2/urid/urid.ttl3
-rw-r--r--plugins/eg-amp.lv2/amp.c2
-rw-r--r--plugins/eg-metro.lv2/metro.c2
-rw-r--r--plugins/eg-sampler.lv2/sampler.c2
-rw-r--r--schemas.lv2/dcs.ttl24
-rw-r--r--schemas.lv2/dct.ttl3
-rw-r--r--schemas.lv2/doap.ttl166
-rw-r--r--schemas.lv2/foaf.ttl2
-rw-r--r--schemas.lv2/rdfs.ttl2
-rw-r--r--schemas.lv2/xsd.ttl226
-rwxr-xr-xutil/lv2_validate.in14
-rw-r--r--wscript25
44 files changed, 238 insertions, 384 deletions
diff --git a/README.md b/README.md
index a69441b..0a4b4ea 100644
--- a/README.md
+++ b/README.md
@@ -79,4 +79,4 @@ included specifications if Doxygen is available. For example:
./waf configure --docs
./waf
-Specification documentation is also availabe online at <http://lv2plug.in/ns>.
+Specification documentation is also available online at <http://lv2plug.in/ns>.
diff --git a/doc/asciidoc.css b/doc/asciidoc.css
index 59bf677..2e64544 100644
--- a/doc/asciidoc.css
+++ b/doc/asciidoc.css
@@ -435,7 +435,7 @@ th.tableblock {
td.tableblock, th.tableblock {
border: 1px dashed #ccc;
}
-/* Because the table frame attribute is overriden by CSS in most browsers. */
+/* Because the table frame attribute is overridden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
border-style: none;
}
diff --git a/doc/reference.doxygen.in b/doc/reference.doxygen.in
index 053b542..d5608ca 100644
--- a/doc/reference.doxygen.in
+++ b/doc/reference.doxygen.in
@@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
-# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all generated output in the proper direction.
-# Possible values are: None, LTR, RTL and Context.
-# The default value is: None.
-
-OUTPUT_TEXT_DIRECTION = None
-
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
@@ -271,14 +263,6 @@ OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
-# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
-# sources only. Doxygen will then generate output that is more tailored for that
-# language. For instance, namespaces will be presented as modules, types will be
-# separated into more groups, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_SLICE = NO
-
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
@@ -1073,13 +1057,6 @@ VERBATIM_HEADERS = NO
ALPHABETICAL_INDEX = NO
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1682,15 +1659,6 @@ LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
-# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
-# generate index for LaTeX.
-# Note: This tag is used in the generated output file (.tex).
-# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
-# The default value is: \makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_MAKEINDEX_CMD = \makeindex
-
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
@@ -1825,14 +1793,6 @@ LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
-# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
-# path from which the emoji images will be read. If a relative path is entered,
-# it will be relative to the LATEX_OUTPUT directory. If left blank the
-# LATEX_OUTPUT directory will be used.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EMOJI_DIRECTORY =
-
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1970,13 +1930,6 @@ XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
-# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
-# namespace members in file scope as well, matching the HTML output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_NS_MEMB_FILE_SCOPE = NO
-
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
diff --git a/lv2/atom/atom.meta.ttl b/lv2/atom/atom.meta.ttl
index 9d714d8..cc09060 100644
--- a/lv2/atom/atom.meta.ttl
+++ b/lv2/atom/atom.meta.ttl
@@ -258,7 +258,7 @@ may assume any binary Path (e.g. in an event payload) is a valid file path
which can passed to system functions like fopen() directly, without any
character encoding or escape expansion required.
-Any implemenation that creates a Path atom to transmit to another is
+Any implementation that creates a Path atom to transmit to another is
responsible for ensuring it is valid. A Path SHOULD always be absolute, unless
there is some mechanism in place that defines a base path. Since this is not
the case for plugin instances, effectively any Path sent to or received from a
diff --git a/lv2/atom/atom.ttl b/lv2/atom/atom.ttl
index ddfb430..ef221ad 100644
--- a/lv2/atom/atom.ttl
+++ b/lv2/atom/atom.ttl
@@ -14,7 +14,10 @@
<forge.h> ,
<atom.meta.ttl> ;
rdfs:label "LV2 Atom" ;
- rdfs:comment "A generic value container and several data types." .
+ rdfs:comment "A generic value container and several data types." ;
+ owl:imports <http://lv2plug.in/ns/lv2core> ,
+ <http://lv2plug.in/ns/extensions/ui> ,
+ <http://lv2plug.in/ns/extensions/units> .
atom:cType
a rdf:Property ,
diff --git a/lv2/atom/manifest.ttl b/lv2/atom/manifest.ttl
index 46d6de5..9cf13aa 100644
--- a/lv2/atom/manifest.ttl
+++ b/lv2/atom/manifest.ttl
@@ -4,6 +4,6 @@
<http://lv2plug.in/ns/ext/atom>
a lv2:Specification ;
lv2:minorVersion 2 ;
- lv2:microVersion 2 ;
+ lv2:microVersion 3 ;
rdfs:seeAlso <atom.ttl> .
diff --git a/lv2/buf-size/buf-size.ttl b/lv2/buf-size/buf-size.ttl
index 8863198..c78d2cc 100644
--- a/lv2/buf-size/buf-size.ttl
+++ b/lv2/buf-size/buf-size.ttl
@@ -11,7 +11,9 @@
rdfs:label "LV2 Buf Size" ;
rdfs:comment "Access to, and restrictions on, buffer sizes." ;
rdfs:seeAlso <buf-size.h> ,
- <buf-size.meta.ttl> .
+ <buf-size.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> ,
+ <http://lv2plug.in/ns/ext/options> .
bufsz:boundedBlockLength
a lv2:Feature ;
diff --git a/lv2/core/lv2_util.h b/lv2/core/lv2_util.h
index 5dab8a0..f3766aa 100644
--- a/lv2/core/lv2_util.h
+++ b/lv2/core/lv2_util.h
@@ -81,7 +81,7 @@ lv2_features_query(const LV2_Feature* const* features, ...)
const char* uri = NULL;
while ((uri = va_arg(args, const char*))) {
void** data = va_arg(args, void**);
- bool required = va_arg(args, int);
+ bool required = (bool)va_arg(args, int);
*data = lv2_features_data(features, uri);
if (required && !*data) {
diff --git a/lv2/core/lv2core.meta.ttl b/lv2/core/lv2core.meta.ttl
index 465917d..7dac5c1 100644
--- a/lv2/core/lv2core.meta.ttl
+++ b/lv2/core/lv2core.meta.ttl
@@ -256,7 +256,7 @@ necessarily constant).
### Threading Rules
-To faciliate use in multi-threaded programs, LV2 functions are partitioned into
+To facilitate use in multi-threaded programs, LV2 functions are partitioned into
several threading classes:
| Discovery Class | Instantiation Class | Audio Class |
@@ -271,7 +271,7 @@ Hosts MUST guarantee that:
* A function in any class is never called concurrently with another function
in that class.
- * A _Discovery_ function is never called concurrently with any other fuction
+ * A _Discovery_ function is never called concurrently with any other function
in the same shared object file.
* An _Instantiation_ function for an instance is never called concurrently
@@ -337,7 +337,7 @@ lv2:PluginBase
An abstract plugin-like resource that may not actually be an LV2 plugin, for
example that may not have a lv2:binary. This is useful for describing things
-that share common structure with a plugin, but are not themselves an actul
+that share common structure with a plugin, but are not themselves an actual
plugin, such as presets.
"""^^lv2:Markdown .
diff --git a/lv2/core/lv2core.ttl b/lv2/core/lv2core.ttl
index f5836c6..bd9fc93 100644
--- a/lv2/core/lv2core.ttl
+++ b/lv2/core/lv2core.ttl
@@ -11,7 +11,8 @@
rdfs:comment "An extensible open standard for audio plugins." ;
rdfs:seeAlso <lv2.h> ,
<lv2_util.h> ,
- <lv2core.meta.ttl> .
+ <lv2core.meta.ttl> ;
+ owl:imports doap: .
lv2:Specification
a rdfs:Class ,
@@ -656,7 +657,7 @@ lv2:FunctionPlugin
owl:Class ;
rdfs:subClassOf lv2:UtilityPlugin ;
rdfs:label "Function Plugin" ;
- rdfs:comment "A plugin whose output is a mathmatical function of its input." .
+ rdfs:comment "A plugin whose output is a mathematical function of its input." .
lv2:ConstantPlugin
a rdfs:Class ,
diff --git a/lv2/core/manifest.ttl b/lv2/core/manifest.ttl
index 7f1512b..179076d 100644
--- a/lv2/core/manifest.ttl
+++ b/lv2/core/manifest.ttl
@@ -5,7 +5,7 @@
<http://lv2plug.in/ns/lv2core>
a lv2:Specification ;
lv2:minorVersion 18 ;
- lv2:microVersion 0 ;
+ lv2:microVersion 1 ;
rdfs:seeAlso <lv2core.ttl> .
<http://lv2plug.in/ns/lv2>
diff --git a/lv2/core/meta.ttl b/lv2/core/meta.ttl
index b626a0c..5d646e5 100644
--- a/lv2/core/meta.ttl
+++ b/lv2/core/meta.ttl
@@ -25,10 +25,6 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH R
doap:homepage <http://lv2plug.in/> ;
doap:mailing-list <http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in> ;
doap:programming-language "C" ;
- doap:repository [
- a doap:SVNRepository ;
- doap:location <http://lv2plug.in/repo>
- ] ;
doap:developer <http://drobilla.net/drobilla#me> ,
<http://plugin.org.uk/swh.xrdf#me> ;
doap:helper meta:larsl ,
diff --git a/lv2/event/event.meta.ttl b/lv2/event/event.meta.ttl
index ecc40c7..05476d8 100644
--- a/lv2/event/event.meta.ttl
+++ b/lv2/event/event.meta.ttl
@@ -156,7 +156,7 @@ ev:FrameStamp
lv2:documentation """
The default time stamp unit for an LV2 event: the frames field represents audio
-frames (in the sample rate passed to intantiate), and the subframes field is
+frames (in the sample rate passed to instantiate), and the subframes field is
1/UINT32_MAX of a frame.
"""^^lv2:Markdown .
diff --git a/lv2/event/event.ttl b/lv2/event/event.ttl
index de400d4..119e606 100644
--- a/lv2/event/event.ttl
+++ b/lv2/event/event.ttl
@@ -11,7 +11,8 @@
rdfs:comment "A port-based real-time generic event interface." ;
rdfs:seeAlso <event.h> ,
<event-helpers.h> ,
- <event.meta.ttl> .
+ <event.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
ev:EventPort
a rdfs:Class ;
@@ -64,7 +65,7 @@ ev:supportsTimeStamp
lv2:InputPort ;
rdfs:range rdfs:Class ;
rdfs:label "supports time stamp type" ;
- rdfs:comment "A time stamp type suported by this input port." .
+ rdfs:comment "A time stamp type supported by this input port." .
ev:generatesTimeStamp
a rdf:Property ,
diff --git a/lv2/event/manifest.ttl b/lv2/event/manifest.ttl
index 0194d71..8581a6e 100644
--- a/lv2/event/manifest.ttl
+++ b/lv2/event/manifest.ttl
@@ -4,6 +4,6 @@
<http://lv2plug.in/ns/ext/event>
a lv2:Specification ;
lv2:minorVersion 1 ;
- lv2:microVersion 12 ;
+ lv2:microVersion 13 ;
rdfs:seeAlso <event.ttl> .
diff --git a/lv2/log/log.ttl b/lv2/log/log.ttl
index 46cba45..a8c4236 100644
--- a/lv2/log/log.ttl
+++ b/lv2/log/log.ttl
@@ -10,7 +10,8 @@
rdfs:label "LV2 Log" ;
rdfs:comment "A feature for writing log messages." ;
rdfs:seeAlso <log.h> ,
- <log.meta.ttl> .
+ <log.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
log:Entry
a rdfs:Class ;
diff --git a/lv2/morph/morph.ttl b/lv2/morph/morph.ttl
index 303293d..a771e03 100644
--- a/lv2/morph/morph.ttl
+++ b/lv2/morph/morph.ttl
@@ -13,7 +13,8 @@
rdfs:label "LV2 Morph" ;
rdfs:comment "Ports that can dynamically change type." ;
rdfs:seeAlso <morph.h> ,
- <morph.meta.ttl> .
+ <morph.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
morph:MorphPort
a rdfs:Class ,
diff --git a/lv2/options/options.ttl b/lv2/options/options.ttl
index f8388da..78defef 100644
--- a/lv2/options/options.ttl
+++ b/lv2/options/options.ttl
@@ -10,7 +10,8 @@
rdfs:label "LV2 Options" ;
rdfs:comment "Runtime options for LV2 plugins and UIs." ;
rdfs:seeAlso <options.h> ,
- <options.meta.ttl> .
+ <options.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
opts:Option
a rdfs:Class ;
diff --git a/lv2/parameters/parameters.ttl b/lv2/parameters/parameters.ttl
index 5c3dadf..9987812 100644
--- a/lv2/parameters/parameters.ttl
+++ b/lv2/parameters/parameters.ttl
@@ -11,7 +11,10 @@
a owl:Ontology ;
rdfs:label "LV2 Parameters" ;
rdfs:comment "Common parameters for audio processing." ;
- rdfs:seeAlso <parameters.meta.ttl> .
+ rdfs:seeAlso <parameters.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/ext/atom> ,
+ <http://lv2plug.in/ns/ext/port-groups> ,
+ <http://lv2plug.in/ns/lv2core> .
param:ControlGroup
a rdfs:Class ;
diff --git a/lv2/patch/manifest.ttl b/lv2/patch/manifest.ttl
index 25150bd..90419bb 100644
--- a/lv2/patch/manifest.ttl
+++ b/lv2/patch/manifest.ttl
@@ -4,6 +4,6 @@
<http://lv2plug.in/ns/ext/patch>
a lv2:Specification ;
lv2:minorVersion 2 ;
- lv2:microVersion 8 ;
+ lv2:microVersion 9 ;
rdfs:seeAlso <patch.ttl> .
diff --git a/lv2/patch/patch.meta.ttl b/lv2/patch/patch.meta.ttl
index ebe0807..53cbdc0 100644
--- a/lv2/patch/patch.meta.ttl
+++ b/lv2/patch/patch.meta.ttl
@@ -41,7 +41,7 @@
dcs:blame <http://drobilla.net/drobilla#me> ;
dcs:changeset [
dcs:item [
- rdfs:label "Define patch:Get with no subject to implicitly apply to reciever. This can be used by UIs to get an initial description of a plugin."
+ rdfs:label "Define patch:Get with no subject to implicitly apply to receiver. This can be used by UIs to get an initial description of a plugin."
] , [
rdfs:label "Add patch:Copy method."
]
diff --git a/lv2/patch/patch.ttl b/lv2/patch/patch.ttl
index 7804009..c7f6d76 100644
--- a/lv2/patch/patch.ttl
+++ b/lv2/patch/patch.ttl
@@ -230,15 +230,13 @@ patch:subject
rdfs:comment "The subject this message applies to." .
patch:value
- a rdf:Property ,
- owl:DatatypeProperty ;
+ a rdf:Property ;
rdfs:label "value" ;
rdfs:domain patch:Set ;
- rdfs:range rdf:Property ;
rdfs:comment "The value of a property in a patch:Set message." .
patch:wildcard
- a rdfs:Resource ;
+ a owl:Thing ;
rdfs:label "wildcard" ;
rdfs:comment "A wildcard that matches any resource." .
diff --git a/lv2/port-groups/port-groups.ttl b/lv2/port-groups/port-groups.ttl
index d248f28..5173aa0 100644
--- a/lv2/port-groups/port-groups.ttl
+++ b/lv2/port-groups/port-groups.ttl
@@ -9,7 +9,8 @@
a owl:Ontology ;
rdfs:label "LV2 Port Groups" ;
rdfs:comment "Multi-channel groups of LV2 ports." ;
- rdfs:seeAlso <port-groups.meta.ttl> .
+ rdfs:seeAlso <port-groups.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
pg:Group
a rdfs:Class ;
diff --git a/lv2/port-props/port-props.ttl b/lv2/port-props/port-props.ttl
index 1ddeed0..ea25c6b 100644
--- a/lv2/port-props/port-props.ttl
+++ b/lv2/port-props/port-props.ttl
@@ -9,7 +9,8 @@
a owl:Ontology ;
rdfs:label "LV2 Port Properties" ;
rdfs:comment "Various properties for LV2 plugin ports." ;
- rdfs:seeAlso <port-props.meta.ttl> .
+ rdfs:seeAlso <port-props.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
pprops:trigger
a lv2:PortProperty ;
diff --git a/lv2/presets/presets.ttl b/lv2/presets/presets.ttl
index c1caf43..60189ea 100644
--- a/lv2/presets/presets.ttl
+++ b/lv2/presets/presets.ttl
@@ -9,7 +9,8 @@
a owl:Ontology ;
rdfs:label "LV2 Presets" ;
rdfs:comment "Presets for LV2 plugins." ;
- rdfs:seeAlso <presets.meta.ttl> .
+ rdfs:seeAlso <presets.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
pset:Bank
a rdfs:Class ;
@@ -17,7 +18,7 @@ pset:Bank
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty rdfs:label ;
- owl:someValuesFrom xsd:string ;
+ owl:minCardinality 1 ;
rdfs:comment "A Bank MUST have at least one string rdfs:label."
] ;
rdfs:comment "A bank of presets." .
@@ -30,7 +31,7 @@ pset:Preset
rdfs:subClassOf [
a owl:Restriction ;
owl:onProperty rdfs:label ;
- owl:someValuesFrom xsd:string ;
+ owl:minCardinality 1 ;
rdfs:comment "A Preset MUST have at least one string rdfs:label."
] .
diff --git a/lv2/resize-port/resize-port.ttl b/lv2/resize-port/resize-port.ttl
index 29cd18b..a6712e7 100644
--- a/lv2/resize-port/resize-port.ttl
+++ b/lv2/resize-port/resize-port.ttl
@@ -10,7 +10,8 @@
rdfs:label "LV2 Resize Port" ;
rdfs:comment "Dynamically sized LV2 port buffers." ;
rdfs:seeAlso <resize-port.h> ,
- <resize-port.meta.ttl> .
+ <resize-port.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
rsz:resize
a lv2:Feature ;
diff --git a/lv2/state/manifest.ttl b/lv2/state/manifest.ttl
index 02e7aa1..67beca1 100644
--- a/lv2/state/manifest.ttl
+++ b/lv2/state/manifest.ttl
@@ -4,6 +4,6 @@
<http://lv2plug.in/ns/ext/state>
a lv2:Specification ;
lv2:minorVersion 2 ;
- lv2:microVersion 8 ;
+ lv2:microVersion 9 ;
rdfs:seeAlso <state.ttl> .
diff --git a/lv2/state/state.meta.ttl b/lv2/state/state.meta.ttl
index 6f54641..271814c 100644
--- a/lv2/state/state.meta.ttl
+++ b/lv2/state/state.meta.ttl
@@ -459,7 +459,7 @@ This is a one-way notification, intended to be used as the type of an
[Object](atom.html#Object) sent from plugins when necessary.
Plugins SHOULD emit such an event whenever a change has occurred that would
-result in a different state being saved, but not when the host explicity makes
+result in a different state being saved, but not when the host explicitly makes
a change which it knows is likely to have that effect, such as changing a
parameter.
diff --git a/lv2/state/state.ttl b/lv2/state/state.ttl
index 19ccaa2..48537c8 100644
--- a/lv2/state/state.ttl
+++ b/lv2/state/state.ttl
@@ -9,7 +9,8 @@
rdfs:label "LV2 State" ;
rdfs:comment "An interface for LV2 plugins to save and restore state." ;
rdfs:seeAlso <state.h> ,
- <state.meta.ttl> .
+ <state.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
state:interface
a lv2:ExtensionData ;
diff --git a/lv2/ui/manifest.ttl b/lv2/ui/manifest.ttl
index 9f259ad..304005a 100644
--- a/lv2/ui/manifest.ttl
+++ b/lv2/ui/manifest.ttl
@@ -4,6 +4,6 @@
<http://lv2plug.in/ns/extensions/ui>
a lv2:Specification ;
lv2:minorVersion 2 ;
- lv2:microVersion 22 ;
+ lv2:microVersion 23 ;
rdfs:seeAlso <ui.ttl> .
diff --git a/lv2/ui/ui.meta.ttl b/lv2/ui/ui.meta.ttl
index cb92a86..540dc4b 100644
--- a/lv2/ui/ui.meta.ttl
+++ b/lv2/ui/ui.meta.ttl
@@ -223,7 +223,7 @@ toolkits, the one the UI main loop runs in). There is no requirement that a
Note that UIs are completely separate from plugins. From the plugin's
perspective, control from a UI is indistinguishable from any other control, as
-it all occcurs via ports.
+it all occurs via ports.
"""^^lv2:Markdown .
diff --git a/lv2/ui/ui.ttl b/lv2/ui/ui.ttl
index 61f8bca..b355764 100644
--- a/lv2/ui/ui.ttl
+++ b/lv2/ui/ui.ttl
@@ -10,9 +10,10 @@
a owl:Ontology ;
rdfs:label "LV2 UI" ;
rdfs:comment "User interfaces for LV2 plugins." ;
- owl:imports <http://lv2plug.in/ns/lv2core> ;
rdfs:seeAlso <ui.h> ,
- <ui.meta.ttl> .
+ <ui.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> ,
+ <http://lv2plug.in/ns/ext/options> .
ui:UI
a rdfs:Class ,
@@ -174,8 +175,9 @@ ui:notifyType
ui:resize
a lv2:Feature ,
lv2:ExtensionData ;
+ owl:deprecated "true"^^xsd:boolean ;
rdfs:label "resize" ;
- rdfs:comment """A feature that control of, and notifications about, a UI's size.""" .
+ rdfs:comment """A feature that provides control of, and notifications about, a UI's size.""" .
ui:portMap
a lv2:Feature ;
diff --git a/lv2/urid/urid.ttl b/lv2/urid/urid.ttl
index 2c44b56..53aa1e5 100644
--- a/lv2/urid/urid.ttl
+++ b/lv2/urid/urid.ttl
@@ -8,7 +8,8 @@
rdfs:label "LV2 URID" ;
rdfs:comment "Features for mapping URIs to and from integers." ;
rdfs:seeAlso <urid.h> ,
- <urid.meta.ttl> .
+ <urid.meta.ttl> ;
+ owl:imports <http://lv2plug.in/ns/lv2core> .
urid:map
a lv2:Feature ;
diff --git a/plugins/eg-amp.lv2/amp.c b/plugins/eg-amp.lv2/amp.c
index 244825f..5b9f577 100644
--- a/plugins/eg-amp.lv2/amp.c
+++ b/plugins/eg-amp.lv2/amp.c
@@ -203,7 +203,7 @@ static const LV2_Descriptor descriptor = {AMP_URI,
The `lv2_descriptor()` function is the entry point to the plugin library. The
host will load the library and call this function repeatedly with increasing
indices to find all the plugins defined in the library. The index is not an
- indentifier, the URI of the returned descriptor is used to determine the
+ identifier, the URI of the returned descriptor is used to determine the
identify of the plugin.
This method is in the ``discovery'' threading class, so no other functions
diff --git a/plugins/eg-metro.lv2/metro.c b/plugins/eg-metro.lv2/metro.c
index 46ca41b..87a9029 100644
--- a/plugins/eg-metro.lv2/metro.c
+++ b/plugins/eg-metro.lv2/metro.c
@@ -223,7 +223,7 @@ play(Metro* self, uint32_t begin, uint32_t end)
switch (self->state) {
case STATE_ATTACK:
// Amplitude increases from 0..1 until attack_len
- output[i] = self->wave[self->wave_offset] * self->elapsed_len /
+ output[i] = self->wave[self->wave_offset] * (float)self->elapsed_len /
(float)self->attack_len;
if (self->elapsed_len >= self->attack_len) {
self->state = STATE_DECAY;
diff --git a/plugins/eg-sampler.lv2/sampler.c b/plugins/eg-sampler.lv2/sampler.c
index 1efad3c..e7fbbab 100644
--- a/plugins/eg-sampler.lv2/sampler.c
+++ b/plugins/eg-sampler.lv2/sampler.c
@@ -461,7 +461,7 @@ run(LV2_Handle instance, uint32_t sample_count)
render(self, self->frame_offset, ev->time.frames);
/* Update current frame offset to this event's time. This is stored in
- the instance because it is used for sychronous worker event
+ the instance because it is used for synchronous worker event
execution. This allows a sample load event to be executed with
sample accuracy when running in a non-realtime context (such as
exporting a session). */
diff --git a/schemas.lv2/dcs.ttl b/schemas.lv2/dcs.ttl
index 37b1e10..b961190 100644
--- a/schemas.lv2/dcs.ttl
+++ b/schemas.lv2/dcs.ttl
@@ -50,14 +50,14 @@ dcs:ToDoList
rdfs:isDefinedBy dcs: ;
rdfs:label "To-Do List"@en ;
rdfs:comment "A collection of planned changes."@en ;
- rdfs:subClassOf _:FutureChangeSet .
+ rdfs:subClassOf dcs:ChangeSet .
dcs:WishList
a owl:Class ;
rdfs:isDefinedBy dcs: ;
rdfs:label "Wish List"@en ;
rdfs:comment "A collection of desired changes."@en ;
- rdfs:subClassOf _:FutureChangeSet .
+ rdfs:subClassOf dcs:ChangeSet .
dcs:Change
a owl:Class ;
@@ -140,20 +140,12 @@ dcs:BackCompat
rdfs:comment "A change that breaks backwards compatibility, changing documented or tested behaviour."@en ;
rdfs:subClassOf dcs:Change.
-_:FutureChangeSet
- a owl:Class ;
- rdfs:subClassOf rdf:Bag , dcs:ChangeSet .
-
-_:VersionOrEvent
- a owl:Class ;
- owl:unionOf (doap:Version event:Event) .
-
dcs:changeset
a owl:ObjectProperty ;
rdfs:isDefinedBy dcs: ;
rdfs:label "change set"@en ;
rdfs:comment "A change set may be associated with a particular software version in which those changes were released; or with an event which caused those changes."@en ;
- rdfs:domain _:VersionOrEvent ;
+ rdfs:domain doap:Version ;
rdfs:range dcs:ChangeSet .
dcs:versus
@@ -162,7 +154,7 @@ dcs:versus
rdfs:label "versus"@en ;
rdfs:comment "The previous version or event which a changeset has changed from."@en ;
rdfs:domain dcs:ChangeSet ;
- rdfs:range _:VersionOrEvent .
+ rdfs:range doap:Version .
dcs:item
a owl:ObjectProperty ;
@@ -180,7 +172,9 @@ dcs:file
rdfs:comment "A file involved in the change."@en ;
rdfs:domain dcs:Change .
-dbug:Issue a rdfs:Class .
+dbug:Issue
+ a rdfs:Class ;
+ rdfs:label "Issue"@en .
dcs:fixes
a owl:ObjectProperty ;
@@ -231,8 +225,8 @@ dcs:milestone
a owl:ObjectProperty ;
rdfs:isDefinedBy dcs: ;
rdfs:label "milestone"@en ;
- rdfs:domain _:FutureChangeSet ;
- rdfs:range _:VersionOrEvent .
+ rdfs:domain dcs:ChangeSet ;
+ rdfs:range doap:Version .
dcs:tasks
a owl:ObjectProperty ;
diff --git a/schemas.lv2/dct.ttl b/schemas.lv2/dct.ttl
index 5cdd504..d8fd196 100644
--- a/schemas.lv2/dct.ttl
+++ b/schemas.lv2/dct.ttl
@@ -22,8 +22,7 @@ dcterms:AgentClass
dcterms:description "Examples of Agent Class include groups seen as classes, such as students, women, charities, lecturers."@en-us ;
rdfs:comment "A group of agents."@en-us ;
rdfs:isDefinedBy dcterms: ;
- rdfs:label "Agent Class"@en-us ;
- rdfs:subClassOf dcterms:AgentClass .
+ rdfs:label "Agent Class"@en-us .
dcterms:LicenseDocument
a rdfs:Class ;
diff --git a/schemas.lv2/doap.ttl b/schemas.lv2/doap.ttl
index 9067da5..c8daf59 100644
--- a/schemas.lv2/doap.ttl
+++ b/schemas.lv2/doap.ttl
@@ -1,16 +1,13 @@
+@prefix dct: <http://purl.org/dc/terms/> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@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 owl: <http://www.w3.org/2002/07/owl#> .
-@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix dct: <http://purl.org/dc/terms/> .
-
-# dct:rights "Copyright © 2004-2009 Edd Dumbill"
doap:
a owl:Ontology ;
- dct:description "Das Vokabular \"Description of a Project (DOAP)\", beschrieben durch W3C RDF Schema and the Web Ontology Language."@de ,
+ rdfs:comment "Das Vokabular \"Description of a Project (DOAP)\", beschrieben durch W3C RDF Schema and the Web Ontology Language."@de ,
"""El vocabulario Description of a Project (DOAP, Descripción de un Proyecto), descrito usando RDF Schema de W3C
y Web Ontology Language."""@es ,
"""Le vocabulaire Description Of A Project (DOAP, Description D'Un Projet),
@@ -153,8 +150,7 @@ doap:Specification
a rdfs:Class ;
rdfs:comment """A specification of a system's aspects, technical or otherwise."""@en ;
rdfs:isDefinedBy doap: ;
- rdfs:label "Specification"@en ;
- rdfs:subClassOf rdfs:Resource .
+ rdfs:label "Specification"@en .
doap:Version
a rdfs:Class ;
@@ -170,40 +166,25 @@ doap:Version
"Versión"@es ,
"Verze"@cs .
-doap:anon-root
- a rdf:Property ;
- rdfs:comment "Dépôt pour accès anonyme."@fr ,
- "Repositorio para acceso anónimo."@es ,
- "Repository for anonymous access."@en ,
- "Repository für anonymen Zugriff"@de ,
- "Úložiště pro anonymní přístup."@cs ;
- rdfs:domain doap:Repository ;
- rdfs:isDefinedBy doap: ;
- rdfs:label "Anonymes Root"@de ,
- "anonymní kořen"@cs ,
- "anonymous root"@en ,
- "racine anonyme"@fr ,
- "raíz anónima"@es ;
- rdfs:range rdfs:Literal .
-
doap:audience
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Description of target user base"@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
- rdfs:label "audience"@en ;
- rdfs:range rdfs:Literal .
+ rdfs:label "audience"@en .
doap:blog
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "URI of a blog related to a project"@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
- rdfs:label "blog"@en ;
- rdfs:range rdfs:Resource .
+ rdfs:label "blog"@en .
doap:browse
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Interface web au dépôt."@fr ,
"Interface web del repositorio."@es ,
"Web browser interface to repository."@en ,
@@ -218,7 +199,8 @@ doap:browse
"visualiser"@fr .
doap:bug-database
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Bug tracker for a project."@en ,
"Bug tracker para un proyecto."@es ,
"Fehlerdatenbank eines Projektes."@de ,
@@ -233,7 +215,8 @@ doap:bug-database
"suivi des bugs"@fr .
doap:category
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "A category of project."@en ,
"Eine Kategorie eines Projektes."@de ,
"Kategorie projektu."@cs ,
@@ -248,7 +231,8 @@ doap:category
"kategorie"@cs .
doap:created
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Date when something was created, in YYYY-MM-DD form. e.g. 2004-04-05"@en ,
"Date à laquelle a été créé quelque chose, au format AAAA-MM-JJ (par ex. 2004-04-05)"@fr ,
"Datum, kdy bylo něco vytvořeno ve formátu RRRR-MM-DD, např. 2004-04-05"@cs ,
@@ -259,11 +243,11 @@ doap:created
"created"@en ,
"créé"@fr ,
"erstellt"@de ,
- "vytvořeno"@cs ;
- rdfs:range rdfs:Literal .
+ "vytvořeno"@cs .
doap:description
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Beschreibung eines Projekts als einfacher Text mit der Länge von 2 bis 4 Sätzen."@de ,
"Descripción en texto plano de un proyecto, de 2 a 4 enunciados de longitud."@es ,
"Plain text description of a project, of 2-4 sentences in length."@en ,
@@ -274,11 +258,11 @@ doap:description
"descripción"@es ,
"description"@en ,
"description"@fr ,
- "popis"@cs ;
- rdfs:range rdfs:Literal .
+ "popis"@cs .
doap:developer
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Desarrollador de software para el proyecto."@es ,
"Developer of software for the project."@en ,
"Développeur pour le projet."@fr ,
@@ -294,7 +278,8 @@ doap:developer
rdfs:range foaf:Person .
doap:documenter
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Collaborateur à la documentation du projet."@fr ,
"Contributor of documentation to the project."@en ,
"Mitarbeiter an der Dokumentation eines Projektes."@de ,
@@ -310,7 +295,8 @@ doap:documenter
rdfs:range foaf:Person .
doap:download-mirror
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Miroir de la page de téléchargement du programme."@fr ,
"Mirror de la página web de descarga."@es ,
"Mirror of software download web page."@en ,
@@ -325,7 +311,8 @@ doap:download-mirror
"zrcadlo stránky pro stažení"@cs .
doap:download-page
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Page web à partir de laquelle on peut télécharger le programme."@fr ,
"Página web de la cuál se puede bajar el software."@es ,
"Web page from which the project software can be downloaded."@en ,
@@ -340,7 +327,8 @@ doap:download-page
"stránka pro stažení"@cs .
doap:file-release
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "URI adresa stažení asociované s revizí."@cs ,
"URI of download associated with this release."@en ;
rdfs:domain doap:Version ;
@@ -349,7 +337,8 @@ doap:file-release
"soubor revize"@cs .
doap:helper
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Colaborador del proyecto."@es ,
"Collaborateur au projet."@fr ,
"Project contributor."@en ,
@@ -386,7 +375,8 @@ doap:homepage
rdfs:subPropertyOf foaf:homepage .
doap:implements
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "A specification that a project implements. Could be a standard, API or legally defined level of conformance."@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
@@ -394,12 +384,12 @@ doap:implements
rdfs:range doap:Specification .
doap:language
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "ISO language code a project has been translated into"@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
- rdfs:label "language"@en ;
- rdfs:range rdfs:Literal .
+ rdfs:label "language"@en .
doap:license
a rdf:Property ;
@@ -416,7 +406,8 @@ doap:license
"license"@en .
doap:location
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment """Emplacement d'un dépôt."""@fr ,
"Location of a repository."@en ,
"Lokation eines Repositorys."@de ,
@@ -431,7 +422,8 @@ doap:location
"umístění úložiště"@cs .
doap:mailing-list
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Domovská stránka nebo e–mailová adresa e–mailové diskuse."@cs ,
"Homepage der Mailing Liste oder E-Mail Adresse."@de ,
"Mailing list home page or email address."@en ,
@@ -446,7 +438,8 @@ doap:mailing-list
"mailing list"@en .
doap:maintainer
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Desarrollador principal de un proyecto, un líder de proyecto."@es ,
"""Développeur principal d'un projet, un meneur du projet."""@fr ,
"Hauptentwickler eines Projektes, der Projektleiter"@de ,
@@ -462,7 +455,8 @@ doap:maintainer
rdfs:range foaf:Person .
doap:module
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Jméno modulu v CVS, BitKeeper nebo Arch úložišti."@cs ,
"Modul-Name eines Subversion, CVS, BitKeeper oder Arch Repositorys."@de ,
"Module name of a Subversion, CVS, BitKeeper or Arch repository."@en ,
@@ -484,7 +478,8 @@ doap:module
"módulo"@es .
doap:name
- a rdf:Property ;
+ a rdf:Property ,
+ owl:AnnotationProperty ;
rdfs:comment "A name of something."@en ,
"Der Name von Irgendwas"@de ,
"El nombre de algo."@es ,
@@ -496,7 +491,6 @@ doap:name
"name"@en ,
"nom"@fr ,
"nombre"@es ;
- rdfs:range rdfs:Literal ;
rdfs:subPropertyOf rdfs:label .
doap:old-homepage
@@ -521,7 +515,8 @@ doap:old-homepage
rdfs:subPropertyOf foaf:homepage .
doap:os
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Betriebssystem auf dem das Projekt eingesetzt werden kann. Diese Eigenschaft kann ausgelassen werden, wenn das Projekt nicht BS-spezifisch ist."@de ,
"Operating system that a project is limited to. Omit this property if the project is not OS-specific."@en ,
"Operační systém, na jehož použití je projekt limitován. Vynechejte tuto vlastnost, pokud je projekt nezávislý na operačním systému."@cs ,
@@ -536,20 +531,20 @@ doap:os
"operating system"@en ,
"operační systém"@cs ,
"sistema operativo"@es ,
- """système d'exploitation"""@fr ;
- rdfs:range rdfs:Literal .
+ """système d'exploitation"""@fr .
doap:platform
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Indicator of software platform (non-OS specific), e.g. Java, Firefox, ECMA CLR"@en ;
rdfs:domain doap:Project ,
doap:Version ;
rdfs:isDefinedBy doap: ;
- rdfs:label "platform"@en ;
- rdfs:range rdfs:Literal .
+ rdfs:label "platform"@en .
doap:programming-language
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment """Langage de programmation avec lequel un projet est implémenté,
ou avec lequel il est prévu de l'utiliser."""@fr ,
"Lenguaje de programación en el que un proyecto es implementado o con el cuál pretende usarse."@es ,
@@ -562,11 +557,11 @@ doap:programming-language
"langage de programmation"@fr ,
"lenguaje de programación"@es ,
"programming language"@en ,
- "programovací jazyk"@cs ;
- rdfs:range rdfs:Literal .
+ "programovací jazyk"@cs .
doap:release
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "A project release."@en ,
"Ein Release (Version) eines Projekts."@de ,
"Relase (verze) projektu."@cs ,
@@ -582,7 +577,8 @@ doap:release
rdfs:range doap:Version .
doap:repository
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Dépôt du code source."@fr ,
"Quellcode-Versionierungssystem."@de ,
"Repositorio del código fuente."@es ,
@@ -598,7 +594,8 @@ doap:repository
rdfs:range doap:Repository .
doap:revision
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment """Identifiant de révision d'une release du programme."""@fr ,
"Identifikátor zpřístupněné revize softwaru."@cs ,
"Indentificador de la versión de un release de software."@es ,
@@ -610,11 +607,11 @@ doap:revision
"revision"@en ,
"révision"@fr ,
"versión"@es ,
- "verze"@cs ;
- rdfs:range rdfs:Literal .
+ "verze"@cs .
doap:screenshots
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment """Page web avec des captures d'écran du projet."""@fr ,
"Página web con capturas de pantalla del proyecto."@es ,
"Web page with screenshots of project."@en ,
@@ -629,15 +626,16 @@ doap:screenshots
"snímek obrazovky"@cs .
doap:service-endpoint
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "The URI of a web service endpoint where software as a service may be accessed"@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
- rdfs:label "service endpoint"@en ;
- rdfs:range rdfs:Resource .
+ rdfs:label "service endpoint"@en .
doap:shortdesc
- a rdf:Property ;
+ a rdf:Property ,
+ owl:DatatypeProperty ;
rdfs:comment "Descripción corta (8 o 9 palabras) en texto plano de un proyecto."@es ,
"Krátký (8 nebo 9 slov) čistě textový popis projektu."@cs ,
"Kurzbeschreibung (8 oder 9 Wörter) eines Projects als einfacher Text."@de ,
@@ -648,11 +646,11 @@ doap:shortdesc
"descripción corta"@es ,
"description courte"@fr ,
"krátký popis"@cs ,
- "short description"@en ;
- rdfs:range rdfs:Literal .
+ "short description"@en .
doap:tester
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "A tester or other quality control contributor."@en ,
"Ein Tester oder anderer Mitarbeiter der Qualitätskontrolle."@de ,
"Tester nebo jiný spoluautor kontrolující kvalitu."@cs ,
@@ -668,7 +666,8 @@ doap:tester
rdfs:range foaf:Person .
doap:translator
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Collaborateur à la traduction du projet."@fr ,
"Contributor of translations to the project."@en ,
"Mitarbeiter an den Übersetzungen eines Projektes."@de ,
@@ -684,7 +683,8 @@ doap:translator
rdfs:range foaf:Person .
doap:vendor
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment "Vendor organization: commercial, free or otherwise"@en ;
rdfs:domain doap:Project ;
rdfs:isDefinedBy doap: ;
@@ -692,7 +692,8 @@ doap:vendor
rdfs:range foaf:Organization .
doap:wiki
- a rdf:Property ;
+ a rdf:Property ,
+ owl:ObjectProperty ;
rdfs:comment """L'URL du Wiki pour la discussion collaborative sur le projet."""@fr ,
"URL adresa wiki projektu pro společné diskuse."@cs ,
"URL del Wiki para discusión colaborativa del proyecto."@es ,
@@ -705,3 +706,4 @@ doap:wiki
"wiki"@en ,
"wiki"@es ,
"wiki"@fr .
+
diff --git a/schemas.lv2/foaf.ttl b/schemas.lv2/foaf.ttl
index 1ae75aa..83a1e7e 100644
--- a/schemas.lv2/foaf.ttl
+++ b/schemas.lv2/foaf.ttl
@@ -38,7 +38,7 @@ foaf:Image
foaf:LabelProperty
a rdfs:Class, owl:Class ;
- rdfs:comment "A foaf:LabelProperty is any RDF property with texual values that serve as labels." ;
+ rdfs:comment "A foaf:LabelProperty is any RDF property with textual values that serve as labels." ;
rdfs:isDefinedBy <http://xmlns.com/foaf/0.1/> ;
rdfs:label "Label Property" .
diff --git a/schemas.lv2/rdfs.ttl b/schemas.lv2/rdfs.ttl
index 078d7c8..5f4dcf9 100644
--- a/schemas.lv2/rdfs.ttl
+++ b/schemas.lv2/rdfs.ttl
@@ -67,7 +67,7 @@ rdfs:domain
rdfs:isDefinedBy
a rdf:Property ;
- rdfs:comment "The defininition of the subject resource." ;
+ rdfs:comment "The definition of the subject resource." ;
rdfs:domain rdfs:Resource ;
rdfs:isDefinedBy <http://www.w3.org/2000/01/rdf-schema#> ;
rdfs:label "is defined by" ;
diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl
index 54d3ad8..cb98363 100644
--- a/schemas.lv2/xsd.ttl
+++ b/schemas.lv2/xsd.ttl
@@ -8,51 +8,14 @@ xsd:
rdfs:comment "XML Schema Datatypes" .
xsd:anySimpleType
- a rdfs:Datatype .
-
-xsd:ENTITY
- a rdfs:Datatype ;
- owl:onDatatype xsd:NCName .
-
-xsd:ID
- a rdfs:Datatype ;
- owl:onDatatype xsd:NCName .
-
-xsd:IDREF
- a rdfs:Datatype ;
- owl:onDatatype xsd:NCName .
-
-xsd:NCName
- a rdfs:Datatype ;
- owl:onDatatype xsd:Name .
-
-xsd:NMTOKEN
a rdfs:Datatype ;
- owl:onDatatype xsd:token .
-
-xsd:Name
- a rdfs:Datatype ;
- owl:onDatatype xsd:token .
-
-xsd:QName
- a rdfs:Datatype ;
- rdfs:label "XML qualified name" ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
+ rdfs:comment "The base class of any primitive XSD dataype." ;
+ rdfs:label "any simple type" .
xsd:anyURI
a rdfs:Datatype ;
- rdfs:label "URI reference" ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
+ rdfs:label "any URI" ;
+ owl:onDatatype xsd:anySimpleType .
xsd:base64Binary
a rdfs:Datatype ;
@@ -61,9 +24,7 @@ xsd:base64Binary
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *)*(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/])|([A-Za-z0-9+/] *[A-Za-z0-9+/] *[AEIMQUYcgkosw048] *=)|([A-Za-z0-9+/] *[AQgw] *= *=)))?"
]
) .
@@ -73,9 +34,7 @@ xsd:boolean
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "(true|false)"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "(true|false|0|1)"
]
) .
@@ -85,9 +44,9 @@ xsd:byte
owl:onDatatype xsd:short ;
owl:withRestrictions (
[
- xsd:minInclusive -128
+ xsd:maxInclusive "127"^^xsd:byte
] [
- xsd:maxInclusive 127
+ xsd:minInclusive "-128"^^xsd:byte
]
) .
@@ -97,9 +56,7 @@ xsd:date
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|[-+][0-2][0-9]:[0-5][0-9])?"
]
) .
@@ -109,9 +66,7 @@ xsd:dateTime
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?"
]
) .
@@ -122,9 +77,7 @@ xsd:decimal
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
]
) .
@@ -135,9 +88,7 @@ xsd:double
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
]
) .
@@ -147,6 +98,8 @@ xsd:duration
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
+ xsd:pattern "-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?"
+ ] [
xsd:whiteSpace "collapse"
]
) .
@@ -158,7 +111,7 @@ xsd:float
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?"
+ xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?"
] [
xsd:whiteSpace "collapse"
]
@@ -166,56 +119,11 @@ xsd:float
xsd:fractionDigits
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "The total number of digits to the right of the decimal point required to represent a value." ;
rdfs:label "fraction digits" ;
rdfs:range xsd:nonNegativeInteger .
-xsd:gDay
- a rdfs:Datatype ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
-xsd:gMonth
- a rdfs:Datatype ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
-xsd:gMonthDay
- a rdfs:Datatype ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
-xsd:gYear
- a rdfs:Datatype ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
-xsd:gYearMonth
- a rdfs:Datatype ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
xsd:hexBinary
a rdfs:Datatype ;
rdfs:comment "Hex-encoded arbitrary binary data." ;
@@ -223,9 +131,7 @@ xsd:hexBinary
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[0-9A-F]*"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*"
]
) .
@@ -235,9 +141,9 @@ xsd:int
owl:onDatatype xsd:long ;
owl:withRestrictions (
[
- xsd:minInclusive -2147483648
+ xsd:maxInclusive "2147483647"^^xsd:int
] [
- xsd:maxInclusive 2147483647
+ xsd:minInclusive "-2147483648"^^xsd:int
]
) .
@@ -259,7 +165,7 @@ xsd:language
owl:onDatatype xsd:token ;
owl:withRestrictions (
[
- xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
+ xsd:pattern "[a-zA-Z][a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?(-[a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?)*"
]
) .
@@ -269,33 +175,33 @@ xsd:long
owl:onDatatype xsd:integer ;
owl:withRestrictions (
[
- xsd:minInclusive -9223372036854775808
+ xsd:maxInclusive "9223372036854775807"^^xsd:long
] [
- xsd:maxInclusive 9223372036854775807
+ xsd:minInclusive "-9223372036854775808"^^xsd:long
]
) .
xsd:maxExclusive
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "The exclusive upper bound of an ordered datatype." ;
rdfs:label "max exclusive" .
xsd:maxInclusive
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "The inclusive upper bound of an ordered datatype." ;
rdfs:label "max inclusive" .
xsd:minExclusive
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "The exclusive lower bound of an ordered datatype." ;
rdfs:label "min exclusive" .
xsd:minInclusive
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "The inclusive lower bound of an ordered datatype." ;
rdfs:label "min inclusive" .
@@ -315,7 +221,7 @@ xsd:nonNegativeInteger
owl:onDatatype xsd:integer ;
owl:withRestrictions (
[
- xsd:pattern "[0-9]*"
+ xsd:pattern "[+]?[0-9]+"
] [
xsd:minInclusive 0
]
@@ -337,41 +243,21 @@ xsd:normalizedString
a rdfs:Datatype ;
rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters." ;
rdfs:label "normalized string" ;
- owl:onDatatype xsd:string ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "replace"
- ]
- ) .
+ owl:onDatatype xsd:string .
xsd:pattern
a rdf:Property ,
- owl:DatatypeProperty ;
+ owl:DatatypeProperty ;
rdfs:comment "A regular expression that matches complete valid literals." ;
rdfs:label "pattern" .
-xsd:whiteSpace
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:comment "A string that describes whitespace normalization for a string type." ;
- rdfs:label "white space" ;
- rdfs:range [
- a rdfs:Datatype ;
- owl:onDatatype xsd:string ;
- owl:withRestrictions (
- [
- xsd:pattern "(preserve|replace|collapse)"
- ]
- )
- ] .
-
xsd:positiveInteger
a rdfs:Datatype ;
rdfs:label "positive integer" ;
owl:onDatatype xsd:nonNegativeInteger ;
owl:withRestrictions (
[
- xsd:pattern "[+]?[0-9]+"
+ xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*"
] [
xsd:minInclusive 1
]
@@ -383,9 +269,9 @@ xsd:short
owl:onDatatype xsd:int ;
owl:withRestrictions (
[
- xsd:minInclusive -32768
+ xsd:maxInclusive "32767"^^xsd:short
] [
- xsd:maxInclusive 32767
+ xsd:minInclusive "-32768"^^xsd:short
]
) .
@@ -393,12 +279,7 @@ xsd:string
a rdfs:Datatype ;
rdfs:comment "A character string." ;
rdfs:label "string" ;
- owl:onDatatype xsd:anySimpleType ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "preserve"
- ]
- ) .
+ owl:onDatatype xsd:anySimpleType .
xsd:time
a rdfs:Datatype ;
@@ -406,9 +287,7 @@ xsd:time
owl:onDatatype xsd:anySimpleType ;
owl:withRestrictions (
[
- xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]"
- ] [
- xsd:whiteSpace "collapse"
+ xsd:pattern "(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?"
]
) .
@@ -416,19 +295,7 @@ xsd:token
a rdfs:Datatype ;
rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters, that have no leading or trailing spaces (#x20) and that have no internal sequences of two or more spaces." ;
rdfs:label "token" ;
- owl:onDatatype xsd:normalizedString ;
- owl:withRestrictions (
- [
- xsd:whiteSpace "collapse"
- ]
- ) .
-
-xsd:totalDigits
- a rdf:Property ,
- owl:DatatypeProperty ;
- rdfs:comment "The maximum number of decimal digits required to represent a value." ;
- rdfs:label "total digits" ;
- rdfs:range xsd:positiveInteger .
+ owl:onDatatype xsd:normalizedString .
xsd:unsignedByte
a rdfs:Datatype ;
@@ -436,7 +303,7 @@ xsd:unsignedByte
owl:onDatatype xsd:unsignedShort ;
owl:withRestrictions (
[
- xsd:maxInclusive 255
+ xsd:maxInclusive "255"^^xsd:unsignedByte
]
) .
@@ -446,7 +313,7 @@ xsd:unsignedInt
owl:onDatatype xsd:unsignedLong ;
owl:withRestrictions (
[
- xsd:maxInclusive 4294967295
+ xsd:maxInclusive "4294967295"^^xsd:unsignedInt
]
) .
@@ -456,7 +323,7 @@ xsd:unsignedLong
owl:onDatatype xsd:nonNegativeInteger ;
owl:withRestrictions (
[
- xsd:maxInclusive 18446744073709551615
+ xsd:maxInclusive "18446744073709551615"^^xsd:unsignedLong
]
) .
@@ -466,7 +333,22 @@ xsd:unsignedShort
owl:onDatatype xsd:unsignedInt ;
owl:withRestrictions (
[
- xsd:maxInclusive 65535
+ xsd:maxInclusive "65535"^^xsd:unsignedShort
]
) .
+xsd:whiteSpace
+ a rdf:Property ,
+ owl:DatatypeProperty ;
+ rdfs:comment "A string that describes whitespace normalization for a string type." ;
+ rdfs:label "white space" ;
+ rdfs:range [
+ a rdfs:Datatype ;
+ owl:onDatatype xsd:string ;
+ owl:withRestrictions (
+ [
+ xsd:pattern "(preserve|replace|collapse)"
+ ]
+ )
+ ] .
+
diff --git a/util/lv2_validate.in b/util/lv2_validate.in
index d30cd85..2295f98 100755
--- a/util/lv2_validate.in
+++ b/util/lv2_validate.in
@@ -14,23 +14,15 @@ sord_validate \
"$LV2DIR/patch.lv2/manifest.ttl" \
"$LV2DIR/patch.lv2/patch.meta.ttl" \
"$LV2DIR/patch.lv2/patch.ttl" \
- "$LV2DIR/eg-amp.lv2/manifest.ttl" \
- "$LV2DIR/eg-amp.lv2/amp.ttl" \
- "$LV2DIR/eg-fifths.lv2/manifest.ttl" \
- "$LV2DIR/eg-fifths.lv2/fifths.ttl" \
"$LV2DIR/port-props.lv2/manifest.ttl" \
"$LV2DIR/port-props.lv2/port-props.meta.ttl" \
"$LV2DIR/port-props.lv2/port-props.ttl" \
- "$LV2DIR/eg-midigate.lv2/manifest.ttl" \
- "$LV2DIR/eg-midigate.lv2/midigate.ttl" \
"$LV2DIR/worker.lv2/worker.meta.ttl" \
"$LV2DIR/worker.lv2/manifest.ttl" \
"$LV2DIR/worker.lv2/worker.ttl" \
"$LV2DIR/buf-size.lv2/manifest.ttl" \
"$LV2DIR/buf-size.lv2/buf-size.meta.ttl" \
"$LV2DIR/buf-size.lv2/buf-size.ttl" \
- "$LV2DIR/eg-scope.lv2/manifest.ttl" \
- "$LV2DIR/eg-scope.lv2/examploscope.ttl" \
"$LV2DIR/midi.lv2/midi.meta.ttl" \
"$LV2DIR/midi.lv2/manifest.ttl" \
"$LV2DIR/midi.lv2/midi.ttl" \
@@ -55,8 +47,6 @@ sord_validate \
"$LV2DIR/port-groups.lv2/manifest.ttl" \
"$LV2DIR/port-groups.lv2/port-groups.ttl" \
"$LV2DIR/port-groups.lv2/port-groups.meta.ttl" \
- "$LV2DIR/eg-sampler.lv2/manifest.ttl" \
- "$LV2DIR/eg-sampler.lv2/sampler.ttl" \
"$LV2DIR/ui.lv2/manifest.ttl" \
"$LV2DIR/ui.lv2/ui.ttl" \
"$LV2DIR/ui.lv2/ui.meta.ttl" \
@@ -77,13 +67,9 @@ sord_validate \
"$LV2DIR/core.lv2/lv2core.doap.ttl" \
"$LV2DIR/core.lv2/meta.ttl" \
"$LV2DIR/core.lv2/people.ttl" \
- "$LV2DIR/eg-metro.lv2/manifest.ttl" \
- "$LV2DIR/eg-metro.lv2/metro.ttl" \
"$LV2DIR/presets.lv2/manifest.ttl" \
"$LV2DIR/presets.lv2/presets.ttl" \
"$LV2DIR/presets.lv2/presets.meta.ttl" \
- "$LV2DIR/eg-params.lv2/manifest.ttl" \
- "$LV2DIR/eg-params.lv2/params.ttl" \
"$LV2DIR/urid.lv2/manifest.ttl" \
"$LV2DIR/urid.lv2/urid.ttl" \
"$LV2DIR/urid.lv2/urid.meta.ttl" \
diff --git a/wscript b/wscript
index 6ecb0d9..f1a471b 100644
--- a/wscript
+++ b/wscript
@@ -9,7 +9,7 @@ from waflib.extras import autowaf as autowaf
# Mandatory waf variables
APPNAME = 'lv2' # Package name for waf dist
-VERSION = '1.18.2' # Package version for waf dist
+VERSION = '1.18.3' # Package version for waf dist
top = '.' # Source directory
out = 'build' # Build directory
@@ -196,6 +196,7 @@ def configure(conf):
if conf.env.BUILD_TESTS:
conf.find_program('serdi', mandatory=False)
conf.find_program('sord_validate', mandatory=False)
+ conf.find_program('codespell', mandatory=False)
autowaf.set_lib_env(conf, 'lv2', VERSION, has_objects=False)
autowaf.set_local_lib(conf, 'lv2', has_objects=False)
@@ -686,6 +687,9 @@ def test_vocabularies(check, specs, files):
# Check that all properties are either datatype or object properties
for r in sorted(model.triples([None, rdf.type, rdf.Property])):
subject = r[0]
+ if str(subject) == 'http://lv2plug.in/ns/ext/patch#value':
+ continue # patch:value is just a "promiscuous" rdf:Property
+
types = list(model.objects(subject, rdf.type))
check(lambda: ((owl.DatatypeProperty in types) or
@@ -716,6 +720,25 @@ def test(tst):
all_files = schemas + spec_files + plugin_files + bld_files
check(tst.env.SORD_VALIDATE + all_files)
+ if "CODESPELL" in tst.env:
+ spell_ignore = [
+ "build",
+ "doc/pygments.css",
+ "lv2specgen/DTD/*",
+ "schemas.lv2/doap.ttl",
+ "waflib",
+ ]
+
+ spell_ignore_paths = [os.path.join(tst.src_path("."), x)
+ for x in spell_ignore]
+
+ check(tst.env.CODESPELL + [
+ "-d",
+ "-q", "3",
+ "-S", ','.join(spell_ignore_paths),
+ tst.src_path("."),
+ ])
+
try:
test_vocabularies(check, specs, spec_files)
except ImportError as e: