# 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: . @prefix rdfs: . # Data (list of resources in this bundle, hence "manifest") a lv2:Plugin ; lv2:binary ; rdfs:seeAlso . # 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 | | a | lv2:Plugin # 2 | | lv2:binary | # 3 | | rdfs:seeAlso | # # The semicolon is used to continue the previous subject, an equivalent # but more verbose syntax for the same data is: # # a lv2:Plugin . # lv2:binary ; # rdfs:seeAlso . # # 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 # . 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: a lv2:Plugin # # The "a" is a Turtle shortcut for rdf:type and more or less means "is a". # lv2:Plugin expands to (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: lv2:binary # # 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: rdfs:seeAlso # # 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