- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 05 May 2009 16:41:54 -0400
- To: public-rif-wg@w3.org
I think the DTB section on RIF lists [1] is now ready for review for Last Call. A few notes and questions: * I removed the func:delete function, because (a) it's not in xpath, (b) it's confusingly similar to func:remove, and (c) it's trivial emulated: func:delete(L, I) = func:except(L, func:make-list(I)) Some other functions are trivial emulated, but they're in xpath. I think the bar is higher for us adding functions. This way, the only ones we're adding are is-list, list-contains, make-list, and get. list-contains is that only the can be emulated: list-contains(L, I) iff count(index-of(L, I)) > 0 but I think we specifically discussed that and agreed it was worthwhile to have list-contains. Obviously, if someone actually wants it, I'm okay with putting func:delete back in. * This section has examples. I could trivially suppress them for now (this wiki-text is generated by a program [2]), if they bother people. I like them. They have all been checked by my demo code [3]. I'm willing to make similar examples for the rest of DTB for a later edition. * I don't know the right binding pattern for list-contains. Above, I was assuming it was (b,b), but I can imagine some utility to all binding patterns, and at least (b,u) seems pretty reasonable. It's not clear to me whether PR systems would do what I'm imagining with that, but it'd be nice to write rules like: forall M ( if list-contains(eg:list_of_friends, M) then eg:is_friend(M) ) Without it, I guess you'd need some much more cumbersome tail-recursive rules like this: friend_list(eg:list_of_friends) forall L M ( if friend_list(L) and get(L, 0) = M then eg:is_friend(M) ) forall L ( if friend_list(L) and count(L) > 0 then friend_list(sublist(L, 1)) ) PR folks, what do you want, there? I think that it. This complete ACTION-760. -- Sandro [1] http://www.w3.org/2005/rules/wiki/DTB#Functions_and_Predicates_on_RIF_Lists [2] http://dev.w3.org/cvsweb/2009/rif/list_builtins.py
Received on Tuesday, 5 May 2009 20:42:04 UTC