- 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