Hi Mat Sorry for the late reply.
On Sun, Mar 2, 2014 at 10:12 PM, Mat <[email protected]> wrote: > (Note: It may be that all my questions are answered in the tiddler > "TiddlerFilter Formal Grammar" but I do not yet understand how to read that > tiddler at all.) > I've added a note to the formal grammar tiddler for 5.0.9 making it clearer that the grammar documentation is just provided for people who are comfortable with the notation. > > Thus: > > *Filter* > > [tag[important]sort[title]] > Ok, looks fair. Does it make sense to refer to "tag" as a filter, but > "sort" rather as a "modifier" or is there another term, cause it's not a > filter, is it? > > *Explanation given at tiddlywiki.com <http://tiddlywiki.com>* > > All tiddlers with the tag important sorted by title > > Both `tag` and `sort` here are filter operators. > [tag[important]!sort[title]] > I get it, but it seems a bit contrieved that what really reads "not sort" > does a reverse sorting. What's the reasoning behind this? > > Do you mean that it should have been [sort![title]]? Or [sort[!title]]? The reason for not using the first alternative is that I through the prefix was clearer. The reason for not using the second alternative is that it would have restricted operands to not be able to start with an exclamation mark. > All tiddlers with the tag important reverse sorted by title[[one]] > [[two]] [[three]] +[tag[tom]] > Is a blank space interpreted as OR iff(!) the space resides between > operands? ... and a space followed by an expressed operator (the +) is just > a space? What's the general rule here? > > I've updated the filter documentation for 5.0.9 to try to explain the way that they are processed a bit better: https://github.com/Jermolene/TiddlyWiki5/commit/6a63a459686f441d8bcdbe29f894cf671e5177de > Alternatively, shouldn't there be some kind of surrounding brackets > around the three first operands? AND is normally not that powerful... but > maybe + is not a regular AND but a super-AND spreading onto everything? > > The filter syntax intentionally doesn't use brackets for grouping, as I don't think non-technical users can readily understand them. The tiddler I linked above attempts to explain the processing algorithm. > BTW, are regular brackets, i.e ( and ) allowed at all actually? > > Any of the tiddlers called one, two or three that exist and are tagged > with tom [[one]] [[two]] [[three]] [tag[tom]] > (no question) > Any of the tiddlers called one, two or three that exist, along with all > of the source tiddlers that are tagged with tom [tag[tom]] [tag[harry]] > -[[one][two][three]] > Now, suddenly there ARE brackets for the minus sign, hmm... > And there are no spaces between one, two, three. Does no space make logic > AND? Is outer brackets required for this? > Why does "tag" require outer brackets? Shouldn't tag[tom] be enough > (making the word tag holy). > > "tag" requires outer brackets because all filter operators require outer brackets. As explained above, we merge adjacent brackets to indicate an "AND". > All tiddlers tagged either tom or harry, but excluding one, two and three > [[MyTiddler]tags[]] > Is this a *special* command or could someone explain how this translates > into the explanation on the right. > Does tags[] mean "all existing tags"? > And does "written directly after and without space" (in this case > referring the position of "tags[]") generally mean that we're talking about > something concerning what is written before it (in this case [MyTiddler])? > Must it be an operator written after? > The [[MyTiddler]] part starts us off with a list of one entry, the title "MyTiddler". The "tags" operator then returns the tags that are applied to all the currently accumulated tiddlers, in this case just "MyTiddler". > > All tiddlers being used as tags on the tiddler MyTiddler > [[MyTiddler]tagging[]] > Isn't this the same as [tag[MyTiddler]] ? > If this means "All tiddlers being tagged with MyTiddler" then why does the > name "tagging" make more sense than the name "tagged". > > [tag[MyTiddler]] is a synonym for [[MyTiddler]tagging[]], in that both those expressions will return all the tiddlers that are tagged "MyTiddler". They are different though, in the way that they work on the accumulated list. the "tag" operator returns all the tiddlers in the list that have the specified tag. The "tagging" operator returns all the tiddlers that are tagged by any of the tiddlers in the list. Best wishes Jeremy > All tiddlers being tagged with MyTiddler > > Will be really grateful if someone answers. > > Now curious to see if the two column format holds up. Preparing for mess. > > <:-) > > -- > You received this message because you are subscribed to the Google Groups > "TiddlyWiki" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/tiddlywiki. > For more options, visit https://groups.google.com/groups/opt_out. > -- Jeremy Ruston mailto:[email protected] -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/tiddlywiki. For more options, visit https://groups.google.com/d/optout.

