# LV2 plugins are installed in a ``bundle'', a directory with a standard # structure. Each bundle has a Turtle file named `manifest.ttl` which lists # the contents of the bundle. # # Hosts typically read the manifest of every installed bundle to discover # plugins on start-up, so it should be as small as possible for performance # reasons. Details that are only useful if the host chooses to load the plugin # are stored in other files and linked to from `manifest.ttl`. # # ==== URIs ==== # # LV2 makes use of URIs as globally-unique identifiers for resources. For # example, the ID of the plugin described here is # `<http://lv2plug.in/plugins/eg-amp>`. Note that URIs are only used as # identifiers and don't necessarily imply that something can be accessed at # that address on the web (though that may be the case). # # ==== Namespace Prefixes ==== # # Turtle files contain many URIs, but prefixes can be defined to improve # readability. For example, with the `lv2:` prefix below, `lv2:Plugin` can be # written instead of `<http://lv2plug.in/ns/lv2core#Plugin>`. @prefix lv2: <http://lv2plug.in/ns/lv2core#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . # ==== Describing a Plugin ==== # Turtle files contain a set of ``statements'' which describe resources. # This file contains 3 statements: # [options="header"] # |================================================================ # | Subject | Predicate | Object # | <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> # |================================================================ # Firstly, `<http://lv2plug.in/plugins/eg-amp>` is an LV2 plugin: <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin . # The predicate ```a`'' is a Turtle shorthand for `rdf:type`. # The binary of that plugin can be found at `<amp.ext>`: <http://lv2plug.in/plugins/eg-amp> lv2:binary <amp@LIB_EXT@> . # This file is a template; the token `@LIB_EXT@` is replaced by the build # system with the appropriate extension for the current platform before # installation. For example, in the output `manifest.ttl`, the binary would be # listed as `<amp.so>`. Relative URIs in manifests are relative to the bundle # directory, so this refers to a binary with the given name in the same # directory as this manifest. # Finally, more information about this plugin can be found in `<amp.ttl>`: <http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> . # ==== Abbreviation ==== # # This file shows these statements individually for instructive purposes, but # the subject `<http://lv2plug.in/plugins/eg-amp>` is repetitive. Turtle # allows the semicolon to be used as a delimiter that repeats the previous # subject. For example, this manifest would more realistically be written like # so: <http://lv2plug.in/plugins/eg-amp> a lv2:Plugin ; lv2:binary <amp@LIB_EXT@> ; rdfs:seeAlso <amp.ttl> .