summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/ingen.lv2/ingen.ttl146
-rw-r--r--bundles/ingen.lv2/internals.ttl41
-rw-r--r--rdf/ingen.ttl192
-rw-r--r--rdf/internals.ttl65
4 files changed, 187 insertions, 257 deletions
diff --git a/bundles/ingen.lv2/ingen.ttl b/bundles/ingen.lv2/ingen.ttl
new file mode 100644
index 00000000..9a708f4c
--- /dev/null
+++ b/bundles/ingen.lv2/ingen.ttl
@@ -0,0 +1,146 @@
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix owl: <http://www.w3.org/2002/07/owl#> .
+
+<http://drobilla.net/drobilla#me>
+ a foaf:Person ;
+ foaf:name "David Robillard" ;
+ foaf:mbox <mailto:d@drobilla.net> ;
+ rdfs:seeAlso <http://drobilla.net/drobilla> .
+
+ingen:
+ a owl:Ontology ;
+ doap:name "Ingen" ;
+ doap:homepage <http://drobilla.net/software/ingen> ;
+ doap:maintainer <http://drobilla.net/drobilla#me> .
+
+ingen:Plugin
+ a owl:Class ;
+ rdfs:label "Plugin" ;
+ rdfs:comment """
+A class which can be instantiated into a ingen:Node. A plugin has a set of input
+and output "ports". In practise this class is semantically equivalent to
+lv2:Plugin, it only exists to allow the ingen ontology to be useful for
+"plugins" that aren't semantically LV2 plugins. See the LV2 specification
+for details about the required properties (rdf:type, doap:name, doap:license,
+and lv2:port).
+""" .
+
+ingen:Patch
+ a owl:Class ;
+ rdfs:subClassOf ingen:Plugin ;
+ rdfs:label "Patch" ;
+ rdfs:comment """
+A collection of Nodes connected together form a Patch, which is itself
+a :Plugin (and thus can be part of another patch, and so on)
+""" .
+
+ingen:node
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Patch ;
+ rdfs:range ingen:Node ;
+ rdfs:label "node" ;
+ rdfs:comment "Signifies a patch contains some node." .
+
+ingen:polyphony
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Patch ;
+ rdfs:range xsd:integer ;
+ rdfs:label "Polyphony" ;
+ rdfs:comment """
+The amount of polyphony in a Patch. This defines the number of voices
+present on all :polyphonic children of this patch. Because a Patch is
+also a Node, a Patch may have both :polyphony and :polyphonic properties.
+These specify different things: :polyphony specifies the voice count
+of the Patch's children, and :polyphonic specifies whether the patch is
+seen as polyphonic to the Patch's parent.
+""" .
+
+ingen:Object
+ a owl:Class ;
+ rdfs:label "Ingen Object" ;
+ rdfs:comment """
+A signal processing object which is part of a Patch. An Object MUST have
+exactly one lv2:symbol property. This MAY be inferred from the URI where
+possible (e.g. in a system which publishes node URIs in a heirarchial way
+such that the parent can be 'chopped' to get a legal symbol).
+""" .
+
+ingen:polyphonic
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Object ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "Polyphonic" ;
+ rdfs:comment """
+Signifies this object should be replicated when it is part of a polyphonic
+patch. The amount of polyphony (i.e. the number of voices) is determined
+by the :polyphony property of the containing patch. This is a boolean
+property which defines whether the parent can access each voice individuall:
+All objects within a patch are either polyphonic or not from their parent's
+perspective. An Object may itself have "internal" polyphony but not be
+polyphonic according to this property, if those voices are mixed down.
+""" .
+
+ingen:Node
+ a owl:Class ;
+ rdfs:subClassOf ingen:Object ;
+ rdfs:label "Node" ;
+ rdfs:comment """
+An instance of a Plugin. Since a Patch is a Plugin, an instance of a Patch
+is also a Node. A Node inherits all the properties of the plugin of which
+it is an instance, but may have properties of its own: any properties of
+the node take precedence over properties of the node's plugin. This way a
+node can be expressed as a lightweight set of changes (e.g. input values)
+from its plugin or patch which may be defined elsewhere.
+
+A node MUST have at least one rdf:instanceOf property which is a subclass
+of :Plugin. When there are many such properties, an applications SHOULD
+use the most specific class it understands.
+""" .
+
+ingen:enabled
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Node ;
+ rdfs:range xsd:boolean ;
+ rdfs:label "Enabled" ;
+ rdfs:comment "Signifies the node is or should be running." .
+
+ingen:Port
+ a owl:Class ;
+ rdfs:subClassOf ingen:Object ;
+ rdfs:label "Port" ;
+ rdfs:comment """
+A Port is an input or output on a Node. It is implicitly an instance of the
+corresponding port on that Node's plugin (specified with rdf:instanceOf).
+A Port MUST have a legal lv2:symbol in the exact way a Node must, see :Node
+documentation for details. Ports inherit properties from the Port on their
+parent's Plugin in the exact way Nodes inherit properties from their Plugin.
+""" .
+
+ingen:Connection
+ a owl:Class ;
+ rdfs:label "Connection" ;
+ rdfs:comment """
+A connection between two ports. Patches have a set of connections which
+define how its component nodes and ports are connected. A Connection MUST
+have exactly one :source property and exactly one :destination property.
+""" .
+
+ingen:source
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Connection ;
+ rdfs:range ingen:Port ;
+ rdfs:label "Source" ;
+ rdfs:comment "The source/sending port of this connection" .
+
+ingen:destination
+ a owl:ObjectProperty ;
+ rdfs:domain ingen:Connection ;
+ rdfs:range ingen:Port ;
+ rdfs:label "Destination" ;
+ rdfs:comment "The destination/receiving/sink port of this connection" .
diff --git a/bundles/ingen.lv2/internals.ttl b/bundles/ingen.lv2/internals.ttl
new file mode 100644
index 00000000..63f6d799
--- /dev/null
+++ b/bundles/ingen.lv2/internals.ttl
@@ -0,0 +1,41 @@
+@prefix ingen: <http://drobilla.net/ns/ingen-internals#> .
+@prefix ingen: <http://drobilla.net/ns/ingen#> .
+@prefix doap: <http://usefulinc.com/ns/doap#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema> .
+
+ingen:Controller
+ a ingen:Plugin ;
+ rdfs:label "Controller" ;
+ rdfs:comment """
+Receives events and outputs signals for some specific controller
+(e.g. MIDI CC).
+""" .
+
+ingen:Trigger
+ a ingen:Plugin ;
+ rdfs:label "Trigger" ;
+ rdfs:comment """
+Receives events and outputs a trigger signal when a specific note is received.
+""" .
+
+ingen:Note
+ a ingen:Plugin ;
+ rdfs:label "Note" ;
+ rdfs:comment """
+Receives events and outputs signals for the individual properties of the
+received notes. This plugin is special because it is internally aware of
+Ingen's polyphony and controls voice allocation.
+""" .
+
+ingen:Transport
+ a ingen:Plugin ;
+ rdfs:label "Transport" ;
+ rdfs:comment """
+Listens to system transport information (when available) and outputs signals
+for the various transport properties. When no system transport information
+is available this plugin outputs "default" values: 4/4, 120bpm.
+""" .
diff --git a/rdf/ingen.ttl b/rdf/ingen.ttl
deleted file mode 100644
index e715aebb..00000000
--- a/rdf/ingen.ttl
+++ /dev/null
@@ -1,192 +0,0 @@
-# Ingen Ontology
-# Copyright 2008-2011 David Robillard <http://drobilla.net>
-#
-# This document describes classes and properties that define a "patch" or
-# "graph" representing a dataflow program or system. It borrows heavily
-# from the LV2 specification <http://lv2plug.in> which describes plugins
-# for signal processing.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-
-@prefix : <http://drobilla.net/ns/ingen#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
-@prefix owl: <http://www.w3.org/2002/07/owl#> .
-
-<http://drobilla.net/ns/ingen>
- a owl:Ontology ;
- doap:name "Ingen" ;
- doap:homepage <http://drobilla.net/software/ingen> ;
- doap:maintainer [
- a foaf:Person ;
- foaf:name "David Robillard" ;
- foaf:homepage <http://drobilla.net/> ;
- rdfs:seeAlso <http://drobilla.net/drobilla.rdf>
- ] .
-
-
-############
-## Plugin ##
-############
-
-:Plugin a owl:Class ;
- rdfs:label "Plugin" ;
- rdfs:comment """
-A class which can be instantiated into a :Node. A plugin has a set of input
-and output "ports". In practise this class is semantically equivalent to
-lv2:Plugin, it only exists to allow the ingen ontology to be useful for
-"plugins" that aren't semantically LV2 plugins. See the LV2 specification
-for details about the required properties (rdf:type, doap:name, doap:license,
-and lv2:port).
-""" .
-
-#lv2:Plugin rdfs:subClassOf :Plugin .
-
-
-###########
-## Patch ##
-###########
-
-:Patch a owl:Class ;
- rdfs:subClassOf :Plugin ;
- rdfs:label "Patch" ;
- rdfs:comment """
-A collection of Nodes connected together form a Patch, which is itself
-a :Plugin (and thus can be part of another patch, and so on)
-""" .
-
-:node a owl:ObjectProperty ;
- rdfs:domain :Patch ;
- rdfs:range :Node ;
- rdfs:label "node" ;
- rdfs:comment "Signifies a patch contains some node." .
-
-:polyphony a owl:ObjectProperty ;
- rdfs:domain :Patch ;
- rdfs:range xsd:integer ;
- rdfs:label "Polyphony" ;
- rdfs:comment """
-The amount of polyphony in a Patch. This defines the number of voices
-present on all :polyphonic children of this patch. Because a Patch is
-also a Node, a Patch may have both :polyphony and :polyphonic properties.
-These specify different things: :polyphony specifies the voice count
-of the Patch's children, and :polyphonic specifies whether the patch is
-seen as polyphonic to the Patch's parent.
-""" .
-
-
-############
-## Object ##
-############
-
-:Object a owl:Class ;
- rdfs:label "Ingen Object" ;
- rdfs:comment """
-A signal processing object which is part of a Patch. An Object MUST have
-exactly one lv2:symbol property. This MAY be inferred from the URI where
-possible (e.g. in a system which publishes node URIs in a heirarchial way
-such that the parent can be 'chopped' to get a legal symbol).
-""" .
-
-:polyphonic a owl:ObjectProperty ;
- rdfs:domain :Object ;
- rdfs:range xsd:boolean ;
- rdfs:label "Polyphonic" ;
- rdfs:comment """
-Signifies this object should be replicated when it is part of a polyphonic
-patch. The amount of polyphony (i.e. the number of voices) is determined
-by the :polyphony property of the containing patch. This is a boolean
-property which defines whether the parent can access each voice individuall:
-All objects within a patch are either polyphonic or not from their parent's
-perspective. An Object may itself have "internal" polyphony but not be
-polyphonic according to this property, if those voices are mixed down.
-""" .
-
-
-##########
-## Node ##
-##########
-
-:Node a owl:Class ;
- rdfs:subClassOf :Object ;
- rdfs:label "Node" ;
- rdfs:comment """
-An instance of a Plugin. Since a Patch is a Plugin, an instance of a Patch
-is also a Node. A Node inherits all the properties of the plugin of which
-it is an instance, but may have properties of its own: any properties of
-the node take precedence over properties of the node's plugin. This way a
-node can be expressed as a lightweight set of changes (e.g. input values)
-from its plugin or patch which may be defined elsewhere.
-
-A node MUST have at least one rdf:instanceOf property which is a subclass
-of :Plugin. When there are many such properties, an applications SHOULD
-use the most specific class it understands.
-""" .
-
-:enabled a owl:ObjectProperty ;
- rdfs:domain :Node ;
- rdfs:range xsd:boolean ;
- rdfs:label "Enabled" ;
- rdfs:comment "Signifies the node is or should be running." .
-
-
-##########
-## Port ##
-##########
-
-:Port a owl:Class ;
- rdfs:subClassOf :Object ;
- rdfs:label "Port" ;
- rdfs:comment """
-A Port is an input or output on a Node. It is implicitly an instance of the
-corresponding port on that Node's plugin (specified with rdf:instanceOf).
-A Port MUST have a legal lv2:symbol in the exact way a Node must, see :Node
-documentation for details. Ports inherit properties from the Port on their
-parent's Plugin in the exact way Nodes inherit properties from their Plugin.
-""" .
-
-
-################
-## Connection ##
-################
-
-:Connection a owl:Class ;
- rdfs:label "Connection" ;
- rdfs:comment """
-A connection between two ports. Patches have a set of connections which
-define how its component nodes and ports are connected. A Connection MUST
-have exactly one :source property and exactly one :destination property.
-""" .
-
-:source a owl:ObjectProperty ;
- rdfs:domain :Connection ;
- rdfs:range :Port ;
- rdfs:label "Source" ;
- rdfs:comment "The source/sending port of this connection" .
-
-:destination a owl:ObjectProperty ;
- rdfs:domain :Connection ;
- rdfs:range :Port ;
- rdfs:label "Destination" ;
- rdfs:comment "The destination/receiving/sink port of this connection" .
-
diff --git a/rdf/internals.ttl b/rdf/internals.ttl
deleted file mode 100644
index 8c4aeb70..00000000
--- a/rdf/internals.ttl
+++ /dev/null
@@ -1,65 +0,0 @@
-# Ingen Internal Plugins
-# Copyright 2008-2011 David Robillard <http://drobilla.net>
-#
-# This document describes internal plugins that are implemented in
-# Ingen itself. This set is deliberately as small as possible: an
-# internal plugin exists only because there is no sufficiently powerful
-# plugin specification to do its job. Ingen's philosophy is that this is
-# a bug to be fixed, e.g. by defining LV2 extensions.
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-
-@prefix : <http://drobilla.net/ns/ingen-internals#> .
-@prefix ingen: <http://drobilla.net/ns/ingen#> .
-@prefix doap: <http://usefulinc.com/ns/doap#> .
-@prefix foaf: <http://xmlns.com/foaf/0.1/> .
-@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
-@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema> .
-
-:Controller a ingen:Plugin ;
- rdfs:label "Controller" ;
- rdfs:comment """
-Receives events and outputs signals for some specific controller
-(e.g. MIDI CC).
-""" .
-
-:Trigger a ingen:Plugin ;
- rdfs:label "Trigger" ;
- rdfs:comment """
-Receives events and outputs a trigger signal when a specific note is received.
-""" .
-
-:Note a ingen:Plugin ;
- rdfs:label "Note" ;
- rdfs:comment """
-Receives events and outputs signals for the individual properties of the
-received notes. This plugin is special because it is internally aware of
-Ingen's polyphony and controls voice allocation.
-""" .
-
-:Transport a ingen:Plugin ;
- rdfs:label "Transport" ;
- rdfs:comment """
-Listens to system transport information (when available) and outputs signals
-for the various transport properties. When no system transport information
-is available this plugin outputs "default" values: 4/4, 120bpm.
-""" .
-