- From: <stan.devitt@agfa.com>
- Date: Fri, 9 Dec 2005 04:59:51 -0500
- To: bparsia@isr.umd.edu
- Cc: Enrico Franconi <franconi@inf.unibz.it>, public-rif-wg@w3.org, public-rif-wg-request@w3.org, Uli Sattler <Ulrike.Sattler@manchester.ac.uk>
A similar issue to the one described below surfaced early on in MathML. The detailed evaluation semantics (in general, and as implemented by various computer algebra systems) differed greatly. Default domains and domain extensions differed for various "standard" mathematical functions and even basics like numerical arithmetic differed between systems. For some consumers, the differences mattered - for others (like editors) they did not. Only the author could say for sure which definitions they were using if the details of those definitions became important. The common thread, however was that nearly all mistakes in the mathematical information exchange between systems had the following in common. The consumer made invalid assumptions about the mathematical semantics of an object. Yet, only the producer (author) could know for sure what definition they were using and when the details were important. So, we identified three key goals. 1. Provide a limite standard vocabulary (including definitions) to facilitate and encourage simple exchange. 2. Provide a mechanism for the author to explicitly identify what definition they were using (to be used as necessary) vocabulary in a significant way. This could be used by authors to "warn" consumers. 3. Provide an extension mechanism for both vocabulary and definitions - primarily so that we could actually agree on the contents of the list in 1. Ultimately we settled on the following approach. 1. There is a set of standard functions, e.g. <sin/>, <cos/> that one might expect in a basic mathematical system. (for convenience and for usability so that the common mathematical expressions were easily recognizable) and which have default definitions. The only way we could finalize this list was by providing an extension mechanism (see 4 below). In future, heavily used extensions might migrate to this list. 2. Each function has an optional "definitionURL", which is really a URI used to identify a specific variant. If the definitionURL is absent then the definition is the default definition (as outlined in the recommendation). However, the author can always flag their definition as different. by assigning a value to this attribute. 3. We made a formal distinction between a function, and the result of applying it to a set of arguments -- that is, between f and f(x). For example, the "function" sin lies in a domain of functions, while sin(x) represents (say) a real number. To facilitate this distinction, we provided an "apply" operator that could be used to apply any function to its arguments. 4. We provided a generic function element which used its definitionURL attribute to "name" its definition. This scheme has worked very well. We have had some feedback that a formal system needs to go beyond just naming definitions (all that is really possible with an attribute) to inclusion of a definition object, but at the time (and even now, we are a long way from a conscensus of what that definition language aught to look like). --- All the above is somewhat historical. The really big issues to get us to something useful were: 1. a basic vocabulary. 2. a definition "naming mechanism". 3. an extension mechanism. Stan Devitt 4. We provided a generic function element which used its required definitionURL attribute to name its definition. public-rif-wg-request@w3.org wrote on 12/08/2005 06:38:13 PM: > > On Dec 8, 2005, at 3:27 PM, Uli Sattler wrote: > > > On 8 Dec 2005, at 14:49, Enrico Franconi wrote: > >> > > > > [snipp] > > > >> While I believe, like you, that tehre may be the necessity of > >> different behaviours of reasoners, this can only be justified by the > >> existence of different semantics for the same rule constructs. > >> > > > > Do you mean that, for such a case, we should provide 2 different > > syntactic constructs to make this difference explicit? For example > > "implies1" for horn rules without contraposition and "implies2" for > > horn rules with contraposition? > > Or you could have a flag for the whole document which one could > override at one's own risk. > > Cheers, > Bijan. > >
Received on Friday, 9 December 2005 10:14:09 UTC