Re: (ISSUE-40) Builtins and logic functions in BLD

Thanks Paula,

There is really no issue semantically and the order of the builtins does
not matter for BLD. PRD might be a different matter, but PRD is not my
department, and it is still not in a shape when it makes sense to spend
time discussing builtins.

There is pragmatic issue for BLD, which boils down to the need to specify
binding patterns (or modes) for invocation of builtins.  If a builtin is
invoked by not binding the right arguments, semantically this means that
the corresponding relation is infinite. But pragmatically the application
should possibly return an error.

We could incorporate errors into the semantics, but I think it would be an
unnecessary complication. Perhaps we should see what OWL people say on that
matter.

Another problem is whether we should allow builtins to be represented as
functions and not just predicates. Again, there is no problem with this in
principle, but it complicates the model theory and I think we should not do
that --- at least not in Phase 1.  It is easy, however, to define builtin
functions as syntactic sugar (i.e., by translating them into predicates).

We discussed these issues on the mailing list -- primarily with Axel -- and
I think he agreed. The only unresolved issue is whether there should be
special syntax for calling builtins.

Some people wanted a special syntax, like {foobar(123)} (or whatever).
This has an advantage of simplicity, but some people did not like it
because it looks ugly. Another problem is that {foobar(123)} and
foobar(123) would then mean different things, and this is not nice.

I made a proposal that we should treat builtins using the same mechanism as
modules. For instance, if a builtin is defined in the XQuery/XPath library
then we would refer to it as

    fn:dateTime(...)@http://www.w3.org/2005/xpath-functions

where fn is a prefix for http://www.w3.org/2005/xpath-functions

Since all external predicates must be told where they are defined (in which
module, KB), builtins would be just one kind of the externals.

But the module mechanism has not been defined. There is no technical
problem here, however. Just a matter of time.


	cheers
	  --michael  


> Hi Michael,
> 
> during the telecon this week I took the action to contact you for
> addressing ISSUE-40 [1] on Builtins and logic functions in BLD.
> Since this issue is a CP one and I did start the list of functions and
> operators [2] to be considered for BLD, I would be happy to help
> you towards a proposal for resolving this issue.
> 
> I've read through the minutes of the last F2F and noticed that there
> were some discussions on built-ins (such as open list of built-ins
> vs. fixed, special syntax to identify built-ins or not), but I didn't find
> information on decisions regarding these issues. Since I couldn't attend
> the F2F I don't know how to best address the issue of built-ins for BLD.
> Should we start by choosing from [2] the built-ins to be supported by BLD?
> 
> Please let me know how we should approach ISSUE-40. We can talked
> about it over phone if you think it is easier to discuss this than per 
> email.
> 
> Best regards,
> Paula
> 
> [1] http://www.w3.org/2005/rules/wg/track/issues/40
> [2] http://www.w3.org/2005/rules/wg/wiki/List_of_functions_and_operators
> 

Received on Thursday, 15 November 2007 23:18:38 UTC