- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Mon, 10 Dec 2007 16:01:01 +0100
- To: axel@platon.escet.urjc.es
- CC: public-rif-wg@w3.org
- Message-ID: <475D54AD.9040202@inf.unibz.it>
axel@platon.escet.urjc.es wrote: >>> a summary of options I added in the end of the built-ins wiki page: >>> >>> http://www.w3.org/2005/rules/wg/wiki/List_of_BLD_built-ins >>> >>> Please check the new Section >>> "Syntactic Representation of built-ins in RIF" >>> on that page. >>> >>> 3 options are discussed and pros and cons listed, examples in >>> representation syntax and XML syntax given, as far as possible: >>> >>> a. No special representation: IRIs are sufficient to identify built-ins >> The proposal mentioned on the page of not allowing the use of IRIs for >> the representation of logical functions seems to me an absolute choose >> one. We are creating a language for exchange *over the Web*; so, the >> use of IRIs will presumably be a lot more prevalent than the use of >> local symbols. In fact, a lot of people (including me) have indicated >> that they do not need local symbols at all. >> >> Furthermore, we might want to allow people to use built-ins which are >> not defined by RIF, without requiring them to specify another RIF dialect. >> If we decide to allow that, then it is clearly necessary to distinguish >> built-in predicates from other predicates, to indicate that people >> really need to understand the built in before they can evaluate it. >> >> In general, adopting this option would violate the following resolution >> of F2F8: >> "RESOLVED: no invisible extensions (official or user extensions)" >> >>> b. Modules >> I would argue against this option for three reasons: >> - it puts an additional burden on the user; he has to specify a module >> whenever he wants to specify a built-in >> - I expect that putting modules on the critical path for phase 1 will >> introduce a significantly delay >> - I see no benefit in the use of modules for built-ins; it merely seems >> to impede the flexibility >> >>> c. Special syntax to distinguish evaluated predicates from logical >>> predicates >> I did not really understand the proposal. There is a production for >> ExtTerm, but it is not clear how this fits in the overall syntax. I >> assume that the atomic and term productions are meant to be changed as >> follows: >> >> ATOMIC ::= Uniterm | Equal | ExtTerm >> TERM ::= Const | Var | Uniterm | ExtTerm > > yes, the latter only if we allow also built-in/evaluated *functions* and > not only predicates. > >> This seems to me the most elegant and flexible solution, which puts the >> least burden on the user. >> >> One small comment: I do not find the "&"-prefix solution very elegant. >> It suggests that "&" is a part of the name, > > this was meant purely to make them syntactically distinguishable. & is not > allowed in names. if local constants allow only ncnames (which I assumed) > any other special symbol would also be fine for me. > > >> or a modifier of the name, >> where as it is meant as a modifier of the complete term. I would rather >> propose: >> >> ExtTerm ::= ' BuiltIn( ' Uniterm ' ) ' > > How is that distinguishable from a local function term? A local function term looks like: localConst^^rif:local(...) A built-in (in my proposal) looks like: BuiltIn(myConst^^mySymbolSpace(...)) To meet they look quite distinct. > If it would work, > 'Eval' would equally make more sense to me (... isn't something like Eval > used in Lisp? Sorry to have to ask, I only remember vaguely...) I don't really mind about the keyword itself. However, "Eval" seems to apply only to functions, and not other kinds of built-in operators (such as comparison). Best, Jos > > >> so that it is clear that the modifier applies to the complete term. >> >> Best, Jos >> >>> comments welcome, >>> Axel >>> >> -- >> Jos de Bruijn debruijn@inf.unibz.it >> +390471016224 http://www.debruijn.net/ >> ---------------------------------------------- >> If you live to be one hundred, you've got it >> made. Very few people die past that age. >> - George Burns >> > > -- Jos de Bruijn debruijn@inf.unibz.it +390471016224 http://www.debruijn.net/ ---------------------------------------------- If you live to be one hundred, you've got it made. Very few people die past that age. - George Burns
Received on Monday, 10 December 2007 15:01:17 UTC