Here's an excerpt from an IRC session earlier today:
(11:35:47 AM) Jimse: For IdAS filters, I'd like to specify a string format people can use, and then build a parser which will produce the proper IFilter from any string-filter (11:36:00 AM) Jimse: I prefer to use prefix notation rather than postfix notation (11:36:14 AM) Duane: Yes Please. (11:36:18 AM) tdoman: sounds good to me (11:36:19 AM) Jimse: at least for the logical operators (11:37:31 AM) Jimse: prefix for logical only "||(color=blue)(color=violet)" (11:38:27 AM) Jimse: prefix for logical and comparators: "||(=,color,blue)(=,color,violet)" (11:38:56 AM) Jimse: infix for both: "(color=blue)||(color=violet)" (11:39:26 AM) Jimse: prefix for logical let's me do this: "||(color=blue)(color=violet)(color=purple)" (11:39:41 AM) tdoman: if we're going to do comparators that way, we might as well start a string rep.; (11:39:51 AM) tdoman: (color,violet,equal) (11:40:03 AM) Jimse: sure, these are just examples (11:40:12 AM) Jimse: in reality, the identifiers would be URIs (11:40:27 AM) Jimse: comparitors would be too (11:40:33 AM) tdoman: in the string representation? (11:40:36 AM) tdoman: yuck! (11:40:41 AM) Jimse: with maybe a couple shortcut comparators (11:41:03 AM) Jimse: but... I also want to do a sprintf-style string rep (11:41:09 AM) Duane: please || makes more sense than urn:higgins:idas:comparators:or (11:42:35 AM) Jimse: "||(color,%a,%c)(color,%a,%c)", <assertion1>, <eq_comparator>, <assertion2>, <eq_comparator> (11:43:46 AM) Jimse: I think we'd only need: %a for assertions, %c for comparators, %a for attribute identifiers (11:44:02 AM) Jimse: I suppose we could do %l for logical operators |