Easily Editing and Browsing Complex OpenMath Markup with SWiM
1. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Easily Editing and Browsing Complex OpenMath
Markup with SWiM
Mathematical User Interfaces 2008
Christoph Lange, Alberto González Palomo
Jacobs University, Bremen, Germany
Universität des Saarlandes, Saarbrücken, Germany
KWARC – Knowledge Adaptation and Reasoning for Content
June 27, 2008
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 1
2. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
OpenMath Content Dictionaries
OpenMath: semantic markup language for math. formulæ and content
dictionaries (CDs)
CDs semi-formally define new mathematical symbols:
informal description
formal description in terms of other symbols
optional: type declaration, human-readable notation
Formula editors exist, . . .
. . . and ways to make CDs readable for humans
(www.openmath.org/cd/) . . .
but no proper editors for CDs
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 2
3. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Why create or edit CDs?
standard CDs exist; pick your favourite ones from
www.openmath.org/cd/
your favourite field of mathematics may not be covered (cf. geometry)
or you want to have it more rigorously
cf. James Davenport’s landau_in operator for f = O(n)
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 3
4. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Collaboration on CDs: The Good, the Bad, and the Ugly
writing, structuring; also browsing, collaborating
CDs reuse symbols from other CDs (link symbol occurrences to their
definitions)
use case: revising a notation of a symbol in a CD; one author revises,
the other one tests
The bad way: Notepad, send file to collaborator by e-mail
Manual transformation to XHTML+MathML, open
browser
The ugly way: Emacs with nxml-mode, commit into shared
Subversion repository
Update, run make, open browser (Michael Kohlhase’s
favorite )
The wiki way: interactive editing right in the browser ⇒ instant
feedback for both collaborators
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 4
5. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Debugging Notation Definitions
Consider the symbol times in arith1.ocd:
<OMA>
<OMS name="times" cd="arith1"/> Possible renderings:
<OMI>2</OMI> 2 · x , 2 × x , or 2x
<OMV name="x"/> (defined in arith1.ntn)
</OMA>
Typical workflow:
Change/fix/improve/enhance the notation definition (ND) for a
symbol
Check the appearance of a sample formula in a sample document
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 5
6. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
SWiM, a Semantic Wiki for Mathematics
SWiM: semantic wiki + OMDoc. Added OpenMath and MathML 3
notation definitions
mmlproc/JOMDoc renderer (→ MKM talk “notations for living
documents”)
editing, import, export (exchange with external repositories, legacy
editors)
Try it at http://swim.kwarc.info, see more in the demo session!
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 6
7. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
SWiM, a Semantic Wiki for Mathematics
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 7
8. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Knowledge Representation in OpenMath
CDs have metadata (e. g. review date) and contain symbol
definitions
Symbols have
name
informal, natural-language description (authoritative)
metadata
mathematical properties: informal (CMP), formal
(FMP), examples
FMPs and Examples contain mathematical formulæ
Separate dictionary files with
type signatures
notation definitions (in a few minutes)
for symbols.
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 8
9. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Knowledge Representation on the Semantic Web
Ontologies: smarter, extensible, web-scalable metadata vocabularies
RDF: graph with nodes and edges have types from ontologies, e. g.
<christoph> foaf:knows <paul>.
We have developed an ontology that models the structures of CDs
semantics given by OpenMath spec
more expressive than Relax NG XML schema
e. g. for dependent CDs (URIref vs. CD):
<CDUses>arith1 transc1</CDUses>
reused existing vocabularies where appropriate (→ OpenMath 3)
e. g. Dublin Core: om:Name→dc:identifier
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 9
10. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Knowledge Representation in SWiM
small pages are more suitable for wiki collaboration
page granularity: CD, symbol, CMP, FMP, example
split imported CDs into these parts, preserve
containment information by XInclude links, reassemble
on export
OpenMath 3: review units below CD granularity)
extract RDF graph from OpenMath for a more
networked, searchable, web-scalable representation
exploit links for navigation, soon for editing, too
represent formulæ shallowly (FMP/Example uses
symbol)
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 10
11. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Editing
SWiM uses the HTML WYSIWYG editor TinyMCE
Great potential for more user-friendliness, but first need to get the
basics running
Make any (OpenMath) XML element editable as a table, e. g.
<element xml:id="id" attr="value">...</element>:
element id attr=value
...
Not user-friendly for deeply nested structures
Dedicated editing support for special aspects of the markup
form-based metadata editor (e. g. CDName, CDDate)
differently arranged tables in some cases:
notation
prototype rendering
visual formula editor (next slides)
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 11
12. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
The Formula Editor
visual OpenMath formula editor from Sentido environment integrated
it into TinyMCE
encode formulæ as HTML <span/> elements, editable in a “linear”
ASCII/Unicode syntax
supporting own syntax, but also popular CAS syntaxes
pop-up window with linear input (undoable), OpenMath CD symbol
tool palette, 2D MathML preview
when done with editing, linear formula is parsed to OpenMath XML
Sorry, we cannot easily display MathML inside TinyMCE
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 12
13. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
The Formula Editor
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 13
14. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
The Formula Editor
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 14
15. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Defining Notations for Symbols
Notation definitions map patterns of semantic markup to fragments
of presentation markup, apply rules recursively (MathML 3 extension
→ MKM talk)
√
e. g. @(arith1#root, arg, n) n arg (actually written in XML)
link notation definition → symbol definition in RDF:
<url/of/NotDef> omo:rendersSymbol <url/of/arith1/root>
What if an author changes this?
1 identify the change: XML diff
2 identify documents affected by the change: query RDF graph for all
resources using the symbol in a formula – and for all resources that
xi:include the former
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 15
16. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Determining the Effect of Changing a Notation Definition
1 SELECT DISTINCT ?page WHERE {
2 <changed-ntn-def> omo:rendersSymbol ?sym .
3 { ?page omo:usesSymbol ?sym } UNION
4 { ?exOrFMP omo:usesSymbol ?sym .
5 { ?page omo:contains ?exOrFMP } UNION
6 { ?page omo:contains ?symDef .
7 ?symDef omo:contains ?exOrFMP } } }
fmp
fmp
fmp
renders- usesSymbol (3,4) contains (5,7)
Symbol (2) contains (6)
notDef sym symDef
symDef
symDef cd
cd
cd
usesSymbol (3,4)
contains (5,7)
ex
ex
ex
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 16
17. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Related Work
ProofWiki: wiki with Coq proof assistant integrated. Content either
A
completely formal or LTEX, SWiM aims at the full formality
scale between that (→ OMDoc)
OMPE: OpenMath Presentation Editor from ActiveMath, visual
editor for notation definitions (add this to our roadmap!).
No integrated authoring/browsing environment ⇒ no
immediate debugging
PlatΩ: TEXmacs with semantic markup. Parsing notations from
natural language (not a focus of SWiM), efficiently reacting
to notation changes.
Visual editors: two examples of extending HTMLArea (former TinyMCE
competitor) with Presentation MathML
ASciencePad: Tiddly“Wiki” plus a translation from linear
math syntax to Presentation MathML
WIRIS: 2D visual editor (Java applet)
OpenMath editor exists, but not integrated
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 17
18. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Future Work (OpenMath)
Cover full OpenMath object spec in linear syntax; particularly
CDBase!
Deploy SWiM as an editor for the OpenMath CDs on
www.openmath.org
Integrate upcoming OpenMath 3 extensions (in ontology and GUI)
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 18
19. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Future Work (Use Cases)
So far one notation per symbol. The mmlproc/JOMDoc renderer can
do more (e. g. user’s preferred notation)
Browsing CDs and SPARQL queries are nice, but formula search? –
Integrate MathWebSearch! (→ MKM demo)
Splitting CDs on import works, but users also want refactoring within
SWiM.
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 19
20. OpenMath CDs SWiM Knowledge Representation Editing Related Work Outlook/Conclusion
Conclusion
SWiM facilitates editing OpenMath CDs
. . . by integrating a visual formula editor
. . . by immediately re-rendering documents affected by notational
changes
How would you like to edit your CDs?
Lange/González Palomo (Jacobs/Saarland Univ.) Editing and Browsing OpenMath with SWiM June 27, 2008 20