Re: list builtins done

Too late :)
Anyway, if anyone doesn't like what I wrote, they can complain. I have
no problems throwing away binding patterns. :)


Best, Jos

Sandro Hawke wrote:
>> I can do this. Please assign me an action.
> 
> It seems to me like this needs WG discussion, or at least PRD input.
> 
> (The question here is how PRD systems iterate over items in a list.)
> 
>      -- Sandro
> 
>> Jos
>>
>> Chris Welty wrote:
>>> So who will take up the issue of binding patterns for lists in Core? 
>>> Axel? Jos?
>>>
>>> -Chris
>>>
>>> Sandro Hawke wrote:
>>>> 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_List
>> s
>>>> [2] http://dev.w3.org/cvsweb/2009/rif/list_builtins.py
>>>>
>>>>
>> -- 
>> +43 1 58801 18470        debruijn@inf.unibz.it
>>
>> Jos de Bruijn,        http://www.debruijn.net/
>> ----------------------------------------------
>> Many would be cowards if they had courage
>> enough.
>>   - Thomas Fuller
>>
>> --------------ms050400010200050207050103
>> Content-Type: application/x-pkcs7-signature; name="smime.p7s"
>> Content-Transfer-Encoding: base64
>> Content-Disposition: attachment; filename="smime.p7s"
>> Content-Description: S/MIME Cryptographic Signature
>>
>> MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJEzCC
>> AuQwggJNoAMCAQICEFQWJg3375t1YRYi6x5QpKcwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE
>> BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT
>> I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDEyODE5NTcxNVoX
>> DTEwMDEyODE5NTcxNVowRzEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEkMCIG
>> CSqGSIb3DQEJARYVZGVicnVpam5AaW5mLnVuaWJ6Lml0MIIBIjANBgkqhkiG9w0BAQEFAAOC
>> AQ8AMIIBCgKCAQEAsENUfWYEG8PFApSgNPgfPDmMihwtSHvsq1+yVeKKGel+k/nresDU343R
>> Nz4QCrLeIVhzjUoSUvpbIViBzPw5T+3i0SGmwAoKvYLlw/5Al8JBlKxipf6ZkXLwa9+3agZZ
>> /TzH6FLcJeoYak7ryUFtJOipYiI2ClPlx8porLrOmikAiPmAbxx0rq0Edq4cAxaMDk9lqni4
>> ZaQWgR00MX81+nq1FqIB3KavPeJaJjnB9njHhan64PxUzFKaRgg1d2u1Pi8NfDqElzua0tu+
>> xoXe/alvLVGtTjitRyCsYrTcTt+hZDCcAg65nwlcs1/oaFz/BP2dSYZAk4LEya4kFj+UqQID
>> AQABozIwMDAgBgNVHREEGTAXgRVkZWJydWlqbkBpbmYudW5pYnouaXQwDAYDVR0TAQH/BAIw
>> ADANBgkqhkiG9w0BAQUFAAOBgQBHGdK4P2l67dEm6SvMfklpDPPE5b0hClBw6XOO9XahEYmQ
>> oeq5jxeBp3EdZxbeZtSUjllvJi7wsOKhCqaipe44GzuW5QDziWiAGg3aMrtRBaJXIR9F6MED
>> IWSLksjq5SAEU7uX4HT/sAe6P2F0oe/QzItO/qgrh6NI4vGxw4yt2zCCAuQwggJNoAMCAQIC
>> EFQWJg3375t1YRYi6x5QpKcwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkExJTAjBgNV
>> BAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJz
>> b25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA5MDEyODE5NTcxNVoXDTEwMDEyODE5NTcx
>> NVowRzEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEkMCIGCSqGSIb3DQEJARYV
>> ZGVicnVpam5AaW5mLnVuaWJ6Lml0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
>> sENUfWYEG8PFApSgNPgfPDmMihwtSHvsq1+yVeKKGel+k/nresDU343RNz4QCrLeIVhzjUoS
>> UvpbIViBzPw5T+3i0SGmwAoKvYLlw/5Al8JBlKxipf6ZkXLwa9+3agZZ/TzH6FLcJeoYak7r
>> yUFtJOipYiI2ClPlx8porLrOmikAiPmAbxx0rq0Edq4cAxaMDk9lqni4ZaQWgR00MX81+nq1
>> FqIB3KavPeJaJjnB9njHhan64PxUzFKaRgg1d2u1Pi8NfDqElzua0tu+xoXe/alvLVGtTjit
>> RyCsYrTcTt+hZDCcAg65nwlcs1/oaFz/BP2dSYZAk4LEya4kFj+UqQIDAQABozIwMDAgBgNV
>> HREEGTAXgRVkZWJydWlqbkBpbmYudW5pYnouaXQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0B
>> AQUFAAOBgQBHGdK4P2l67dEm6SvMfklpDPPE5b0hClBw6XOO9XahEYmQoeq5jxeBp3EdZxbe
>> ZtSUjllvJi7wsOKhCqaipe44GzuW5QDziWiAGg3aMrtRBaJXIR9F6MEDIWSLksjq5SAEU7uX
>> 4HT/sAe6P2F0oe/QzItO/qgrh6NI4vGxw4yt2zCCAz8wggKooAMCAQICAQ0wDQYJKoZIhvcN
>> AQEFBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcT
>> CUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRp
>> ZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
>> cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNv
>> bTAeFw0wMzA3MTcwMDAwMDBaFw0xMzA3MTYyMzU5NTlaMGIxCzAJBgNVBAYTAlpBMSUwIwYD
>> VQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVy
>> c29uYWwgRnJlZW1haWwgSXNzdWluZyBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
>> xKY8VXNV+065yplaHmjAdQRwnd/p/6Me7L3N9VvyGna9fww6YfK/Uc4B1OVQCjDXAmNaLIkV
>> cI7dyfArhVqqP3FWy688Cwfn8R+RNiQqE88r1fOCdz0Dviv+uxg+B79AgAJk16emu59l0cUq
>> VIUPSAR/p7bRPGEEQB5kGXJgt/sCAwEAAaOBlDCBkTASBgNVHRMBAf8ECDAGAQH/AgEAMEMG
>> A1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQZXJzb25hbEZy
>> ZWVtYWlsQ0EuY3JsMAsGA1UdDwQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRUHJp
>> dmF0ZUxhYmVsMi0xMzgwDQYJKoZIhvcNAQEFBQADgYEASIzRUIPqCy7MDaNmrGcPf6+svsIX
>> oUOWlJ1/TCG4+DYfqi2fNi/A9BxQIJNwPP2t4WFiw9k6GX6EsZkbAMUaC4J0niVQlGLH2ydx
>> VyWN3amcOY6MIE9lX5Xa9/eH1sYITq726jTlEBpbNU1341YheILcIRk13iSx0x1G/11fZU8x
>> ggNkMIIDYAIBATB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGlu
>> ZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWlu
>> ZyBDQQIQVBYmDffvm3VhFiLrHlCkpzAJBgUrDgMCGgUAoIIBwzAYBgkqhkiG9w0BCQMxCwYJ
>> KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wOTA1MDYxNTA3MjlaMCMGCSqGSIb3DQEJBDEW
>> BBQBRftTn2tgyfhc3nfibgU/WpQ4hTBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMHMA4G
>> CCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCB
>> hQYJKwYBBAGCNxAEMXgwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1
>> bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElz
>> c3VpbmcgQ0ECEFQWJg3375t1YRYi6x5QpKcwgYcGCyqGSIb3DQEJEAILMXigdjBiMQswCQYD
>> VQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UE
>> AxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECEFQWJg3375t1YRYi6x5Q
>> pKcwDQYJKoZIhvcNAQEBBQAEggEAnmvO6IkRFatmFVM3yYdtghR3ENcr1NoxXwL7nU3w3M/C
>> wgKWlwi55e7OtJaL7QzmjrzJH+xk+NXRAEGlR7wnFl0QRhiQirInBzB6GCF+k/z5eEsd2dS3
>> OzVQ4dNinFAwfEXSITbK46Bf1P4LaJ1xZ9YSvTTZdJuoMRGkbgp01F8ZuKr84zPntePrXoiv
>> /fMprZ3qdsr/+Xs/x3dXhi9HB6hjF2wX9xTtQNsDhgwgTKMFGDhnJdUoQelGhNCpzKoCjUZR
>> 6Jarq5HBkAWC4OKqPZwEJcJIu8ufo3z6qZCY6E6VvvQ9XYlUp2GMQDbDhtsATZdFZUcbN5kR
>> c6WkCFCr2AAAAAAAAA==
>> --------------ms050400010200050207050103--
> 

-- 
+43 1 58801 18470        debruijn@inf.unibz.it

Jos de Bruijn,        http://www.debruijn.net/
----------------------------------------------
Many would be cowards if they had courage
enough.
  - Thomas Fuller

Received on Wednesday, 6 May 2009 15:49:22 UTC