[vos-d] s5 properties proposal
Reed Hedges
reed at interreality.org
Tue May 13 16:29:51 EDT 2008
We talked a bit on IRC but wanted to respond here too.
I think it can be summarized briefly like this, I think:
In S4, Vobjects had an ordered list of named child links to other
Vobjects, one type of which was a Property. In the proposal, Vobjects
have an unordered set of named properties, one type of which is a link
to another Vobject. (And properties can be lists or structured records,
which could include Vobject links.)
I like the benefits of embedded properties, as long as we can still
retain or mimic some of the important aspects of Vobjects as well, in
order not to limit the usefulness of properties, and also to facilitate
transmogrifying a property into a new seperate vobject (using for
example the 'overrides' part of your proposal).
I think having ordered vobjects is useful. But could live with having
ordered property data instead I guess.
Properties should still have some kind of type/tagging associated with
them (optionally) that could, for example, let programs use extensible
API to access them (like Vobjects). For example, could you do the
following using the new embedded properties:
A property of a certain type has subproperties beneath it that contain
the original value translated into other languages or locales. (or are
generally speaking alternative versions) You can ignore the
translations if you want, but if the property is tagged with
"has-translations" or whatever, and the user has a preferred language,
then use the subproperty for that language rather than the default.
You could think of various things like this where you want to have the
ability to add facets or special meaning onto a property in the same way
as you can a Vobject using a Component (metaobject).
Or, of course you might just want to have a tag on a property that might
have some meaning but which does not imply that any subproperties exist etc.
...
Can you walk through how overrides work or how one would replace an
embedded property with an override that points to a seperate vobject?
Would the new seperated property need to be a subproperty of a vobject?
Or could we have a "Property" type Vobject (like the old kind), with the
same or almost the same API as embedded properties? (And then you can
link to it directly as a child link.)
More information about the vos-d
mailing list