-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OMV with complex presentations #3
Comments
migrated from Trac, where originally posted by kohlhase on 26-Oct-2007 6:07am I must say that after I have written up everything I still like proposal 3. best :). |
migrated from Trac, where originally posted by kohlhase on 26-Oct-2007 6:10am But of course proposal 3. is probably the largest change to OpenMath, since we would include notation definitions into the language of OM Objects. So, I do not know, maybe I am tending towards 1. then with OMR best practice then. |
migrated from Trac, where originally posted by kohlhase on 25-Feb-2011 12:33pm rescheduling. |
migrated from Trac, where originally posted by lars_h on 15-Mar-2011 6:06pm A newcomer's take on this: I don't see why we can't have (1), (2), and (3). To elaborate, when I wrote an OM->LaTeX converter (the code of which can be seen here if anyone feels an uncontrollable urge to RTFS), I designed it as a multistage process, in which an OMOBJ is gradually converted to LaTeX code. In the main step, we're basically at (1): things should have an altenc#LaTeX_encoding attribution unless the wanted presentation is literally the name. Before that, various preprocessing steps have however been around to massage the OMOBJ into something more presentation-like (inserting where needed and migrating minuses to their usual positions as two notable activities). One of these steps is to attach OMATTRs controlling the presentation of OMSes (even standard ones like arith1#plus), and it's a trivial extension to do the same to OMVs, which would give us the functionality of (2), while also taking care of the "infinitely many variables" problem. Having the OMV-attributor record and give prescendence to attributions available already in the input would then provide (3). Finally, since the linked-to discussion speaks about putting content in OMV elements, I have to say that I find it quite useful that many OM elements are specified to be empty: this makes the bodies of those elements a convenient place for early conversion stages to stash partial conversions of said elements, ;-) so I wouldn't like it if something else suddenly turned up there. OTOH, that part of the discussion might rather have been about the MathML counterparts of OMVs. |
moved to OpenMath/OMSTD#31 |
migrated from Trac, where originally posted by kohlhase on 26-Oct-2007 6:06am
We have to get a final view on how we want to handle variables with complex presentations e.g. x_1. There was a discussion on the mailing list on this topic, in the thread starting at http://openmath.org/pipermail/om3/2007-July/000028.html. Many of the issues are resolved now: for OMS, the new notation definitions do most of the work.
For OMV, the problem somewhat remains; there are essentially four possibilities:
The advantage of 1. is that we have to change nothing, the disadvantage is that we either have to attribute every occurrence of a bound variable (or that is what I understand) or we have to use sharing via an OMR element. Which makes it harder to see that we are actually dealing with a variable.
If I understand 2. correctly, notation definitions for variables are generic and global, they would associate a variable of name gothicA with a presentation MathML rendering via a notation definition.
This is very elegant in theory, but I see a problem where to keep the notation definitions. Is there a "presentation dictionary" mechanism needed? Another problem is that the set of variables names is infinite (think x_1, x_2,...). Another advantage (shared by proposal 3.) is that we can have nice presentations of function variables (see the example in section 19.4 of the OMDoc book http://omdoc.org/pubs/omdoc1.2.pdf).
Propoal 3. is similar in spirit to 2., but it keeps the notation definition locally in the
<bvar>
element via an attribution, something likeThis gets around the referencing and infinity problems in proposal 2., but is still relatively heavy in representational overhead. Of course that could be fixed by giving OMBIND (or actually OMBVAR) a place to store notation definitions, as in
Finally 4. is probably the most radical (as it changes the concept of OM objects). It solves the sharing problem by simply stating that all bound (and binding) occurrences of the variables are identical.
The text was updated successfully, but these errors were encountered: