wiki.openmath.org - how it works, how you can participate

Christoph Lange

Journal Article: 03/2010; DOI: abs/1003.5192

Abstract

At http://wiki.openmath.org, the OpenMath 2 and 3 Content Dictionaries are accessible via a semantic wiki interface, powered by the SWiM system. We shortly introduce the inner workings of the system, then describe how to use it, and conclude with first experiences gained from OpenMath society members working with the system and an outlook to further development plans. Comment: OpenMath workshop 2009 (http://staff.bath.ac.uk/masjhd/OM2009.html)

Source: arXiv

Comments on this publication

ResearchGate members can add comments. Sign up now and post your comment!

Page 1
 
Page 2
 
Page 3
 
Page 4
 
Page 5
 
End of preview.
Page 1
wiki.openmath.org – how it works, how you can
participate
Christoph Lange
Computer Science, Jacobs University Bremen, ch.lange@jacobs-university.de
Abstract. At http://wiki.openmath.org, the OpenMath 2 and 3
Content Dictionaries are accessible via a semantic wiki interface, powered
by the SWiM system. We shortly introduce the inner workings of the
system, then describe how to use it, and conclude with first experiences
gained from OpenMath society members working with the system and
an outlook to further development plans.
1 Introduction: The OpenMath Content Dictionaries
OpenMath [17] is a semantic markup language (“content markup language”) for
mathematical formulæ that originated as a shared knowledge representation
for applications in computer algebra and automated theorem proving in the
mid-1990s and got further applied in areas as diverse as e-learning, scientific
publishing, and interactive geometry. OpenMath defines an abstract data model
for representing mathematical objects and two concrete syntaxes for it, a binary
and a more common XML one. Important building blocks of mathematical objects
are numbers, variables, symbols, and applications of mathematical objects to
other mathematical objects. Any concrete operator, constant, set, or function
can be a symbol. In contrast to, e. g., earlier versions of MathML, the symbol
supply of OpenMath is constantly increasing due to its extensibility by so-called
content dictionaries (CDs).
<CDDefinition>
<Name>plus</Name>
<Role>application</Role>
<Description>The symbol representing an n-ary commutative
function plus.</Description>
<CMP>for all a,b | a + b = b + a </CMP>
<FMP>β(quant1#forall, a, b,
@(relation1#eq,@(arith1#plus, a, b),@(arith1#plus, b, a)))</FMP>
</CDDefinition>
Fig. 1. Definition of the arith1#plus symbol
A CD is a collection of (usually closely related) mathematical symbols, each
with a name and a mandatory informal description (cf. fig. 1). Further information
ar
X
iv
:1
00
3.
51
92
v1
[
cs
.D
L]
2
6 M
ar
20
10
Page 2
about symbols is optional but recommended to have: mathematical properties
of the symbol, both in a formal (FMP) and an informal (“commented”, CMP)
flavour, and examples of applying the symbol. The language for expressing this
information is part of the OpenMath standard. Besides the proper CD file (named
e. g. number-theory.ocd), there can be additional files: OpenMath does not
commit to a particular type system, so it allows for types of symbols to be
specified in separate files parallel to the CD, one per type system. The most
common type system in the OpenMath community is, however, Davenport’s
Small Type System (STS [3]); types in that system would be given in a file named
number-theory.sts.
Furthermore, there is no doubt that notations must be specified for symbols
in some way, if OpenMath objects should ever be presented to a human reader,
but opinions diverge on whether this should be done in CD-like files or not. David
Carlisle and others believe that directly writing XSLT (one file per CD, one
template per symbol) does a good job in transforming OpenMath to Presentation
MathML. The advantage of XSLT is its expressive power (it’s Turing-complete!),
which comes at the expense of human comprehensibility, though. Paul Libbrecht
and Michael Kohlhase (of whose “camp” the author is a member) thus prefer
CD-like dictionaries of XML-based notation definitions in a more compact syntax.
They believe that, given a sufficient support for pattern matching or declarative
symbol 7→notation mappings, most, if not all aspects of mathematical notation
can be handled, and authored much more intuitively. Libbrecht et al. generate
XSLTs from notation definitions that use pattern matching, whereas Kohlhase et
al. have implemented a dedicated renderer (actually two ones, which are being
merged) that directly renders mathematical objects using either declarative or
pattern-based notation definitions [8,7,9].
2 Authoring and Reviewing OpenMath CDs
While everybody is free do define his own CDs for his purposes, the OpenMath
Society maintain a collection of official CDs [5] that have undergone a review
process. Still, the content of an official CD is not fixed: It might still contain
mistakes that have slipped through the review, or there might be ways to improve
the informal descriptions of symbols, or relevant mathematical properties and
examples to add.
As said in the introduction, one CD is essentially a file – containing several
metadata fields on top, and then one CDDefinition block per symbol. The official
CDs are maintained in a Subversion repository at https://svn.openmath.
org. Developers participating in their maintenance check out a working copy of
that repository, edit the CD files locally with a text or XML editor, and then
commit their changes. RIACA have developed a Java-based CD editor [20], the
only CD editor besides ours that we are aware of. The RIACA CD editor, however,
rather focuses on generating Java code for programs dealing with OpenMath
objects from CDs than on CD maintenance, and its development seems to have
been discontinued for at least three years.
Page 3
Issues with the CDs are usually being discussed on the OpenMath mailing list
(om@openmath.org) in case of fixing bugs in existing CDs, or on the OpenMath
3 mailing list (om3@openmath.org) in case of the overhaul of the CDs and
alignment with the Content MathML specification for the upcoming OpenMath
3 [4]. As an alternative for OpenMath 3, there is an installation of the Trac issue
tracking system (cf. [24]) at https://trac.mathweb.org/OM3.
For presenting a CD to human readers, the elements of the OpenMath CD
language are usually transformed to the desired output format (most commonly
XHTML) using XSLT, and the OpenMath objects occurring inside the FMPs
and examples are rendered as described in section 1. This presentation process is
usually controlled by makefiles.
2.1 Three CD Editing Use Cases
In the remainder of this paper, I will focus on supporting three common use
cases. First, the traditional way of handling these cases will be presented, to pave
the way for showing how they are handled in the OpenMath wiki.
Minor Edits: Fixing minor mistakes does not change the semantics of a symbol.
Consider correcting a spelling mistake in a description, or renaming a bound
variable in a mathematical object that does not occur as a free variable in a
subexpression. Supported by a text or XML editor only, which is not aware of
the particular features of OpenMath CDs, such a fix would be done as follows
(assuming that the mistake is in a CD from openmath.org):
1. Update the working copy of the OpenMath CDs
2. Open the CD file in question
3. Navigate to the Description child of the symbol in question
4. Fix the mistake
5. Commit the file (and, ideally: commit that file only, and give a meaningful
log message that exactly refers to the symbol where the mistake was fixed)
Discussing and Implementing Revisions: Major revisions that change the
semantics of a symbol have to be discussed among the developers before im-
plementing them. Usually, the discussion starts with pointing out a problem
(e. g. an FMP for a concrete symbol is wrong or misleading). Let us assume
that the developer who identified the problem does not know how to solve it.
Then, he would have to make others aware of the problem, e. g. by an e-mail to
the OpenMath mailing list. Pasting a link to the Subversion URL of the CD in
question into that e-mail helps others to inspect the problematic part1. Other
developers would then reply to this e-mail and propose solutions, and again by
replying to their mails, the solutions would be discussed, until the community
agrees on one to be implemented.
1 Trac features a more immediate and comprehensive integration of a trouble ticket
system with a Subversion repository, but that is not currently possible for OpenMath,
as the Trac and the Subversion repository are running on different servers.
Page 4
Editing and Verifying Notations: Suppose that an example or FMP for a
symbol σ in one CD uses a symbol τ from another CD and that the notation
defined for τ is wrong. Concretly, imagine σ being the cumulative distribution
function of the normal distribution, τ the integral symbol occurring in the
definition of σ, and then imagine that the formatting of its lower and upper
bounds is wrong. Here is how an author would fix this:
1. Identify the formal symbol name and CD of τ
2. Navigate to the file where the notation of τ is defined
3. Try to fix the notation definition
4. Regenerate the human-readable presentation of the CD defining τ (and,
ideally: regenerate all CD presentations where τ occurs)
5. Open the regenerated presentation and check if it is correct (if not, back to 2)
6. Commit the file containing the notation definition, giving a meaningful log
message
3 The OpenMath Wiki
From the previous use case descriptions it evident that a better tool support is
needed to aid maintenance of the OpenMath CDs. SWiM is a wiki – a system
for collaboration on knowledge collections on the web –, a semantic wiki for
mathematics in particular [12]. It aims at offering intelligent collaboration services
to authors of mathematical documents in semantic markup languages – such
as OpenMath CDs. SWiM’s notion of “semantics” is restricted to decidable
structural aspects of documents and CDs; it does not capture the full semantics
of OpenMath objects. Having presented first ideas at the OpenMath workshop in
January 2008 [10], the author decided to further pursue supporting the OpenMath
CD review as a case study for SWiM and set up an instance of the system at
http://wiki.openmath.org in September 2008. Figure 2 shows a CD in
the browsing view of SWiM. In the remainder of this section, it will be discussed
how SWiM supports the use cases introduced in section 2.1.
3.1 Minor Edits
We have identified three different types of knowledge in OpenMath CDs: the
structural outline of a CD (e. g. defining what symbols a CD defines), metadata
(of such structural units, e. g. their informal descriptions or the date of revision),
and OpenMath objects (inside FMPs and examples). For each of them, SWiM
offers a dedicated editor (see [14]) for details.
It was a requirement for SWiM to allow for revisions in a context as local
as possible – i. e. committing a “fixed description” to the CD repository instead
of committing a “new revision of a CD with ‘something’ changed”. SWiM acts
as a browser and editor on top of the OpenMath Subversion repository but
adopts a finer granularity. For a CD, there is not one lengthy wiki page, but, on
every request of the CD from the Subversion repository, it is split into smaller
Page 5
Fig. 2. An OpenMath CD in SWiM. Notice the navigation links on the right
side.
End of preview.
Preview full-text

Science & Research Jobs

Keywords

3 Content Dictionaries
 
development plans
 
OpenMath 2
 
OpenMath society members
 
OpenMath workshop 2009
 
semantic wiki interface
 
SWiM system