W3C home > Mailing lists > Public > public-rif-wg@w3.org > May 2009

Re: binding patterns [was: Re: list builtins done]

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
Message-ID: <23876.1241699094@ubehebe>

> 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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:34:08 GMT