c++/lv2-demo-modul/manifest.ttl
changeset 59 d6614ad97bed
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/c++/lv2-demo-modul/manifest.ttl	Fri May 15 20:32:37 2020 +0200
     1.3 @@ -0,0 +1,68 @@
     1.4 +# LV2 plugins are installed in a ``bundle'', a directory with a standard
     1.5 +# structure.  Each bundle has a Turtle file named `manifest.ttl` which lists
     1.6 +# the contents of the bundle.
     1.7 +#
     1.8 +# Hosts typically read the manifest of every installed bundle to discover
     1.9 +# plugins on start-up, so it should be as small as possible for performance
    1.10 +# reasons.  Details that are only useful if the host chooses to load the plugin
    1.11 +# are stored in other files and linked to from `manifest.ttl`.
    1.12 +#
    1.13 +# ==== URIs ====
    1.14 +#
    1.15 +# LV2 makes use of URIs as globally-unique identifiers for resources.  For
    1.16 +# example, the ID of the plugin described here is
    1.17 +# `<http://lv2plug.in/plugins/eg-amp>`.  Note that URIs are only used as
    1.18 +# identifiers and don't necessarily imply that something can be accessed at
    1.19 +# that address on the web (though that may be the case).
    1.20 +#
    1.21 +# ==== Namespace Prefixes ====
    1.22 +#
    1.23 +# Turtle files contain many URIs, but prefixes can be defined to improve
    1.24 +# readability.  For example, with the `lv2:` prefix below, `lv2:Plugin` can be
    1.25 +# written instead of `<http://lv2plug.in/ns/lv2core#Plugin>`.
    1.26 +
    1.27 +@prefix lv2:  <http://lv2plug.in/ns/lv2core#> .
    1.28 +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    1.29 +
    1.30 +# ==== Describing a Plugin ====
    1.31 +
    1.32 +# Turtle files contain a set of ``statements'' which describe resources.
    1.33 +# This file contains 3 statements:
    1.34 +# [options="header"]
    1.35 +# |================================================================
    1.36 +# | Subject                             | Predicate    | Object
    1.37 +# | <http://lv2plug.in/plugins/eg-amp>  | a            | lv2:Plugin
    1.38 +# | <http://lv2plug.in/plugins/eg-amp>  | lv2:binary   | <amp.so>
    1.39 +# | <http://lv2plug.in/plugins/eg-amp>  | rdfs:seeAlso | <amp.ttl>
    1.40 +# |================================================================
    1.41 +
    1.42 +# Firstly, `<http://lv2plug.in/plugins/eg-amp>` is an LV2 plugin:
    1.43 +<http://lv2plug.in/plugins/eg-amp> a lv2:Plugin .
    1.44 +
    1.45 +# The predicate ```a`'' is a Turtle shorthand for `rdf:type`.
    1.46 +
    1.47 +# The binary of that plugin can be found at `<amp.ext>`:
    1.48 +<http://lv2plug.in/plugins/eg-amp> lv2:binary <amp.so> .
    1.49 +
    1.50 +# This file is a template; the token `@LIB_EXT@` is replaced by the build
    1.51 +# system with the appropriate extension for the current platform before
    1.52 +# installation.  For example, in the output `manifest.ttl`, the binary would be
    1.53 +# listed as `<amp.so>`.  Relative URIs in manifests are relative to the bundle
    1.54 +# directory, so this refers to a binary with the given name in the same
    1.55 +# directory as this manifest.
    1.56 +
    1.57 +# Finally, more information about this plugin can be found in `<amp.ttl>`:
    1.58 +<http://lv2plug.in/plugins/eg-amp> rdfs:seeAlso <amp.ttl> .
    1.59 +
    1.60 +# ==== Abbreviation ====
    1.61 +#
    1.62 +# This file shows these statements individually for instructive purposes, but
    1.63 +# the subject `<http://lv2plug.in/plugins/eg-amp>` is repetitive.  Turtle
    1.64 +# allows the semicolon to be used as a delimiter that repeats the previous
    1.65 +# subject.  For example, this manifest would more realistically be written like
    1.66 +# so:
    1.67 +
    1.68 +<http://lv2plug.in/plugins/eg-amp>
    1.69 +	a lv2:Plugin ;
    1.70 +	lv2:binary <amp.so>  ;
    1.71 +	rdfs:seeAlso <amp.ttl> .