Extensible metadata refers to the data that's wrapped around a
tiddler, like the modified date, the name of the last modifier, and
the tags. This metadata doesn't form part of the text of the tiddler,
but rather is edittable via special controls. So the goal of EMD is to
be able to add additional fields to tiddlers that are transparent to
normal use of the tiddler. The classic example might be fields to
contain the name of the parent tiddler and the next and previous
sibling tiddlers.
Udo's DataTiddler allows subsections of a tiddler to be referenced in
isolation; in other words it gives an API to data *within* a tiddler,
rather than to the metadata.
By the way, 2.1 will also have a feature I've been called 'embedded
fields' which is in effect a very simplified version of Udo's
DataTiddler.
> Any comments? With Udo's plugin, I can store relationship information
> (or any other kind of "metadata") on a per tiddler basis and then,
> using forEachTiddler, construct lists and take various actions based on
> this info.
You can indeed, but it's not metadata in the conventional sense
because your additional fields will be part of the main body of the
item.
Cheers
Jeremy.
--
Jeremy Ruston
mailto:jer...@osmosoft.com
http://www.tiddlywiki.com
Nice app, from my initial look. I'm still exploring it's usefulness but
it looks promising.
For my question:
>>metadata ... will be implemented in TW2.1
Will the user be able to define what the tags are? I'd like to be able
to enter metadata to control the sequence of a report. Ideally to have
any number of logic threads, with tiddlers assigned a precedance in a
thread. Then a separate tag that would sequence strings of tiddlers to
their places in the overall narrative. Does this sound feasible?
One further refinement, for historical narratives, would be to assign
dates any one tiddler and have that drive the sequencing (and flag
inconsitancies). Does this sound like a possible application for what
you're working on?
Cudos for all you've done to date.
michaelg
The metadata features are really an internal API to be used by
plugins, and won't have much of a user interface of their own. Your
scenario is eminently feasible, but it would still require some kind
of plugin to encapsulate the particular logic you need.
> One further refinement, for historical narratives, would be to assign
> dates any one tiddler and have that drive the sequencing (and flag
> inconsitancies). Does this sound like a possible application for what
> you're working on?
Yes, that would also be a perfectly reasonable application of metadata.
Cheers
Jeremy
The metadata features are really an internal API to be used by plugins, and won't have much of a user interface of their own.
Yup, this was the "not much" I meant :)
Don't you think that your example could just be <<edit RecNo>>,
though? The implication is that there would be a data dictionary being
consulted to figure out the type of the field.
Don't you think that your example could just be <<edit RecNo>>, though?
Don't you think that your example could just be <<edit RecNo>>,
though?
Of cause this would be no big deal.
I just wanted to make it more explicit that this edits a field since I had the idea that we may want to use the edit macro to edit even more stuff than "build in stuff" and metadata fields in the future.
Or even <<editField RecNo>>, just to make it super simple.
The metadata features are really an internal API to be used by
plugins, and won't have much of a user interface of their own.Providing the API is the first step, but I actually also envision to provide a simple user interface for this.
The idea is to extend the "edit" macro (and maybe the "view" macro). E.g. currently " <<edit title>> " is used to create a field to edit the "title" of a tiddler. In an extension you may use (e.g.)
<<edit field: RecNo>>"
to edit the "RecNo" metadata field.
> > What's the difference between the metadata that will be implemented in
> > TW2.1 and what Udo implements w/ data fields in his DataTiddlerPlugin?
Extensible metadata refers to the data that's wrapped around a
tiddler, like the modified date, the name of the last modifier, and
the tags. This metadata doesn't form part of the text of the tiddler,
but rather is edittable via special controls. So the goal of EMD is to
be able to add additional fields to tiddlers that are transparent to
normal use of the tiddler. The classic example might be fields to
contain the name of the parent tiddler and the next and previous
sibling tiddlers.
http://trac.tiddlywiki.org/tiddlywiki/timeline
Cheers
Jeremy
I sort of assumed you would be adapting your FormTiddlerPlugin to work with metadata as well ;)
2.1 will be out in less than 8 weeks, complete with extensible
metadata. Development has now begun in earnest:
I sort of assumed you would be adapting your FormTiddlerPlugin to work with metadata as well ;)
That is planned. I assume I will release this soon after TW 2.1
Or even <<editField RecNo>>, just to make it super simple.No, that's too easy. ;-)
Actually I prefer to put all this stuff in a single "edit" macro since I expect that the edit macro will cover some additional functionality in the future that may be shared by all kind of stuff that can be edited. Creating separate macros may make it harder to share this common code.
One plugin can add several macros though, right? If there were a lot of <<edit field: fieldname>> and <<edit meta: fieldname>> and <<edit cookie: fieldname>> or whatever, I reckon it'd be nice to use editField, editMeta, and editCookie, even if they were just oneliners that coverted their calls into <<edit field: >> calls.
I guess I'm just thinking that the people who use the macros aren't always developers, sometimes they're non-coding power users. Seems a bit arbitrary to have some macros that need an extra word in the middle.
On 17 Jun 2006, Daniel Baird wrote about aliases and sparked this thought...
How obvious an idea is it to have a mechanism, let's call it
'aliasifier' that looks at a table of, um, aliases.
|editField |edit field:|
|editMeta |edit meta:|
|editCookie |edit cookie:|
Advantages
""""""""""
+ Single mechanism
+ Easy to extend
+ Possibility for (careful) user to add own aliases
+ Could be used to alias tiddlers (?)
Disadvantages
"""""""""""""
- Possible issues/side effects getting parameters to the actual
function
- Unwitting duplication of names giving rise to all sorts of
problems
Could be solved by scanning the table when it is edited.
- Slow down parsing of names
- everything has to be checked against the alias table first
Could be solved if the aliased name had to start or end with
some sort of 'flag' (don't like this, tho')
Could you alias an alias?
There should be a shadow list and the user version should require
'systemConfig' to be active.
chris :-)
Would it be posible to have any new strings some days before to be able
to launch Lingo translations at the same time, or even before?
When tidding finals touches strings will probably already decided.
Anyway this is a good example of where Jeremy's idea of Embedded Data (ED, as opposed to Extensible MetaData or EMD) would be useful -- Chris's idea of having a user-maintained table of macro aliases would be easy to implement when there's core code to support retrieving data from a table inside a tiddler.
(see this thread for more about ED and EMD: http://groups.google.com/group/TiddlyWikiDev/browse_thread/thread/b4fa2553ece95e09/
)
You can see the changes so far to Lingo.js here:
http://trac.tiddlywiki.org/tiddlywiki/log/Branches/2.1/core/js/Lingo.js
You can click through to inspect the individual changes. My general
policy with Lingo.js is only to add to it; I've purposefully never
refactored any of the names to make them more logical.
Soon, I'd like to bring together the various translations and host
them under tiddlywiki.org.
Cheers
Jeremy