franta-hg@59
|
1 |
# LV2 plugins are installed in a ``bundle'', a directory with a standard
|
franta-hg@59
|
2 |
# structure. Each bundle has a Turtle file named `manifest.ttl` which lists
|
franta-hg@59
|
3 |
# the contents of the bundle.
|
franta-hg@59
|
4 |
#
|
franta-hg@59
|
5 |
# Hosts typically read the manifest of every installed bundle to discover
|
franta-hg@59
|
6 |
# plugins on start-up, so it should be as small as possible for performance
|
franta-hg@59
|
7 |
# reasons. Details that are only useful if the host chooses to load the plugin
|
franta-hg@59
|
8 |
# are stored in other files and linked to from `manifest.ttl`.
|
franta-hg@59
|
9 |
#
|
franta-hg@59
|
10 |
# ==== URIs ====
|
franta-hg@59
|
11 |
#
|
franta-hg@59
|
12 |
# LV2 makes use of URIs as globally-unique identifiers for resources. For
|
franta-hg@59
|
13 |
# example, the ID of the plugin described here is
|
franta-hg@59
|
14 |
# `<http://lv2plug.in/plugins/eg-amp>`. Note that URIs are only used as
|
franta-hg@59
|
15 |
# identifiers and don't necessarily imply that something can be accessed at
|
franta-hg@59
|
16 |
# that address on the web (though that may be the case).
|
franta-hg@59
|
17 |
#
|
franta-hg@59
|
18 |
# ==== Namespace Prefixes ====
|
franta-hg@59
|
19 |
#
|
franta-hg@59
|
20 |
# Turtle files contain many URIs, but prefixes can be defined to improve
|
franta-hg@59
|
21 |
# readability. For example, with the `lv2:` prefix below, `lv2:Plugin` can be
|
franta-hg@59
|
22 |
# written instead of `<http://lv2plug.in/ns/lv2core#Plugin>`.
|
franta-hg@59
|
23 |
|
franta-hg@59
|
24 |
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
|
franta-hg@59
|
25 |
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
franta-hg@59
|
26 |
|
franta-hg@59
|
27 |
# ==== Describing a Plugin ====
|
franta-hg@59
|
28 |
|
franta-hg@59
|
29 |
# Turtle files contain a set of ``statements'' which describe resources.
|
franta-hg@59
|
30 |
# This file contains 3 statements:
|
franta-hg@59
|
31 |
# [options="header"]
|
franta-hg@59
|
32 |
# |================================================================
|
franta-hg@59
|
33 |
# | Subject | Predicate | Object
|
franta-hg@59
|
34 |
# | <http://lv2plug.in/plugins/eg-amp> | a | lv2:Plugin
|
franta-hg@59
|
35 |
# | <http://lv2plug.in/plugins/eg-amp> | lv2:binary | <amp.so>
|
franta-hg@59
|
36 |
# | <http://lv2plug.in/plugins/eg-amp> | rdfs:seeAlso | <amp.ttl>
|
franta-hg@59
|
37 |
# |================================================================
|
franta-hg@59
|
38 |
|
franta-hg@59
|
39 |
# Firstly, `<http://lv2plug.in/plugins/eg-amp>` is an LV2 plugin:
|
franta-hg@59
|
40 |
<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin .
|
franta-hg@59
|
41 |
|
franta-hg@59
|
42 |
# The predicate ```a`'' is a Turtle shorthand for `rdf:type`.
|
franta-hg@59
|
43 |
|
franta-hg@59
|
44 |
# The binary of that plugin can be found at `<amp.ext>`:
|
franta-hg@59
|
45 |
<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> .
|
franta-hg@59
|
46 |
|
franta-hg@59
|
47 |
# This file is a template; the token `@LIB_EXT@` is replaced by the build
|
franta-hg@59
|
48 |
# system with the appropriate extension for the current platform before
|
franta-hg@59
|
49 |
# installation. For example, in the output `manifest.ttl`, the binary would be
|
franta-hg@59
|
50 |
# listed as `<amp.so>`. Relative URIs in manifests are relative to the bundle
|
franta-hg@59
|
51 |
# directory, so this refers to a binary with the given name in the same
|
franta-hg@59
|
52 |
# directory as this manifest.
|
franta-hg@59
|
53 |
|
franta-hg@59
|
54 |
# Finally, more information about this plugin can be found in `<amp.ttl>`:
|
franta-hg@59
|
55 |
<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> .
|
franta-hg@59
|
56 |
|
franta-hg@59
|
57 |
# ==== Abbreviation ====
|
franta-hg@59
|
58 |
#
|
franta-hg@59
|
59 |
# This file shows these statements individually for instructive purposes, but
|
franta-hg@59
|
60 |
# the subject `<http://lv2plug.in/plugins/eg-amp>` is repetitive. Turtle
|
franta-hg@59
|
61 |
# allows the semicolon to be used as a delimiter that repeats the previous
|
franta-hg@59
|
62 |
# subject. For example, this manifest would more realistically be written like
|
franta-hg@59
|
63 |
# so:
|
franta-hg@59
|
64 |
|
franta-hg@59
|
65 |
<http://lv2plug.in/plugins/eg-amp>
|
franta-hg@59
|
66 |
a lv2:Plugin ;
|
franta-hg@59
|
67 |
lv2:binary <amp.so> ;
|
franta-hg@59
|
68 |
rdfs:seeAlso <amp.ttl> .
|