On Apr 29, 12:46 pm, Jeremy Ruston <[email protected]> wrote: > I'd also given thought to the difference between selection and > filtering. My simplistic way of fitting them together was to invent > the idea of a implicit selector at the start of a filter list. Thus, a > construction like "[tag[blog]sort[modified]limit[10]]" would be > treated as "[select[*]tag[blog]sort[modified]limit[10]]".
Yeah, that's perniciously hard to reliably parse for both a person (at least this) and a computer, and it couples into the same engine three very different pieces of functionality. That coupling is what you might call anathema to the TiddlyWebWay™. As things currently stand filters in TiddlyWeb are though of as a single query parameter on a URL (?filter=<the filter string>). Better I think would be (at least) three: * select or filter for things like <fieldname>:<fieldspec (include simple regular expressions)> * sort * limit or count (can't decide if this would be just a number of would have some kind of spec to) Then you can parse the query string, and have specific bits of code that select, sort or limit do what they do best, rather than a monolith that is confusing. Set handling could be done as follows (I'm making this up as I go, so please suggest something else if this seems wack): * Unions: use multiple select query paramters, each parameter does another select on the full set of tiddlers are the collection being filtered/selected from: eg select=tag:blog&select=tag:coment gets all tiddlers tagged blog plus all tiddlers tagged comment. * Intersections: multiple selection statements in one select paramter: select=tag:blog%20tag:comment gets only those tiddlers that are tagged both tag and comment. (One reason I like this idea is that I find it easy to imagine the solution: it is still based on generating functions from parsing the query string: tag:blog leads to a particular function, whether it is doing an intersection or union is based on which set of tiddlers are fed to it.) Obviously someone can come up with some case that this syntax will not satisfy but we can do that all day and night, with any syntax. No syntax will be perfect. Sometimes you just have to say, "you can't do that with this, you'll need to do your own thing." Some of the shortcomings in this syntax can be overcome by having the same bag listed in one recipe multiple times and filtering the output of the entire recipe (this is already the common way to create a recent changes syndication feed). Comments? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/TiddlyWikiDev?hl=en -~----------~----~----~----~------~----~------~--~---
