On Wed, May 19, 2004 at 12:18:25PM +0100, Steve Harris wrote:
What's
missing ?
Semantics. You can define a single layer metadata system with virtually no
(machine) semnatics, eg.
hasTitle: "my plugin"
hasPortCount: "3"
...
but you quickly run into problems when trying to encode anything
interesting, like port 3 is a "contol in port" with a lower range of 0 and an
upper range of the "max delay" port, it uses milliseconds as its units,
should be controlled logarithmically...
You can hack it all in lexically, but then your back to a sitatution where
you can paint yourself into a corner w.r.t. back/forward compatibility.
As far as I can see, everything that can be expressed by an RDF graph or
a set of triplets or the eqeuivalent XML can be equally well expressed by
nested property lists in LISP or even nested structs in C/C++.
The use of URIs in this case seems to me like complete overkill, there is
no requirement that every identifier is webwide uinique since we have a
well defined context.
To get round this, good metadata languages are defined
so that they are
monotonic and with a few other interesting properties that logicians care
about.
At some point in your program, metadata will be translated into variable
values. If at that point you decide that B overrides A, things are no
longer monotonic, and there's nothing to stop you from doing that even
if the values of A and B were originally derived from RDF.
When you add a field to a C struct, that does not change the value of any
other, so I'd say that is monotonic as well, unless you decide to destroy
that property as described above.
If you are interested in the mathematical properties,
then read the RDF
model theory:
http://www.w3.org/TR/rdf-mt/ its a bit dry though :)
NB I wouldnt suggest we require RDFS for LADSPA, just RDF. RDFS makes it
much more challenging to implement if you dont want to use a standard
library, and we really wouldn't gain much.
Do you mean you would have a dedicated parser that must be updated each
time a property is added, rather than a general one driven by a schema ?
In that case nothing is gained at all.
--
FA