# LV2 Bundle Manifest # # All LV2 plugins are installed as "bundles", a directory with a particular # format. Inside the bundle, the entry point is a file called "manifest.ttl". # This file lists what plugins are in this bundle, and which files are (.so, # .ttl, etc.) are associated with those plugins. # # Hosts read bundles' manifest.ttl to discover what plugins (and other # resources) are available. Manifest files should be as small as possible for # performance reasons. # # The syntax of this file (and most other LV2 data files) is a language called # Turtle ("Turse RDF Triple Language").[1] RDF[3] is a data model that # expresses the relationship between things as (subject, predicate, object) # triples. Turtle is a simple, terse, abbreviated syntax for RDF. # Namespace Prefixes @prefix lv2: <http://lv2plug.in/ns/lv2core#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . # Data (list of resources in this bundle, hence "manifest") <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin ; lv2:binary <amp.so> ; rdfs:seeAlso <amp.ttl> . # Explanation # # In short, this declares that the resource with URI # "http://lv2plug.in/plugins/eg-amp") is an LV2 plugin, with executable code in # the file "amp.so" and a full description in "amp.ttl". These paths are # relative to the bundle directory. # # There are 3 statements in this description: # # # | Subject | Predicate | Object # ------------------------------------------------------------------- # 1 | <http://lv2plug.in/plugins/eg-amp> | a | lv2:Plugin # 2 | <http://lv2plug.in/plugins/eg-amp> | lv2:binary | <amp.so> # 3 | <http://lv2plug.in/plugins/eg-amp> | rdfs:seeAlso | <amp.ttl> # # The semicolon is used to continue the previous subject, an equivalent # but more verbose syntax for the same data is: # # <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin . # <http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> ; # <http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> . # # Note that the documentation for a URI can often be found by visiting that URI # in a web browser, e.g. the documentation for lv2:binary can be found at # <http://lv2plug.in/ns/lv2core#binary>. If you encounter a predicate in some # data which you do not understand, try this first. # # Note the URI of a plugin does NOT need to be an actual web address, it's just # a global identifier. It is, however, a good idea to use an actual web # address if possible, since it can be used to easily access documentation, # downloads, etc. Note there are compatibility rules for when the URI of a # plugin must be changed, see the LV2 specification[4] for details. # # A detailed explanation of each statement follows. # # 1: <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin # # The "a" is a Turtle shortcut for rdf:type and more or less means "is a". # lv2:Plugin expands to <http://lv2plug.in/ns/lv2core#Plugin> (using the # "lv2:" prefix above) and is the established URI for the type "LV2 Plugin". # This statement literally means "this resource is an LV2 plugin". # # 2: <http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> # # This says "this plugin has executable code ("binary") in the file # named "amp.so", which is located in this bundle. The LV2 specification # defines that all relative URIs in manifest files are relative to the bundle # directory, so this refers to the file amp.so in the same directory as this # manifest.ttl file. # # 3: <http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> # # This says "there is more information about this plugin located in the file # "amp.ttl". The host will look at all such files when it needs to actually # use or investigate the plugin. # Footnotes # # [1] http://www.w3.org/TeamSubmission/turtle/ # [2] http://www.w3.org/RDF/ # http://www.w3.org/TR/2004/REC-rdf-primer-20040210/ # [3] http://tools.ietf.org/html/rfc3986 # [4] http://lv2plug.in/ns/lv2core