- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 07 May 2009 08:24:54 -0400
- To: Jos de Bruijn <debruijn@inf.unibz.it>
- cc: Gary Hallmark <gary.hallmark@oracle.com>, Chris Welty <cawelty@gmail.com>, public-rif-wg@w3.org
> Actually, I now have a doubt about the binding patterns with an unbound > variable for the predicates pred:string-equal, pred:date-equal, > pred:dateTime-equal, pred:duration-equal, pred:date-equal, > pred:time-equal, pred:XMLLiteral-equal, pred:matches-language-range, and > pred:text-equal. The problem is that in implementations you would need > to generate all things that are somehow equal according to the XSD > definition. For example, for dateTime, you need to generate all dateTime > values that represent the same point in time (e.g., by varying the > timezone). matches-language-range is probably even harder. > > There is no problem for the datatypes for which equality and identity > are the same (e.g., string). But only string equality (func:compare) when there's no 'collation' parameter. > However, for reasons of symmetry, I would > prefer to have the same binding patterns for all datatype equality > predicates. > > So, I propose to remove all binding patterns involving a "u" for the > predicates pred:string-equal, pred:date-equal, pred:dateTime-equal, > pred:duration-equal, pred:date-equal, pred:time-equal, > pred:XMLLiteral-equal, pred:matches-language-range, and pred:text-equal. +1 -- Sandro > > Best, Jos > > Gary Hallmark wrote: > > I think most PRD translators will have to detect builtins with unbound > > arguments and generate some "tricky" code because most PRD engines don't > > allow any unbound arguments to their builtins. I don't object because I > > think the few builtins that permit unbound args are quite useful. > > > > Jos de Bruijn wrote: > >> Action completed. The only additional binding pattern (besides the > >> trivial (b...b) patterns) that I thought should be defined was for > >> pred:list-contains (b,u). > >> > >> > >> Best, Jos > >> > >> Jos de Bruijn wrote: > >> > >>> I can do this. Please assign me an action. > >>> > >>> > >>> 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_L > ists > >>>>> > >>>>> > >>>>> [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 > > --------------ms020508070901050501050900 > 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 > KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wOTA1MDcxMDI1NTZaMCMGCSqGSIb3DQEJBDEW > BBQX7AuKpOUM4diT0hNmKsvfE7I0ZjBSBgkqhkiG9w0BCQ8xRTBDMAoGCCqGSIb3DQMHMA4G > CCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCB > hQYJKwYBBAGCNxAEMXgwdjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1 > bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElz > c3VpbmcgQ0ECEFQWJg3375t1YRYi6x5QpKcwgYcGCyqGSIb3DQEJEAILMXigdjBiMQswCQYD > VQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UE > AxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECEFQWJg3375t1YRYi6x5Q > pKcwDQYJKoZIhvcNAQEBBQAEggEAqvWFWYHYnmX+GSCPBllD+6nRp3g1Z9ND9MkQ2lYHPM50 > EiSRWxPSVd+lmljlMccfr7nGTcJBNEDDUy/CpywQ7CuWF6Q9EwWxXXUrw3XzjOHxnMtcrpyO > +gX4vVRDnvNbcXCo45ZIJAqZFeLiG3338mCoRoS3JdAquXl48ml9oIBEzVnIjJJ3pEPIkWEz > 6cKUIJgCtJBkAMM2fK7GZxo1mhCVUGiu9PTEbAB7gzo8kictF5iFIiPOPuAlz3FzW4hEbJ7X > gKZcYjksnf/wyD/88aEh1IvusRZqrpvnJvxdJfJULxvkb0dx8sXw9C2ECEperYmX3LVOKjZ7 > QGjFUJ4lHgAAAAAAAA== > --------------ms020508070901050501050900--
Received on Thursday, 7 May 2009 12:25:04 UTC