Links, tags, and metadata are facilities provided by beancount that do
not really have a strictly defined role: they are building block for
different workflows.
Links are tags both allow to attach labels to transactions. As the name
implies, links are generally used to link related transactions, tags are
generally used for classification. Tags can be applied to a group of
transactions with the "pushtag" and "poptag" directives. Links do not
have a similar mechanism.
Metadata allow to attach key-value pairs to transactions (and many other
ledger entries). Usually metadata is used for recording structured
information.
> correction to comparison table
>
> | tags | links | meta
> can be filtered by in beanquery | Yes | Yes | Yes
> Can be several ones in one transaction | Yes | Yes | No
> can be grouped by in beanquery | No | No | Yes
I'm not sure I understand how you define these properties.
Metadata fields cannot be lists, but you can have as many metadata
fields attached to one transaction, thus there "can be several meta in
one transaction".
You cannot group by the `links` or `tags` columns in bean-query, but you
cannot group by the `meta` column either. You can group by the value of
a specific metadata field, but you can also group by the presence of a
specific link or tag. Therefore I don't understand what you mean with
the last line.
Cheers,
Dan