Authoring Presentation Semantics for Mathematical Documents for the Web

Size: px
Start display at page:

Download "Authoring Presentation Semantics for Mathematical Documents for the Web"

Transcription

1 Authoring Presentation Semantics for Mathematical Documents for the Web Master Thesis in Computer Science Computer Science Department University of Saarland Shahid Manzoor Supervisor: Privatdozentin Dr. Erica Melis DFKI & Universität des Saarlandes Saarbrücken, Germany

2

3 I confirm under oath that I have written the Thesis on my own and that I have not used any other media than the ones mentioned in the Thesis. Shahid Manzoor Saarbrücken, 02/03/2005

4

5 Abstract In this thesis, we explore authoring the presentation for the XML based mathematical documents encoded in OMDoc [14]. OMDoc classifies the contents in a document into elements such as definition, example and theorem. Each element contains mathematical text which includes the formatted-text and OpenMath to represent mathematical expressions etc. OpenMath is a language that assigns meaning to the mathematical expressions such as variable, symbols and integer etc. XSLT templates are used to generate presentation of the OMDoc documents into various presentation formats, e.g. HTML, L A TEX, etc. The authors face problems while writing the presentations in XSLT for new mathematical symbols and formatting styles. We have built an XML structure to encode the presentation of the mathematical text and OpenMath expressions, which is then transformed into XSLT templates of the presentation formats. The presentation authoring is classified into notation and annotations: the former represents the notation of the symbol in the mathematical expression, while the latter deals with the annotation of the OpenMath objects and the mathematical text, e.g. styles. We have also provided an authoring support in the OMDoc authoring tool, i.e. jeditoqmath. Hence, the authors are able to write presentation, and edit their mathematical documents within the same environment. Our work is a contribution to the research carried in the ActiveMath [17] (a Web-based learning environment for mathematics) in providing authoring support to the authors. i

6 ii ABSTRACT

7 Acknowledgment I am grateful to PD Dr. Erica Melis (Leader of the ActiveMath Group) for accepting me as a master student under her supervision and providing me the opportunity to carry out this research work in the ActiveMath Group at the DFKI and the Saarland University, Saarbrücken, Germany. I am indebted to Carsten Ullrich for his supervision, and especially with regard to reviewing this text. Thanks to Paul Libbrecht for his advice on technical issues. I thank all my colleagues in the ActiveMath group for providing me a family environment, in particular to George Goguadze for discussions on the OpenMath semantics, and to Edgar Kessler for providing me with useful examples in the problem domain. Thanks to Shah Jamal Alam for his moral support. Last but not the least, I acknowledge my family for their continuous support during my studies. In spite of the distance they were an incessant source of encouragement. My gratitude for Abbu, Ammi, Syed Kashif Bilal, Dr. Syed Faisal Akram and Syed Afraz Haider is beyond words. iii

8 iv ACKNOWLEDGMENT

9 Contents Abstract Acknowledgment i iii 1 Introduction Problem Introduction Contribution Outline of the thesis Background Presentation-Markup languages for Document Publishing L A TEX Hyper Text Markup Language(HTML) extensible Markup Language (XML) XML Path Language (XPATH) extensible Stylesheet Language Transformations (XSLT) extensible Hyper Text Markup Language(XHTML) Document Object Model (DOM) Markup for Mathematical Documents OpenMath Transformation of OpenMath with XSLT Mathematical Markup Language (MathML) Open Mathematical Document (OMDoc) ActiveMath: A Web-Based Learning Environment System Description v

10 vi CONTENTS 3 Related Work Presentation Module in OMDoc Math Web-based Publishing in Applets Defining Presentation semantics for mathematical documents Overview Comparing MathML with LateX and HTML OpenMath Symbols Notation Language (OSNL) OSNL Semantics Presentation Content Dictionary for OpenMath Objects Overview OpenMath attribution Object Presentation Attributes Stylesheet Semantics Annotating the Mathmatical Text with styles Implementation Attribution Authoring in OpenMath Translating Symbols Notation Language into XSLT OSNL Visual Editor StyleSheet Realization Authoring Cycle The Authoring Environment The OSNL Authoring Cycle The Annotation Authoring Cycle Results OpenMath Symbols Notation Language (OSNL) Results Different Notations of the same Symbol Annotating the Contents Problems in rendering the Notations Conclusions & Future Work Conclusion

11 CONTENTS vii 7.2 Future Work A Terminologies 63 B DTD of OSNL 65

12 viii CONTENTS

13 List of Tables 4.1 A comparison between MathML, HTML and L A TEX Excerpt of the OpenMath Symbols Notation Language Default operators precedences List of style attributes in the StyleSheet ix

14 x LIST OF TABLES

15 List of Figures 2.1 An example of a XML document representing list of books An example of XSLT template DOM object hierarchy in (a) for the XHTML document in (b) JavaScript example of changing the background color of the XHTML element using DOM OpenMath Example OpenMath Attribution Example OpenMath expression for the math formula ( x+1 x+5 ) OpenMath Presentation algorithm in XSLT MathML Example for (a + b) An OMDoc Document Presentation Architecture of ActiveMath A screenshot of ActiveMath System using the HTML presentation An example of <omstyle> element to write presentation for textual contents Example of presentation tag in OMDoc An example of the OpenMath symbols roles Notation Semantics for divide symbol OpenMath Attribution Example Notation for type attribute in Figure 4.4(a) and XSLT in Figure 4.4(b) Logical Positions of Labels An OpenMath labeling example xi

16 xii LIST OF FIGURES 4.7 Attributing variable with interval index Attributing variable with prime attribute Definition of Error Style Annotation of Mathematical Text with styles An Example of the XSLT rule of mfrac element (a) and <recursive> element (b) to generate XSLT rule for HTML, L A TEX and MathML languages An example of XSLT rule for the <element> element OSNL Visual Editor The generated OSNL expression from the OSNL Visual Editor StyleSheet interpretors configuration in ActiveMath OSNL Authoring Environment Sequence diagram of an OSNL authoring cycle Sequence diagram of an Annotation authoring cycle HTML view of the Analysis Book page generated from our symbols presentation MathML view of the Analysis Book page generated from our symbols presentation L A TEX view of the Analysis Book page generated from our symbols presentation Three different notations of divide symbol in (a) for HTML, (b) MathML and (c) L A TEX MathML results for the annotation of text and OpenMath HTML results for the annotation of text and OpenMath L A TEX results for the annotation of text and OpenMath

17 Chapter 1 Introduction The topic of this thesis is to provide solution for authoring problems concerning the presentation of mathematical documents containing mathematical text and formal mathematical statements in OpenMath objects. In the first section, we present an introduction to the problem and motivation behind this thesis, followed by an overview of the main contributions. The third section provides an outline about the structure of the thesis. 1.1 Problem Introduction Our work stems from the area of mathematical content authoring in XML. The concrete motivation for our work comes from a number of problems authors face when writing mathematical course material for Web-based learning environment, e.g. for ActiveMath. The goal of this work is to free the authors from the burden of cumbersome technical details that arise when writing presentation information for OpenMath and mathematical text, in the ActiveMath system in particular, and in any related Web-based learning system, in general. Open Mathematical Document (OMDoc) [14] is a language to represent mathematical documents in XML. The contents of the documents are expressed as elements like definition, theorem, proofs and conclusion etc. Each element contains a <CMP> element, which stores the textual description of the concept (referred as mathematical text throughout the thesis). The mathematical text includes the plain 1

18 2 CHAPTER 1. INTRODUCTION text, formatting elements to annotate text such as tables and lists and OpenMath to represent mathematical expressions. OpenMath is a language that assigns meaning to the mathematical expressions such as variable, symbols, integer and float etc. The OMDoc documents are transformed into various presentation formats, e.g. HTML, MathML and L A TEX (for PDF) using XSLT. The authors face problems when they have to specify XSLT template in general for each newly defined OpenMath object. First, writing XSLT code is error prone. Second, writing presentations for different presentation formats requires the authors to write XSLT code for each format. Third, multiple presentations of same OpenMath symbol are required by authors to represents the same concept with different notations, which is not addressed by the current approaches. Finally, the authors require annotations such as colors, borders and font etc. for the OpenMath symbols and mathematical text in a sensible way, which is not trivial in XSLT. Note: We will use the term presentation formats and output formats interchangeably in this thesis that refer to the output formats, i.e. HTML, MathML and L A TEX. 1.2 Contribution We propose a solution, in which authors do not have to write code directly in the XSLT templates for each presentation format. Instead they have to write presentation in our proposed XML structure only once, which is later translated by our tools into XSLT templates of HTML, MathML and L A TEX presentation formats. We have classified our proposed XML structure into two layers: one is for the notation of the OpenMath symbols called OpenMath Symbols Notation Language (OSNL) and the other is the StyleSheet to annotate the contents with styles such as color, background, alignment and border etc. Authoring support is also a part of the goals of our thesis as we want to ease the presentation authoring during the content authoring. For this, we have developed tools for writing the presentation of the content. The tools are integrated in the same Integrated Development Environment (IDE) called jeditoqmath (a customized tool for the mathematical contents editing) This thesis is a contribution to the research carried in the ActiveMath system

19 1.3. OUTLINE OF THE THESIS 3 in providing authoring support to the content writers. 1.3 Outline of the thesis Chapter 2 gives a detailed overview of the necessary background material required in order to understand our work. Chapter 3 describes the related work explaining the presentation approaches for the OpenMath objects in the Web. The strategy that we adopted for our solution of the problem is explained in Chapter 4, and its implementation detail is discussed in Chapter 5. The results obtained from our tests with the implantation of the proposed system are discussed in Chapter 6. We conclude our work presented in this thesis in Chapter 7 along with a discussion about future work.

20 4 CHAPTER 1. INTRODUCTION

21 Chapter 2 Background This thesis stems from the area of mathematical content authoring in XML for the mathematical document presented on the Web or used by mathematical software systems for data exchange. It takes into account the problems related to presentation authoring of such documents on the Web, and resolving them. The presentations are made in HTML, PDF (using L A TEX) and MathML Web technologies. To understand our work, some technical knowledge about XML, XML-based mathematical languages and Web related technologies is required which we will discuss in this chapter. We begin with the discussion of Presentation Markup Languages followed by an introduction to the Mathematical Markup Languages. Last but not the least, we introduce the ActiveMath system, which is an adaptive learning environment for mathematics. 2.1 Presentation-Markup languages for Document Publishing Presentation-Markup languages define the structure of a document with markup commands and concentrates on the layout of the document. In this section, we discuss two markup languages, i.e. HTML and L A TEX. 5

22 6 CHAPTER 2. BACKGROUND L A TEX TEX is a computer programming language for text typesetting especially mathematical formulae and technical writings. It was started by Donald E. Knuth [13] in the late 1970s as he was not satisfied by the printing quality of his books due to the non availability of good typesetting systems at that time. At the beginning of the 1980s, Leslie Lamport [15] started work on L A TEX based on the TEX engine, enhancing the functionality of TEX by adding a set of functions, making it user-friendly which enables the authors to concentrate on the structure of the document (dividing a document into chapters, sections and paragraph etc.) rather than low level formatting detail of TEX. In addition, the functionality of L A TEX includes the generation of indices, bibliographies, crossreferences, tables of contents, and inclusion of figures, which are not available in basic TEX. Following is a simple latex example with markup elements section (for heading) and bf (to bold a text). L A TEX provides high quality math publishing on \ section {Section Heading} text is here \bf this is bold text desktop. L A TEX has special modes for math such as $ and $ or \begin{math} and \end{math} between text in the document e.g. $(a+b)ˆ2$ rendered as (a + b) 2. L A TEX s scope is not limited to desktop publishing, as communities of people have put their efforts to bring L A TEX on the Web. It can be translated into HTML by tools such as TEX2HTML or TEX4ht etc. The non-standard characters are translated into bitmaps, as currently most common browsers do not have direct support to display mathematics. IBM built a browser plugin that understands a large subset of L A TEX, and displays L A TEX directly in the browser [19]. Lastly L A TEX can be translated into the MathML language (see Section for MathML). L A TEX has been widely spread because of its very high quality type setting, especially in mathematics. The impact of Latex is great in type setting. It has now become an immediate format for generating high quality printable documents as PDF output. Goosens and Rahtz [10] provide a comprehensive detail about L A TEX s web publishing.

23 2.2. EXTENSIBLE MARKUP LANGUAGE (XML) Hyper Text Markup Language(HTML) The World Wide Web (WWW) is the most popular system on the Internet. It was developed at the European Laboratory for Particle Physics (CERN) in the early 1990s. It helps computer users viewing and locating multimedia documents, such as documents with simple/rich text, graphics, animations, audio and video etc. The documents publishing on the Web is done with Hyper Text Markup Language (HTML) [18]. The documents carrying presentation information with markup tags are rendered by the client browser. Pages not only consist of graphical layout but are also linked via hyperlinks, which provides an easy navigation between the documents, thus bringing an innovation in digital document publishing. The syntax of HTML is derived from the Simple Generalized Markup Language SGML [9]. HTML uses tags such as <h1>, <p> and <b> etc. to format text as heading, paragraph and bold respectively. Further formatting can be assigned via Cascading Style Sheets (CSS) [2], which assign styles (font, color,border and padding) to HTML elements. 2.2 extensible Markup Language (XML) Presentation markups like HTML and L A TEX both carry presentation data, but the need of content markup for specialize domain like mathematical or chemical is arised by softwares for data sharing between them. This problem led to the development of new markup to describe the content of the document semantically. In response to these problems, a new markup language is developed called extensible Markup Language (XML)[4], which conforms the standard of SGML [9]. XML is a recommendation of W3C. The markup tags are not predefined in XML, since it is designed as a meta-language to describe other languages. The grammar of an XML document is defined in a Document Type Definition (DTD) or XML schema, which enforces the validity of the document with respect to its data. This creates a great confidence between different vendors/applications to exchange data easily. Moreover, an XML document is a simple text file and can be used in any programming environment and platform. XML is structured as a tree with a root node and the XML elements in the documents are represented

24 8 CHAPTER 2. BACKGROUND as nodes. Each element is represented in angle brackets e.g. elem1 is represented as <elem1> (opening) and </elem1> (closing); leafs are represented as empty elements <elem2 /> and text nodes. The tree s elements are annotated with attributes in the opening brackets to represent extra information e.g. <elem2 type="important">. More importantly, this tree structure must be well-formed i.e all elements must have closing brackets, there must be only one root element and attributes value must be in quotation marks etc. XML has namespace[3] mechanism to uniquely identify the elements as XML allows documents authors to create new elements avoiding the possibility of namecollision between two different elements having same names. The XML element name is prefixed with namespace (this name is called qualified name) like <namespace:name>. The namespace can be omitted or abbreviated to ease the editing. In order to eliminate the namespace from each element, a default namespace can be defined for an element and all of its children. The default namespace can be declared as xmlns attribute. Similarly, a namespace can be abbreviated by an attribute e.g. xmlns:ab= nsuri, where ab is an abbreviation for the namespace and nsuri is the URI of the namespace. <?xml version= 1.0?> <!DOCTYPE omdoc PUBLIC //OMDoc//DTD OMDoc V1.2//EN book.dtd > <books> <bookinfo> < title >XML in a Nutshell</ titile > <author>w. Scott Means</author> </bookinfo> </books> Figure 2.1: An example of a XML document representing list of books Figure 2.1 shows an XML document representing a list of books with details such as title and author. Every XML document starts with an XML declaration in the first line as shown in the figure. The second line indicates the grammar of the document, i.e. the DTD. The <books> is a root element which contains each books detail is represented in <bookinfo> element.

25 2.2. EXTENSIBLE MARKUP LANGUAGE (XML) XML Path Language (XPATH) The XML Path Language (XPath)[8], a recommendation of the W3C, is a syntax to locate parts of an XML document. It is not a structural language like XML, rather, it is a string-based language of expressions. It also provides the basic facilities of string, number and Boolean functions manipulation in the XPath expression. It views an XML document as a tree with single root node. XPath distinguishes between tree nodes as elements (XML elements between < and >), text(character data inside the text elements) and attribute nodes (attributes of the element) nodes. XPath is not used standalone but used by other application such as XSLT (see Section 2.2.2). The XPath syntax constructs a string expression similar to the Linux system file path. The XPath expression is a location path of tree nodes separated by forward slashes (/ and //), and predicate is written between brackets ([predicate]); e.g, books/bookinfo[position()=3] selects third <bookinfo> element inside the <books> element. The location path expression also allows wildcards, buildfunctions and variable access e.g books/bookinfo/* get all children of bookinfo element extensible Stylesheet Language Transformations (XSLT) extensible Stylesheet Language Transformations (XSLT) [12],a recommendation of the W3C, is a language for transforming an XML documents into other documents. It can be used to transform an XML document into other markup documents such as XHTML, HTML and L A TEX etc. The XSLT style sheets, basically programs, consist of templates (rules having matching criteria for the source XML tree) that are recursively applied to the input tree to produce the desired result document. The XSLT model represents the source XML Document as a tree. It uses XPath for matching templates definitions to the source elements. In Figure 2.2(a), a matching rule is defined for the <bookinfo> element. Its template generates a <div> element, and then it recursively applies templates on its children such that the template in 2.2(b) is executed. XSLT can be embedded in browsers, which is a big advantage. Microsoft IE 5 or higher and Mozilla both have the native support for XSLT. This makes it

26 10 CHAPTER 2. BACKGROUND <xsl:template match= bookinfo > <div style = book > <xsl:apply templates /> </div> </xsl:template> (a) <xsl:template match= title > <h1><xsl:apply templates /></h1> </xsl:template> (b) Figure 2.2: An example of XSLT template possible for the user to see the XML content directly in the browser. It can also be used at the server side (Web server) to generate contents for the client user extensible Hyper Text Markup Language(XHTML) HTML does not guarantee the well-formness and validity of the document as authors sometimes forget to close a tag and misspell a tag. These issues were the cause to develop a new language so-called extensible Hyper Text Markup Language (XHTML) [11], a recommendation of W3C. XHTML is similar as HTML 4 except it is an XML application, so that it guarantees to produce a valid, well-form and clean document and could be used with XML agents. 2.3 Document Object Model (DOM) The Document Object Model (DOM), a W3C recommendation, is an application programming interface that allows programs and scripts to dynamically access, modify and delete the structures of valid HTML or XML documents. Though it is widely used with the JavaScript language in HTML or XHTML documents, it is designed to be used in any programming language. It models every element of a document as an object, where the properties the object represents the attributes of the element. In Figure 2.3, the DOM tree of an XHTML document (Figure 2.3(b)) is shown.

27 2.4. MARKUP FOR MATHEMATICAL DOCUMENTS 11 The top level object in the tree document contains objects equivalent hierarchy to the XHTML document elements structure. <html> <body> <h1>heading</h1> <p id= para1 >some text here</p> </body> </html> (a) Document Html Body H1 P Heading Some text here (b) Figure 2.3: DOM object hierarchy in (a) for the XHTML document in (b) Figure 2.4 shows an JavaScript example to change the background color of an XHTML element using DOM model. document.getelementbyid( para ). style.backgroundcolor= blue Figure 2.4: JavaScript example of changing the background color of the XHTML element using DOM 2.4 Markup for Mathematical Documents In this section, we discuss about the markup languages, application of XML, developed to describe mathematical documents semantics like definition, theorem, proof, formulae notation etc.

28 12 CHAPTER 2. BACKGROUND OpenMath OpenMath [6] is a standard, developed by the OpenMath Society, which assigns meanings to mathematical formulae as abstract objects e.g. variable, symbol and expression etc, so that it can be used for communication between applications. It does not define any computation behavior of math expressions, but lets the applications decide it. It is not an XML language but it allows encoding of OpenMath objects in XML. In this thesis, we have processed the XML encoding of Open- Math. OpenMath models the structure of mathematical formula as tree. As an example consider the XML encoding of the expression (a + b) 2 (Figure2.5). <OMOBJ xmlns= > <OMA> <OMS cd= arith1 name= power /> <OMA> <OMS cd= arith1 name= plus /> <OMV name= a /> <OMV name= b /> </OMA> <OMI>2</OMI> </OMA> </OMOBJ> Figure 2.5: OpenMath Example The <OMOBJ> is a container of the OpenMath expression. The expression consists of two math functions, i.e. power and plus. The functions in OpenMath are represented with the application object (<OMA> element). The first child of the <OMA> element is always a symbol (OMS element) that represents the function, and remaining children represent the arguments of the function. In the figure, the power symbol is the outer most function and has two arguments, first is the plus function and second is the integer <OMI>. The <OMS> element has two attributes name and cd. The name attribute is the name of the symbol, and second attribute cd is the content dictionary (a mechanism to extends the OpenMath symbols collection). Finally, the <OMV> element has name attribute, which is the name of the variable. The other OpenMath objects are <OMSTR> string, <OMF> float, <OMB> byte array, <OME> error and <OMATTR> attribution. The attribution object can be used

29 2.4. MARKUP FOR MATHEMATICAL DOCUMENTS 13 to annotate OpenMath objects with some extra information such as color, style, type and description. The first argument of the attribution object is the list of attributes as children of <OMATP> element and the second is OpenMath object which is being attributed. Each attribute is a pair made up of OpenMath symbol as key and associated object as value as shown in the Figure 2.6 <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS name= type cd= am.presentation > <OMV name= important /> </OMAT> <OMA> <OMS cd= arith1 name= divide /> <OMV name= a /> <OMV name= b /> </OMA> </OMATTR> </OMOBJ> Figure 2.6: OpenMath Attribution Example Content Dictionary (CD) The Content Dictionary (CD) holds the meaning of the mathematical symbols. It is the place where the symbols semantics are defined like name, arguments and role (application or attribute key). For instance, the plus symbol can only take two arguments of type integer and float. OpenMath comes with some predefined CDs, some of them are arith1 (for arithmatic operations), set1 (for set operations) and relation (for relational operations). If new symbols are required then a new Content Dictionary is built Transformation of OpenMath with XSLT In Figure 2.8, an algorithm about the transformation of OpenMath into MathML via XSLT is shown [14]. A similar approach is also discussed in Carlisle work [7] to transform OpenMath into MathML. The presentation generation algorithm is implemented in XSLT templates (rules) for each OpenMath object such as application (<OMA>), variable (<OMV>

30 14 CHAPTER 2. BACKGROUND <OMOBJ> <OMA> <OMS cd= arith1 name= power /> <OMA> <OMS cd= arith1 name= divide /> <OMA> <OMS cd= arith1 name= plus /> <OMV name= x /> <OMI>1</OMI> </OMA> <OMA> <OMS cd= arith1 name= plus /> <OMV name= x /> <OMI>5</OMI> </OMA> </OMA> <OMI>2</OMI> </OMA> </OMOBJ> Figure 2.7: OpenMath expression for the math formula ( x+1 x+5 )2,integer (<OMI>) and symbols <OMS>(for each symbol definition) etc. Figure 2.8 shows the XSLT rules that are applied on an OpenMath expression (in Figure 2.7) to generate the presentation in MathML (renders in browser like as ( x+1 x+5 )2 ). The rule in Figure 2.8(a) for <OMBJ> generates a <math> element then continues the presentation generation process on its children i.e. the application object for the power symbol. Hence, the rule in Figure 2.8(c) is executed, which produces a <msup> element and continues the process calling the XSLT rule for divide and plus symbols. The recursion stops at the children <OMV> and <OMI> as both are leaf nodes of the OpenMath tree. This algorithm can be used in a similar way to produce HTML and L A TEX code from OpenMath.

31 2.4. MARKUP FOR MATHEMATICAL DOCUMENTS 15 <xsl:template match= OMOBJ > <math> <xsl:apply templates /> </math> </xsl:template> (a) <xsl:template match= OMI > <mn> <xsl:apply templates /> </mn> </xsl:template> (b) <xsl:template match= power arith1 ]] > <msup> <xsl:apply templates select= * [2] /> <xsl:apply templates select= * [3] /> </msup> </xsl:template> (c) <xsl:template match= OMV > <mi> <xsl:apply templates /> </mi> </xsl:template> (d) <xsl:template match= OMA[OMS[@name= divide arith1 ]] > <mfrac> <xsl:apply templates select= * [2] /> <xsl:apply templates select= * [3] /> </mfrac> </xsl:template> (e) Figure 2.8: OpenMath Presentation algorithm in XSLT Mathematical Markup Language (MathML) MathML [1] is an XML based language for describing mathematical formulae for the Web, concentrating on presentation rather than semantics. It is a recommendation of W3C. Initially, it was aimed to embed a mathematical markup in HTML, in order to display mathematics as an embedded part. MathML is rendered in current browsers like AYMA, Microsoft IE (with MathPlayer as plugin) and Mozilla as an embedded part of the XHTML. It comes with two different languages, Presentation MathML and Content MathML. Content MathML describes the semantics of mathematical formulae, and it is similar to OpenMath. However it has limited number of content element and no extension mechanism such as OpenMath. The Presentation Markup (PMML) defines a specification (consisting of 30 pre-

32 16 CHAPTER 2. BACKGROUND sentation elements) for two-dimensional rendering of formulae. In this thesis, we generated presentations with the presentation part of MathML, i.e PMML. <math> <msup> <mfenced> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </mfenced> <mn>2</mn> </msup> </math> Figure 2.9: MathML Example for (a + b) 2 In Figure 2.9 shows the encoding structure of PMML for (a+b) 2 math expression, <math> is a top level container element. The <msup> is a power element and requires two arguments: base (as in the example <mfenced> layout element surrounds the fences around the content) and power (as in the example<mn> integer element). The <mrow> element is a grouping element representing a subterm in the expression and the <mi> represents identifiers and <mo> holds information for symbols Open Mathematical Document (OMDoc) As OpenMath and MathML only provide the abstraction of math expressions, sometimes this knowledge is not sufficient. Some more structural knowledge like definition, proof and theorem is required to represent mathematical knowledge in one document. Therefore, OMDoc[14] as an extension of OpenMath is developed by Michael Kohlhase at Saarland University. OMDoc divides the mathematical document into abstract structural elements such as <definition>, <omtext>, <example> and <proof> etc. The textual data like plaintext/formatted-text, images and math expressions of these structural elements is represented in <CMP> element. The contents of the <CMP> are referred as mathematical text throughout this thesis. In this thesis, our focus on the mathematical text regarding the presentation authoring. Figure 2.10 shows a example of some OMDoc elements.

33 2.5. ACTIVEMATH: A WEB-BASED LEARNING ENVIRONMENT 17 <omdoc id= omdoc1 > <symbol name= plus /> < definition id= plusdef for= plus > <CMP> [ text is here] <OMOBJ> [...] </OMBJ> [...] </CMP> </ definition > </omdoc> Figure 2.10: An OMDoc Document 2.5 ActiveMath: A Web-Based Learning Environment In this section, ActiveMath [17] will be discussed, with focus on the presentation architecture responsible for generating different presentation formats, i.e. HTML, MathML, PDF and SVG System Description ActiveMath is an adaptive and interactive Web-based learning environment for mathematics developed at Saarbrücken, major system is developed in Deutsches Forschungszentrun für Künstliche Intelligenz (DFKI) and partially at university of Saarland. It dynamically generates content adapted to the students profile i.e. goals, preferences (personalized presentation and field of interest etc), capabilities and knowledge. It has cross-platform and distributed architecture, which facilitates the interaction with other systems, e.g. Computer Algebra System, over the Internet via XML-RPC protocol. ActiveMath uses OMDoc for as its knowledge representation of the content. Figure 2.11 shows the presentation generation architecture of ActiveMath. It is a Web-based client-server environment architecture with a browser at the client side. The student directly sends the request to the Web-server from browser, and contents (HTML, MathML PDF and SVG) are generated as the result of communication between Web-server and the ActiveMath components. The ActiveMath

34 HTML MathML PDF 18 CHAPTER 2. BACKGROUND Browser HTML MathML View Browser PDF View ActiveMath Server Web Server Output Request ActiveMath Components OMDoc Document XSLT Filter HTML-XSLT MathML-XSLT LaTeX-XSLT LatexPDF Figure 2.11: Presentation Architecture of ActiveMath components generate the dynamically OMDoc contents based on the students preferences. These contents are forwarded to the XSLT filters for the presentation generation. This environment is used as an implementation bed in this thesis. Figure 2.12 shows presentation of the contents in HTML.

35 2.5. ACTIVEMATH: A WEB-BASED LEARNING ENVIRONMENT 19 Figure 2.12: A screenshot of ActiveMath System using the HTML presentation

36 20 CHAPTER 2. BACKGROUND

37 Chapter 3 Related Work In this chapter, we discuss the scientific work being done in the area of presentation of mathematical documents (which use OpenMath for encoding the math expressions). 3.1 Presentation Module in OMDoc OMDoc presentation structure is based on XSLT to output the documents in the presentation formats. It uses XSLT templates for each presentation formats,i.e HTML, MathML and L A TEX. For presentation authoring, it provides <omstyle> and <presentation> elements to represent the presentation of the OMDoc elements and the OpenMath symbols respectively; these are converted into XSLT templates of the presentation formats. Figure 3.1 shows presentation of the mathematical text in the <omstyle> element, where the contents are marked as important with <with> element. The <style> element represents the presentation for HTML and MathML. It contains a child <element> element that adds the <em> element in the output. The <recurse> element (child of the <element> element) continues the presentation over the children of the <with> element. The effect of the <omstyle> element is that the contents of <with style="important"> element are enclosed in the <em> element in the output, i.e. HTML an MathML. Figure 3.2 shows an example of <presentation> element, which gener- 21

38 22 CHAPTER 3. RELATED WORK <CMP> This is a <with style= important > important phrase </with>... </CMP> <omstyle element= with style = important > <style format= html mathml > <element name= em > <recurse /> </element> </style> </omstyle> Figure 3.1: An example of <omstyle> element to write presentation for textual contents ates the notation for the divide OpenMath symbol. Each <use> element represents the notation, specified as character data for HTML (/) and L A TEX (\frac) or element attribute for MathML (mfrac), for each target format that is specified in its format attribute. <presentation role = applied for= divide theory= arith2 > <use format= html >/</use> <use format= mathml element= mfrac /> <use format= latex >\frac</use> </ presentation > Figure 3.2: Example of presentation tag in OMDoc Kohlhase s approach requires the authors to write presentations in all formats. On the contrary, we have developed a common XML structure for writing a presentation for the content, so that it generates output for multiple formats, i.e. HTML, MathML and L A TEX. Hence, with our approach, authors need to write a presentation once, rather than writing multiple presentations for the same content. 3.2 Math Web-based Publishing in Applets A different approach, displaying interactive mathematical content on the Web [5], was realized by M. Buffa and his teams for elearning Systems. They used the XHTML language for encoding the content and OpenMath to express the mathematical expressions. They also proposed open a architecture authoring tool, called

39 3.2. MATH WEB-BASED PUBLISHING IN APPLETS 23 MAT, for editing the content. The presentation on the Web is produced in a client-server fashion. The server holds the course contents and produces HTML upon client request. Each math expression is rendered by a Java applet, which is basically a Java Bean component named JOME (Java Open Math Editor). This is a self container software component with multipurposes such as rendering, editing, importing and exporting OpenMath objects. It not only provides the visualization on the Web and interactivity in the displayed formula, it also allows semantical selection/deselection of the whole or sub part of the formula which could help semantical drag and drop and as well as inconification/de-iconification of the selected sub formula. JOME only handles the official core OpenMath content dictionaries. It does not allow the authors to define the presentation of a new symbol. Issues like style annotations and multiple instances of the presentation for the same symbols are not handled in this approach. In thesis we have overcome all these drawbacks.

40 24 CHAPTER 3. RELATED WORK

41 Chapter 4 Defining Presentation semantics for mathematical documents In this chapter we present our methodology to define presentation semantics for the mathematical text and OpenMath. We begin with overview of our approach, followed by a discussion about the comparison between the output formats. In the third section, we discuss our proposed XML language representing the notation of the OpenMath symbols. Annotations like labeling and styles are explained in the forth, fifth and sixth sections. 4.1 Overview The goal of our work is to display math on the Web using styles such as color, background and border etc., and to provide support for authoring. The mathematical documents can be presented in the output formats such as HTML, MathML and PDF (using L A TEX). In current approaches, the transformation of math documents into the output formats is done with XSLT, which have several drawbacks. Often, authors have a pedagogical background, hence only limited or no experience with the design of the XSLT templates. Moreover, when presentation in multiple output formats is required, authors have to write a presentation rule for each format. Additionally, writing programs for annotation such as labeling and styles (color, background and fonts etc.) is not trivial for the authors in the current 25

42 26CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME presentation structure. In our approach, the authors have to write presentation in XML i.e. notations of symbols and styles such as color, background and font only once, then our interpretors convert the presentation into XSLT templates of the required output formats. We have also developed authoring tools to write notations of the symbols and annotations. The tools are discussed in Chapter Comparing MathML with LateX and HTML PMML (Presentation MathML) and L A TEX, both being markup languages, have native support for rendering the math notations. MathML is an XML language having a set of tags to encode notation of math expressions. Similarly, L A TEX provides macros and symbols for math notations. As both target the same domain, they have similarity at the structural level. For example, MathML elements <mfrac>, <msqrt>, <msub> and <msup> have corresponding macros in LateX \frac, \sqrt, _, and ˆ respectively. Furthermore, the variables (<mi>), numbers (<mn>) and entities such as lambda, overbrace in MathML have corresponding elements in L A TEX as shown in the Table 4.1. Finally, both languages stretch scripts such as (, { and [ as the expression requires. This makes it possible to convert MathML into L A TEX, and some tools [20] are available for this conversion. Layout MathML LATEX HTML identifier mi a,b,xyz a,b,xyz etc integers mn 1,5,.. 1,5... symbols mo, &div; \sin,\cos, \div sin, cos, group mrow scripting msub, msup,,ˆ sub, sup munder, mover, msubsup and munderover Matrics, tables mtable \matrix table Table 4.1: A comparison between MathML, HTML and L A TEX HTML does not support a high quality presentation of mathematics, because it is not aware of math notations and does not stretch some notations such as scripts, fraction and square root. Beside these limitations, its definite advantage is that it

43 4.3. OPENMATH SYMBOLS NOTATION LANGUAGE (OSNL) 27 is available in every browser. It uses Unicode for the math notations. It does not stretch some notations such as fraction, root and overbrace etc., when required. We choose Presentation MathML to be the language where our presentations for OpenMath are stored. A major incentive for selecting MathML for this purpose is that, it is an XML standard and a W3C recommendation. It is also convertible in both HTML and L A TEX. Not only it is convertible in both, being an XML based language it can be easily extended with new XML elements, which is the requirement of the solution. 4.3 OpenMath Symbols Notation Language (OSNL) OMDoc defines the notation of OpenMath symbols in the <presentation> element instead of directly writing XSLT templates, as XSLT template authoring is error prone for the OpenMath authors. The <presentation> element is transformed into XSLT templates for the output formats by a XSLT interpreter. We follow the method used by OMDoc for generating XSLT templates from our XML structure. In contrast to OMDoc <style> and <use> elements for writing the math notations in which OpenMath authors have to write notation semantics separately for each format, we have defined a new XML structure called the OpenMath Symbols Notation Language (OSNL). OSNL is capable of generating the notations of the OpenMath symbols in multiple formats, i.e. HTML, MathML and L A TEX. We believe that writing OpenMath notations in a single language is more convenient for the authors than writing presentation for the each output format OSNL Semantics In this section, we present the semantics of the OSNL that serves to encode the notation of the OpenMath objects. The OSNL imports Presentation MathML semantics and some elements from Restricted Style Language in OMDoc. The Presentation MathML was designed

44 28CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME to encode the math notations and it can be translated into todays most widely used layout languages such as HTML and L A TEX as describe in section 4.2. This makes it a good candidate to be used for our purpose. Table 4.2 gives an excerpt of the OSNL language (for further details please see appendix B). Entities Values %tokens mo mi mtext mn mspace %layouts mrow msqr mroot mfrac mstyle mpadded mfenced %scripts msub msup msubsup munder mover munderover mmultiscripts %table mtable mtr mtd %pmml-elems %tokens;%layouts;%scripts;mtable (a) MathML Elements Entities Element Attributes Content Required Optional presentation for theory, role and type notation notation export type (%tokens %layouts %scripts %table element recurse value-of function)* mfrac (recurse, element, value-of, text, function)* msup (recurse, element, value-of, text, function)* element name (attribute element text value-of recurse %pmml-elems;)* attribute name (#PCDATA value-of text)* value-of select EMPTY recurse select EMPTY function name param? param name (#PCDATA %pmml-elems element text value-of recurse function)* (b) Table 4.2: Excerpt of the OpenMath Symbols Notation Language The OSNL generates the XSLT templates (introduced in section 2.4.2) to the form illustrated in Figure 2.8. We see in the XSLT rules example, the matching rule for each OpenMath symbol is defined in <xsl:template> elements with the XPath expression (using the cd and name attributes of the symbol). Each

45 4.3. OPENMATH SYMBOLS NOTATION LANGUAGE (OSNL) 29 template for the symbol prints the layout element, e.g. MathML elements, and recursively applies the XSLT rules on the children (arguments) of the symbol where the children are pointed by an XPath expression, i.e. *[2] and *[3] first and second argument respectively. For writing a symbol s notation, OSNL provides the <presentation> element adopted from OMDoc. It is a top level container element pointing to the symbol for which the presentation is being written. It generates the XSLT rule definition. It has one required attribute for and three optional attributes theory, role and type. for : This attribute represents the name of the symbol for which the notation is defined. theory : This attributes corresponds to the Content Dictionary of the symbol. OMDoc allows to define new symbols inside the theory element instead of having to define new CDs as necessary in OpenMath. In this case, this attribute is the name of the theory. If this attribute is not specified then it inherits the name from the parent <theory> element of the current <presentation> element. role : This attribute specifies how the symbol is used in OpenMath expression, e.g. as function. It can have the following possible values: applied : This value tells that the symbol is used as a function (it is applied to its arguments) in the application object <OMA>. The applied role of the plus symbol is shown in Figure 4.1 at line number 3. symbol : This is the new role we have defined. It is assigned if the symbol is used in the mathematical expression but not inside the application object, then this role is assigned. In Figure 4.1 at line number 5 the symbol pi is used as a symbol role, i.e. it is considered as π in the plus arithmatic operation. type : This is a new attribute defined in our solution. It allows to define the multiple presentations of a same symbol. The value of the type attribute is

46 30CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME 1 <OMOBJ xmlns= > 2 <OMA> 3 <OMS cd= arith1 name= plus /> 4 <OMI>10</OMI> 5 <OMS cd= nums1 name= pi /> 6 </OMA> 7 </OMOBJ> Figure 4.1: An example of the OpenMath symbols roles used to further filter a XSLT rule to identify a particular symbol having type attribute (we discuss this attribute in detail in Section 4.4). precedence : This attribute controls the bracket printing in the output. The value of attribute is numeric and must be in the range of 0 to The default value is 10. The brackets print if the precedence of the symbol is less than the parent in the OpenMath tree. Below is Table 4.3 of the default precedence for some operators (the precedence values are the modified version of the original in our solution). Precedence Operators Comment 10 =,,, <, >, relation 200 +,- unary 200 ˆ exponentiation 400 * multiplicative 500 +,,,,, boolean 600 / fraction Table 4.3: Default operators precedences The <notation> element is a container of all the notation layout structures as shown in Table 4.2(b). Its export attribute contains the list of the output formats (HTML, L A TEX and MathML) separated by operator. In Figure, 4.2 there are two <notation> elements, one for the MathML and L A TEX and the other for the HTML.The notation of the OpenMath symbol is defined in PMML like structure, where the arguments of the symbols are represented with <recurse> element pointed by an XPath expression. The three elements in the notation language are shown in Table 4.2(b), they do not carry any layout information, instead they are directly mapped to the XSLT elements: <recurse> to <xsl:apply-templates>, <value-of>

47 4.3. OPENMATH SYMBOLS NOTATION LANGUAGE (OSNL) 31 <presentation theory= arith1 name= divide role= applied > <notation export= mathml latex > <mfrac> <recursive select = * [2] /> <recursive select = * [3] /> </mfrac> </notation> <notation export= html > <mrow> <recursive select = * [2] /> <mo>%</mo> <recursive select = * [3] /> </mrow> </notation> </ presentation > Figure 4.2: Notation Semantics for divide symbol to <xsl:value-of> and <function> to <xsl:call-template. The <recurse> element continues presentation generation recursively over the children. There is an optional select attribute of the <recurse> element, which points to the particular argument of the symbol represented by an XPath expression. The second element <value-of> extracts the value of the argument of the symbol pointed by the XPath location expression in its select attribute. Finally, <function> is used to call a function, i.e if the target XSLT presentation framework offers specific functions that allow additional processing during the notation generation for a particular type of layout. One example could be brackets generation around the expression according to the symbol precedence. Its child element <param> represents the parameter of the function. The value of this child element can be specified by either a string or sub-layout expression of the OSNL language. Extending notation layouts An extension can be made in the OSNL by the <element> element. It is like a macro definition in L A TEX, identified by a unique name in the name attribute. Further attributes are defined with the <attribute> element child of this element where name attribute and value attribute of this element correspond to a name-value pair of an attribute.

48 32CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME 4.4 Presentation Content Dictionary for OpenMath Objects Overview The OSNL described in the previous section only defines the notation of the OpenMath objects. However, sometimes the authors wish to emphasize a subexpression to elaborate a concept by annotating the sub-expression with styles such as colors, borders or font etc. Using the PMML <mstyle> element, to apply styles, together with the approach described above has the disadvantage that all occurrences of the layouted symbols are presented in the same way. On the contrary the authors want to annotate a particular instance of a symbol in a unique way. A different solution, namely defining CDs of presentation symbols mixes presentation and semantic information, and hence should be discarded. Our solution uses both the StyleSheet and the OpenMath attribution Object to annotate the math expression. The StyleSheet contains the style definitions like color, background color and border etc. On the other hand, mathematical annotation and notation identification information of the OpenMath object can be stored with the attribution object OpenMath attribution Object OpenMath allows to add attributes to its objects. Adding an attribute in OpenMath object does not change the meaning of the object. Moreover, OpenMath applications can ignore the attributes if they do not know the meaning of an attribute. Therefore attributes are the ideal place to store the data about annotation. The Attribution Object <OMATTR> is used to add attributes in OpenMath Objects. It contains two children: first is a list of attributes in <OMATP> element and second is an OpenMath Object which is to be attributed. Each attribute is represented in a (key,value) pair form. OpenMath only allows to use symbols as a key name, and value can be any OpenMath Object. As an example, in Figure 4.3, the variable x is marked as important with type attribute.

49 4.4. PRESENTATION CONTENT DICTIONARY FOR OPENMATH OBJECTS33 <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS name= type cd= am.presentation > <OMV name= important /> </OMATP> <OMV name= x /> </OMATTR> </OMOBJ> Figure 4.3: OpenMath Attribution Example Presentation Attributes In the following we propose a list of attributes to be used for storing semantics about the annotation data. These attributes do not store the direct styleinformation but instead store data about presentation annotation. The stored data includes the type of the Object (type), label the text to elaborate a concept in the object (label) and the index of the variable (index) such as a 2,where 2 is an index. The styles are stored in a StyleSheet (discussed in detail in Section 4.5) that is attached to the notation of the symbol with the type attribute. We implemented a Content Dictionary (CD) that contains the symbols only used as keys in the attribution objects. The symbols are as follows: type This attribute assigns a type to an OpenMath object. The value of this variable can be any string in name attribute of <OMV>. In our approach, we use the type attribute for defining multiple notations of a symbol and as an identifier for a style definition in the Stylesheet. Regarding the first purpose, the type attribute is used to define different OSNL notations for one symbol, for instance when an author wants to present the divide symbol as a b instead of a. In this case, the problem is solved by the type b attribute by assigning a type div to the application object containing the divide symbol as shown in Figure 4.4. Secondly, the type attribute is used to invoke the StyleSheet for the presentation of a symbol e.g. the author can assign a type error to OpenMath expression to highlight a mistake in an exercise step by rendering the background in the red color. The value of this attribute is a OpenMath variable e.g. <OMV

50 34CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME <presentation theory= arith1 name= divide role= applied type= div > <notation export= latex > <mrow> <recurse select = * [2] /> <mo>&div;</mo> <recurse select = * [3] /> </mrow> </notation> </ presentation > (a) 1 <xsl:template match= OMATTR[OMA[OMS[@name= plus arith1 ]] and 2 OMATP[OMS[@name= type am.presentation 3 and following sibling::omv[position()=1 div ]]]] > 4 5 <xsl:apply templates select= om:oma/ * [2] /> 6 <xsl:text disable output escaping= yes >\div</xsl:text> 7 <xsl:apply templates select= om:oma/ * [3] /> 8 </xsl:template> (b) Figure 4.4: Notation for type attribute in Figure 4.4(a) and XSLT in Figure 4.4(b) name="error">. label Labels attach media information (images, text and math expression) with the math subexpressions to illustrate the underlying meaning of the subexpressions. The value of this attribute can be any OpenMath object. The external media, for instance, image is defined via OpenMath <OMFOREIGN> element. This attribute arrange labels into eight logical positions around the mathematical expressions as shown in Figure 4.5. The logical position is assigned via the orientation attribute assigned to the value object of the label attribute. In Figure 4.6, the label attribute is assigned to the variable object x. The position of the text Variable is set down. Figure 4.5: Logical Positions of Labels

51 4.4. PRESENTATION CONTENT DICTIONARY FOR OPENMATH OBJECTS35 <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS name= label cd= am.presentation > <OMATTR> <OMATP> <OMS name= oreintation cd= am.presentation > <OMV name= down /> </OMATP> <OMSTR>Variable</OMSTR> </OMATTR> </OMAT> <OMV name= x /> </OMATTR> </OMOBJ> Figure 4.6: An OpenMath labeling example indexing Indexing is a mathematical notation used to represent the difference instances of a math object of the same class, e.g. the coordinates of different points location in x-y plane are expressed as (x 1, y 1 ), (x 2, y 2 ) and (x 10, y 10 ) etc. OpenMath does not provide any built-in property to represent indexes. One way of doing this is to give a variable name like <OMV name="x1">, and render it as x 1, but this approach requires defining the presentation of each such variables. This is not very convenient for authors as they have to use them frequently in their contents. We are using indexing attribute to overcome this problem. The values of this attribute are any OpenMath object or interval symbol. The value (interval symbol) is used to express series of indexes in an a interval such as x 1, x 2,...x n. An indexing example with interval value is shown in Figure 4.7. prime Similar to indexing, single prime (a ) or double prime (a ) notations have the same problem in authoring. This attribute accepts only two values singleprime and doubleprime in OMV element. Figure 4.8 shows an example of prime attribute.

52 36CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS name= index cd= am.presentation /> <OMA> <OMS cd= am.presentation name= index interval /> <OMI>1</OMI> <OMI>3</OMI> <OMV name= n /> </OMA> </OMATP> <OMV name= a /> </OMATTR> </OMOBJ> Figure 4.7: Attributing variable with interval index <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS name= prime cd= am.presentation /> <OMV name= single /> </OMATP> <OMV name= a /> </OMATTR> </OMOBJ> Figure 4.8: Attributing variable with prime attribute 4.5 Stylesheet Semantics A StyleSheet stores style attributes such as color, font and border. It defines common style attributes for each output formats (HTML, MathML and L A TEX). In Table 4.4, a list of style attributes is shown. These style attributes are grouped under a logical style name, e.g. The error style contains border and red background in the StyleSheet. The XSLT presentation system of the each output format applies these logical styles to the math expression by translating the attributes into their native implementations. For example, the mathbackground attribute in MathML has the same name in style element, in HTML it has background-color in CSS and in L A TEX it is implemented via the colorbox macro. The style definition is only instantiated by matching id of the style definition with the type attribute of the OpenMath objects or style attribute of <with> element (discussed in the next section). In Table 4.4, some style attributes only work with the text annotation, i.e.

53 4.6. ANNOTATING THE MATHMATICAL TEXT WITH STYLES 37 Name Values fontstyle normal bold italic sans-serif monospace fontsize small big large LARGE color #rgb html color name background #rgb html color name borderwidth px pt bordercolor px pt padding px pt margin px pt width px pt height px pt align left right center Table 4.4: List of style attributes in the StyleSheet margin and align, which always creates a line break. The remaining applies to both text and math annotations. The attributes, i.e. background, borderwidth, bordercolor, padding, width and height make a box around the contents so that the box is only visible if the borderwidth attribute is assigned a value. Some attributes have a px and pt values, which are measuring values in pixels and points respectively. From the authoring point of view, the StyleSheet offers an easy way to write styles info by only requiring the definition of the style and assignment of the type attribute to the OpenMath objects. The style definition can be applied to any OpenMath object. Figure 4.9 shows a definition of an error style. <Styles> <styledef id= error > <style name= border value= solid /> <style name= mathbackground value= red /> </ styledef > </Styles> Figure 4.9: Definition of Error Style 4.6 Annotating the Mathmatical Text with styles OpenMath only represents the math expressions, but mathematical documents contains both text and expressions. OMDoc brings these both together in one XML file. OMDoc provides the <with> element to write the presentation for the

54 38CHAPTER 4. DEFINING PRESENTATION SEMANTICS FOR MATHEMATICAL DOCUME mathematical text. Its style attribute is a logical name of the style, but the authors have to define presentation of the style for the each presentation format. In our approach, we are using StyleSheet to write the presentation for the mathematical text. The text (for which presentation is required) is marked by using <with> element and style (defined in StyleSheet) is binded with the style attribute of the <with> element. Figure 4.10 shows an example of <with> element. <CMP> [ text ] <with style = important > [ text ]... <OMOBJ>... </OMOBJ> </with>... </CMP> Figure 4.10: Annotation of Mathematical Text with styles

55 Chapter 5 Implementation In this chapter we will discuss the implementation details that were taken care of for this thesis. We briefly present our programming implementations of the OSNL and the annotations in the ActiveMath environment. Finally, we describe the authoring tools developed to provide ease to the authors for the presentation authoring of mathematical documents. 5.1 Attribution Authoring in OpenMath In [16], Libbrecht presents an approach to encode OpenMath content in OQ- Math (the OpenMath Authoring tool), as manually editing the long OpenMath expressions are confusing for the authors. The OQMath tool is basically a wrapper around the QMath distributed in jeditoqmath (an XML editing tool customized for OMDoc), and allows authors to encode math expression in linear form ( L A TEX like syntax,e.g. (3+4)/x) in OMDoc documents. According to Libbrecht, this tool makes possible the readability and automatic validity of the OMDoc document during editing. This approach seems to be an easy way to encode OpenMath in XML documents like OMDoc. As the original version of the OQMath tool does not support the attribution Object, we have enhanced it to allow authors to attach attributes to the OpenMath objects. Now, the tool provides attributes as functions, i.e. type, label, index, prime functions for the type, labeling, index and prime attributes. 39

56 40 CHAPTER 5. IMPLEMENTATION These attributes can be assigned to OpenObjects with att function as arguments, which takes n number of arguments. The last argument is always the OpenMath object that is being attributed. For instance, the linear expression att(label("square of integers"), type(important), (4+6)ˆ2) assigns the type and label attributes to the math expression (4+6)ˆ2;the Open- Math generated from the tool is shown below. <OMOBJ xmlns= > <OMATTR> <OMATP> <OMS cd= am.presentation name= label /> <OMSTR>Square of integers</omstr> <OMS cd= am.presentation name= type /> <OMV name= important /> </OMATP> <OMA> <OMS cd= arith1 name= power /> <OMA> <OMS cd= arith1 name= plus /> <OMI>4</OMI> <OMI>6</OMI> </OMA> <OMI>2</OMI> </OMA> </OMATTR> </OMOBJ> We believe that this tool provides ease to the authors to write attributes in linear expression instead of writing complicated XML structures. 5.2 Translating Symbols Notation Language into XSLT The OSNL is transformed into XSLT templates for the output formats (HMTL, MathML and L A TEX) using XSLT. In OSNL, the <notation> element produces the XSLT rule <xsl:template> for each layout language specified in the export attribute. For each PMML element in the OSNL, an XSLT rule is defined with format parameter. The rule generates the XSLT code for the output format specified in the format parameter, e.g. Figure 5.1(a) shows the <mfrac> element translated into markup of the output formats. The three elements, i.e. <recursive>, <text> and <function> do not re-

57 5.2. TRANSLATING SYMBOLS NOTATION LANGUAGE INTO XSLT 41 quire any format parameters as they directly correspond to the XSLT elements <xsl:template>, <xsl:text> and <xsl:call-template> respectively. Figure 5.1(b) shows that the <recursive> element is translated into the <xsl:apply-templates> element. <xsl:template match= mfrac > <xsl:param name= format /> <xsl:choose> <xsl:when test= $format= html > <xsl:apply templates select= * [1] /> <xsl:text>/</xsl:text> <xsl:apply templates select= * [2] /> </xsl:when> <xsl:when test= $format= latex > <xsl:text>\frac{</xsl:text> <xsl:apply templates select= * [1] /> <xsl:text>}{</xsl:text> <xsl:apply templates select= * [2] /> <xsl:text>}</xsl:text> </xsl:when> <xsl:when test= $format= mathml > <xsl:element name= element > <xsl:apply templates * /> <xsl:apply templates /> </xsl:element> </xsl:when> </xsl:choose> </xsl:template> <xsl:template match= recursive > <xsl:element name= xsl:apply templats > < xsl:attribute name= select > <xsl:value of select /> </ xsl:attribute > </xsl:element> </ xsl:template > (b) (a) Figure 5.1: An Example of the XSLT rule of mfrac element (a) and <recursive> element (b) to generate XSLT rule for HTML, L A TEX and MathML languages The <element> element is for extendibility purpose, i.e whenever new semantics are defined for the <element> element, it is required to define its XSLT rule to generate presentation for the output formats. Figure 5.2 shows an Example rule for a new element.

58 42 CHAPTER 5. IMPLEMENTATION <xsl:template match= importantplus > <xsl:param name= format /> <xsl:choose> <xsl:when test= $format= html >... </xsl:when>... </xsl:choose> </xsl:template> Figure 5.2: An example of XSLT rule for the <element> element OSNL Visual Editor We have developed an authoring tool that generates the OpenMath Symbols Notation Language code for the authors requiring no XML experience. It is made on top of the Java OpenMath Editor (JOME). Originally, JOME was capable of producing a limited set of OpenMath symbols and Content MathML from a linear syntax. We have extended it to produce the OSNL. The input of the notation in the editor is linear like in L A TEX. For special symbols notations, it has functions, e.g. the sum(a=1,5,a+10) function prints the notation as 5 a=1 a The editor also provides a tool bar, containing buttons for the math notations, operators and symbols to help in authoring the linear expression. The screen-shot of the editor is shown in Figure 5.3, where the orange boxes highlight the input boxes and the yellow represent debug information. To generate the OSNL, the editor requires the notation as well as an OpenMath expression representing the symbol for which the notation is being written. The OpenMath input is provided in an OQMath syntax. As the OSNL expression uses XPath to point the arguments of the OpenMath objects, we have provided in the editor a scheme for naming the arguments/identifiers to calculate the XPath, i.e. the arguments name starts with arg followed by a number,e.g. arg1. In Figure 5.3, an example for the notation editing for the distance OpenMath symbol is shown, where inputs are for the OpenMath symbol and the notations are represented in linear as dist(arg1,arg2) and abs(arg2-arg1) respectively. The editor internally converts the linear inputs into the OpenMath and the PMML XML expressions (shown as debug info in the editor). Further, the XML expres-

59 5.2. TRANSLATING SYMBOLS NOTATION LANGUAGE INTO XSLT 43 Notation Preview Notation Linear Input Qmath Input PMML Debug XML Open Debug XML Figure 5.3: OSNL Visual Editor sions are processed by our XSLT program to generate the OSNL expression. The generated OSNL code is shown in Figure 5.4 <presentation theory= am for= distance role = applied > <notation> <mrow> <mrow> <mo> </mo> <recurse select = * [3] /> <mo> </mo> <recurse select = * [2] /> <mo> </mo> </mrow> </mrow> </notation> </ presentation > Figure 5.4: The generated OSNL expression from the OSNL Visual Editor

60 HTML MathML PDF 44 CHAPTER 5. IMPLEMENTATION 5.3 StyleSheet Realization We have realized the StyleSheet for the three layout languages (output formats), i.e. HTML, MathML and L A TEX. Since these languages have their own markup commands for styles (viz. color, border and background, etc.), we have written three separate sets of interpreters for each of the languages. Each set is composed of two different interpreters, one is for the OpenMath expressions and the other for the mathematical text. These interpretors are shown in Figure 5.5. The yellow box represents the interpretor for OpenMath and the cyan for the mathematical text. Browser HTML MathML View JavaScript API Browser PDF View ActiveMath Server Web Server Output Request ActiveMath Components OMDoc Document XSLT Filter HTML-XSLT MathML-XSLT LaTeX-XSLT LatexPDF Amlabel Figure 5.5: StyleSheet interpretors configuration in ActiveMath Following is a detail of interpretors for each layout languages. Interpretors for MathML The interpretor for MathML output uses the PMML

61 5.4. AUTHORING CYCLE 45 mstyle element to associate the styles the notations. Some annotations (viz. labeling and alignment ) require scripting capabilities, since XSLT is a transformation language and one cannot determine the x, y positions and dimension of the markup elements. Therefore, we have developed JavaScript APIs (in conjunction with CSS and DOM) that position the objects (MathML Expressions and Labels) during loading of the document in the browser. The data structure, i.e. arrays of labels to be positioned and the APIs function calling code, is generated in XSLT during the transformation. With the mathematical text, CSS technique is used. The styles are grouped with <div> and <span> elements. Interpretor for HTML In HTML, styles definition are realized with CSS for both math expression and text fragments. For alignment and positioning of labels, similar technique like in MathML is used. L A TEX Interpretor Similar to HTML and MathML, L A TEX has macros for defining the styles stored in packages. Some macros are native like for fontsize \Large and alignment \centering etc. For graphical effects like background color, foreground color and borders, independent vendors have developed their own packages with dvi driver support e.g. graphics and epics (Enhanced Picture Environment) packages. These macros are applied to both text-fragments and OpenMath expressions. The label annotation requires specialized treatment in L A TEX as it requires some scripting support. We have developed a package named amlabel, which only needs nodes with their logical positions (left, right and bottom). 5.4 Authoring Cycle In this section, we describe the authoring cycle for authoring OSNL and annotations which we have developed in this thesis implementation. First, we present the authoring environment, followed by OSNL authoring cycle. Finally, we elaborate the annotation authoring cycle.

62 46 CHAPTER 5. IMPLEMENTATION The Authoring Environment We provide the authoring facility in the jeditoqmath tool by integrating our components (i.e. the OSNL Visual Editor, OSNL interpreter and OQMath). jeditoq- Math [16] is an XML based authoring tool for OMDoc. The OSNL Visual Editor is integrated as a plugin in the jeditoqmath, while the other two components are integrated via scripts written in ant. The scripts transform the OSNL into XSLT templates and install the templates in ActiveMath. The OSNL authoring environment is shown in Figure 5.6 Ant Tasks OSNL notation is pasted here Figure 5.6: OSNL Authoring Environment The OSNL Authoring Cycle The entire activity of entering notations in OpenMath can be explained as an authoring cycle. In this cycle, the author first defines a new symbol in an already

63 5.4. AUTHORING CYCLE 47 opened OQMath document. She then opens the OSNL document (that contains the OSNL notations) in jeditoqmath, invokes the OSNL Visual Editor and edits the notation of the symbol, and pastes it in the document. Then, she executes the OSNL-Express ant task in order to generate the XSLT templates from the notation and install them in the ActiveMath server. Lastly, she previews the symbol notation in the browser. The authoring cycle is depicted in the the UML sequence diagram in Figure 5.7 : Author JeditOQMath OSNL ActiveMath Browser Editor 1: Open OSNL dcoument 2: Invoke OSN Editor 3: 4: Edit Notation 5: Paste Notation 6: Paste Notation in OSNL: Document 7: OSNL Express 8: Install XSLT Templates 9: Preview 10: request Presentationg Figure 5.7: Sequence diagram of an OSNL authoring cycle

64 48 CHAPTER 5. IMPLEMENTATION The Annotation Authoring Cycle Annotation authoring is plugged into the existing OMDoc authoring cycle in the jeditoqmath environment. Here we explain the flow of annotation and StyleSheet editing in this cycle. The author first edits the annotation in an OQMath document, invokes the OQMath ant task to convert it into an OMDoc document and then applies the reloadmbase (an ant task to update the knowledge base in ActiveMath). If necessary, she writes the style definition in the StyleSheet file. Following this procedure, she can then preview the annotation in the browser. The Figure 5.8 shows the complete authoring cycle for annotation. : Author JeditOQMath OSNL ActiveMath Browser Editor 1: Open OSNL dcoument 2: Invoke OSN Editor 3: 4: Edit Notation 5: Paste Notation 6: Paste Notation in OSNL: Document 7: OSNL Express 8: Install XSLT Templates 9: Preview 10: request Presentationg Figure 5.8: Sequence diagram of an Annotation authoring cycle

65 Chapter 6 Results In this chapter we present the output of the various features of our system. The examfples presented in this chapter deal with the transformations on symbols notations, annotations, and styles that are implemented in the ActiveMath environment. In the first section, we cover the rendering of notations in the OSNL. Later, we introduce the results about the mathematical text and the OpenMath objects annotation with styles and label. Finally we review the problems concerned with the rendering of the mathematical notations in the layout languages. 6.1 OpenMath Symbols Notation Language (OSNL) Results The OSNL language was tested with 570 OpenMath symbols; 71 are OpenMath official CDs, i.e. arith1, set, setname, relation, fns, linalg, logic, quant and map, and the remaining are the ActiveMath own symbols used in courses Analysis, Algebra Interactive and Metric topology. All 570 symbols OSNL code was generated by our XSLT program, which used the existing ActiveMath XSLT presentation templates of MathML as a source. The presentations produced from these 570 OSNL symbols in the Active- Math environment for HTML, MathML and L A TEX, were tested with three courses (Analysis, Algebra Interactive and Metric topology) in ActiveMath. The screen-shots of the presentation of a sample page of analysis book, con- 49

66 50 CHAPTER 6. RESULTS taining symbols from CDs arith1, relation, set, setname, the ActiveMath CD elementary, are shown in Figure 6.1 (for HTML), Figure 6.2 (for MathML) and Figure 6.3 (for L A TEX). Figure 6.1: HTML view of the Analysis Book page generated from our symbols presentation

67 6.1. OPENMATH SYMBOLS NOTATION LANGUAGE (OSNL) RESULTS51 Figure 6.2: MathML view of the Analysis Book page generated from our symbols presentation

68 52 CHAPTER 6. RESULTS Figure 6.3: L A TEX view of the Analysis Book page generated from our symbols presentation

69 6.2. DIFFERENT NOTATIONS OF THE SAME SYMBOL Different Notations of the same Symbol Existing approaches as discussed in Section 1.1 do not provide any mechanism to define more than one notations of an OpenMath symbol. Our approach overcomes this limitation by introducing an attribute called type. We wrote three different notations of divide symbol in our test, and assigned the type attribute to the application <OMA> objects in OpenMath expressions and OSNL notation definitions. The different notations were rendered successfully in HTML, MathML and L A TEX generated from XSLT templates (generated from OSNL) as shown in Figure 6.4 (a) (b) (c) Figure 6.4: Three different notations of divide symbol in (a) for HTML, (b) MathML and (c) L A TEX 6.3 Annotating the Contents In this test, we generated examples using annotations styles (foreground-color, background-color, font-size, border and align), prime indexing and labeling. These annotations were binded to the text and OpenMath application and vari-

70 54 CHAPTER 6. RESULTS able objects. The decoration of the mathematical text and OpenMath objects with the annotations were successfully generated into HTML, MathML and L A TEX as shown Figures 6.6, 6.5, 6.7 respectively. Figure 6.5: MathML results for the annotation of text and OpenMath

71 6.3. ANNOTATING THE CONTENTS 55 Figure 6.6: HTML results for the annotation of text and OpenMath

72 56 CHAPTER 6. RESULTS Figure 6.7: L A TEX results for the annotation of text and OpenMath

Authoring Presentation for OpenMath

Authoring Presentation for OpenMath Authoring Presentation for OpenMath Shahid Manzoor, Paul Libbrecht, Carsten Ullrich, and Erica Melis Deutsches Forschungszentrum für Künstliche Intelligenz {manzoor, paul, cullrich, melis}@activemath.org

More information

MathML Presentation Markup for the Impatient

MathML Presentation Markup for the Impatient Hussein Shafie, XMLmind Software This article is published under the Creative Commons "Attribution-Share Alike" license. February 24, 2018 Table of Contents 1. Basic elements... 1 2. More basic elements...

More information

On the relationship between OpenMath and MathML

On the relationship between OpenMath and MathML On the relationship between OpenMath and MathML Bill Naylor Stephen Watt Ontario Research Center for Computer Algebra University of Western Ontario London Ontario CANADA N6A 5B7 {bill,watt}@orcca.on.ca

More information

MathML to TeX Conversion: Conserving high-level semantics

MathML to TeX Conversion: Conserving high-level semantics Elena Smirnova and Stephen M. Watt Ontario Research Centre for Computer Algebra, University of Western Ontario MathML to TeX Conversion: Conserving high-level semantics ** Demo description ** Contents:

More information

Open XML Requirements Specifications, a Xylia based application

Open XML Requirements Specifications, a Xylia based application Open XML Requirements Specifications, a Xylia based application Naeim Semsarilar Dennis K. Peters Theodore S. Norvell Faculty of Engineering and Applied Science Memorial University of Newfoundland November

More information

SVG for Displaying OpenMath and MathML Formulae

SVG for Displaying OpenMath and MathML Formulae SVG for Displaying OpenMath and MathML Formulae MAINLINE (CNRS / University of Nice) Stéphane Lavirotte MAINLINE Multimedia Applications Involving Non Linear Information for Networked Education Distance

More information

ACCESSIBLE MATH IN DESIRE2LEARN

ACCESSIBLE MATH IN DESIRE2LEARN ACCESSIBLE MATH IN DESIRE2LEARN SECTIONS IN THIS GUIDE DESIRE2LEARN SUPPORT FOR MATHML AND MATHJAX ADDING MATH USING THE EQUATION EDITOR REFERENCES AND LINKS DESIRE2LEARN SUPPORT FOR MATHML AND MATHJAX

More information

Structured documents

Structured documents Structured documents An overview of XML Structured documents Michael Houghton 15/11/2000 Unstructured documents Broadly speaking, text and multimedia document formats can be structured or unstructured.

More information

WME MathEdit. An initial report on the WME tool for creating & editing mathematics. by K. Cem Karadeniz

WME MathEdit. An initial report on the WME tool for creating & editing mathematics. by K. Cem Karadeniz 00 000 00 0 000 000 0 WME MathEdit An initial report on the WME tool for creating & editing mathematics by K. Cem Karadeniz 00 000 00 0 000 000 0 Outline MathML WME MathEdit Tool Selection for Implementation

More information

Framework for Sense Disambiguation of Mathematical Expressions

Framework for Sense Disambiguation of Mathematical Expressions Proc. 14th Int. Conf. on Global Research and Education, Inter-Academia 2015 JJAP Conf. Proc. 4 (2016) 011609 2016 The Japan Society of Applied Physics Framework for Sense Disambiguation of Mathematical

More information

BLAHTEXML and multi-target document generation *

BLAHTEXML and multi-target document generation * * Gilles Van Assche November, Abstract BLAHTEX and BLAHTEXML are open-source tools for converting mathematical expressions written in the TEX syntax into MathML. This article focuses on a particular use

More information

International Journal of Research in Advent Technology Available Online at:

International Journal of Research in Advent Technology Available Online at: CONTENT DICTIONARIES FOR RELATIONAL ALGEBRA Kuo-pao Yang 1, Theresa Beaubouef 2 1 2 Department of Computer Science and Industrial Technology 12 Southeastern Louisiana University 1 kyang@selu.edu ABSTARCT:

More information

The HTML Editor in icollege

The HTML Editor in icollege icollege The HTML Editor in icollege Instructional Technology Services Abstract: This handout provides detailed information about the HTML Editor in icollege. The HTML Editor allows you to create HTML

More information

XML. Objectives. Duration. Audience. Pre-Requisites

XML. Objectives. Duration. Audience. Pre-Requisites XML XML - extensible Markup Language is a family of standardized data formats. XML is used for data transmission and storage. Common applications of XML include business to business transactions, web services

More information

XML: Extensible Markup Language

XML: Extensible Markup Language XML: Extensible Markup Language CSC 375, Fall 2015 XML is a classic political compromise: it balances the needs of man and machine by being equally unreadable to both. Matthew Might Slides slightly modified

More information

UNIT -II. Language-History and Versions Introduction JavaScript in Perspective-

UNIT -II. Language-History and Versions Introduction JavaScript in Perspective- UNIT -II Style Sheets: CSS-Introduction to Cascading Style Sheets-Features- Core Syntax-Style Sheets and HTML Style Rle Cascading and Inheritance-Text Properties-Box Model Normal Flow Box Layout- Beyond

More information

Web Standards Mastering HTML5, CSS3, and XML

Web Standards Mastering HTML5, CSS3, and XML Web Standards Mastering HTML5, CSS3, and XML Leslie F. Sikos, Ph.D. orders-ny@springer-sbm.com www.springeronline.com rights@apress.com www.apress.com www.apress.com/bulk-sales www.apress.com Contents

More information

.. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar..

.. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar.. .. Cal Poly CPE/CSC 366: Database Modeling, Design and Implementation Alexander Dekhtyar.. XML in a Nutshell XML, extended Markup Language is a collection of rules for universal markup of data. Brief History

More information

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or remote-live attendance. XML Programming Duration: 5 Days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options. Click here for more info. Delivery Options:

More information

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML

CSI 3140 WWW Structures, Techniques and Standards. Representing Web Data: XML CSI 3140 WWW Structures, Techniques and Standards Representing Web Data: XML XML Example XML document: An XML document is one that follows certain syntax rules (most of which we followed for XHTML) Guy-Vincent

More information

Meta-Stylesheets for the Conversion of Mathematical Documents into Multiple Forms

Meta-Stylesheets for the Conversion of Mathematical Documents into Multiple Forms Meta-Stylesheets for the Conversion of Mathematical Documents into Multiple Forms Bill Naylor (bill@orcca.on.ca) and Stephen Watt (watt@orcca.on.ca) Ontario Research Centre for Computer Algebra, The University

More information

Computer algebra systems, mathematical representation, and the DLMF

Computer algebra systems, mathematical representation, and the DLMF Computer algebra systems, mathematical representation, and the DLMF Richard Fateman, Bruce Char, Jeremy Johnson University of California, Berkeley Drexel University, Philadelphia National Institute of

More information

Research in the ActiveMath Project

Research in the ActiveMath Project Research in the ActiveMath Project Pedagogy, Mathematics, Web! Paul Libbrecht DFKI GmbH, Universität des Saarlandes Projects History VIL (BMBF) 2000-2001 In2Mat (BMBF, partner UdS) 2001-2003 MMISS (BMBF,

More information

EMERGING TECHNOLOGIES. XML Documents and Schemas for XML documents

EMERGING TECHNOLOGIES. XML Documents and Schemas for XML documents EMERGING TECHNOLOGIES XML Documents and Schemas for XML documents Outline 1. Introduction 2. Structure of XML data 3. XML Document Schema 3.1. Document Type Definition (DTD) 3.2. XMLSchema 4. Data Model

More information

A Presentation Architecture for Individualized Content

A Presentation Architecture for Individualized Content A Presentation Architecture for Individualized Content Alberto Gonzáles Palomo, Paul Libbrecht, Carsten Ullrich University of Saarland and German Research Center for Artificial Intelligence Saarbrücken,

More information

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes

Create web pages in HTML with a text editor, following the rules of XHTML syntax and using appropriate HTML tags Create a web page that includes CMPT 165 INTRODUCTION TO THE INTERNET AND THE WORLD WIDE WEB By Hassan S. Shavarani UNIT2: MARKUP AND HTML 1 IN THIS UNIT YOU WILL LEARN THE FOLLOWING Create web pages in HTML with a text editor, following

More information

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments. Web Development WEB101: Web Development Fundamentals using HTML, CSS and JavaScript $2,495.00 5 Days Replay Class Recordings included with this course Upcoming Dates Course Description This 5-day instructor-led

More information

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML

7.1 Introduction. extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML is a markup language,

More information

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance. XML Programming Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend face-to-face in the classroom or

More information

The XML Metalanguage

The XML Metalanguage The XML Metalanguage Mika Raento mika.raento@cs.helsinki.fi University of Helsinki Department of Computer Science Mika Raento The XML Metalanguage p.1/442 2003-09-15 Preliminaries Mika Raento The XML Metalanguage

More information

COPYRIGHTED MATERIAL. Contents. Part I: Introduction 1. Chapter 1: What Is XML? 3. Chapter 2: Well-Formed XML 23. Acknowledgments

COPYRIGHTED MATERIAL. Contents. Part I: Introduction 1. Chapter 1: What Is XML? 3. Chapter 2: Well-Formed XML 23. Acknowledgments Acknowledgments Introduction ix xxvii Part I: Introduction 1 Chapter 1: What Is XML? 3 Of Data, Files, and Text 3 Binary Files 4 Text Files 5 A Brief History of Markup 6 So What Is XML? 7 What Does XML

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML Chapter 7 XML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML

More information

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Make a Website A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1 Overview Course outcome: You'll build four simple websites using web

More information

Data Visualization (CIS/DSC 468)

Data Visualization (CIS/DSC 468) Data Visualization (CIS/DSC 468) Web Programming Dr. David Koop Definition of Visualization Computer-based visualization systems provide visual representations of datasets designed to help people carry

More information

XML: Introduction. !important Declaration... 9:11 #FIXED... 7:5 #IMPLIED... 7:5 #REQUIRED... Directive... 9:11

XML: Introduction. !important Declaration... 9:11 #FIXED... 7:5 #IMPLIED... 7:5 #REQUIRED... Directive... 9:11 !important Declaration... 9:11 #FIXED... 7:5 #IMPLIED... 7:5 #REQUIRED... 7:4 @import Directive... 9:11 A Absolute Units of Length... 9:14 Addressing the First Line... 9:6 Assigning Meaning to XML Tags...

More information

GRAPHIC WEB DESIGNER PROGRAM

GRAPHIC WEB DESIGNER PROGRAM NH128 HTML Level 1 24 Total Hours COURSE TITLE: HTML Level 1 COURSE OVERVIEW: This course introduces web designers to the nuts and bolts of HTML (HyperText Markup Language), the programming language used

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward Comp 336/436 - Markup Languages Fall Semester 2017 - Week 4 Dr Nick Hayward XML - recap first version of XML became a W3C Recommendation in 1998 a useful format for data storage and exchange config files,

More information

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far XML Tutorial Yanan Zhang Department of Electrical and Computer Engineering University of Calgary

More information

A network is a group of two or more computers that are connected to share resources and information.

A network is a group of two or more computers that are connected to share resources and information. Chapter 1 Introduction to HTML, XHTML, and CSS HTML Hypertext Markup Language XHTML Extensible Hypertext Markup Language CSS Cascading Style Sheets The Internet is a worldwide collection of computers and

More information

COMP9321 Web Application Engineering

COMP9321 Web Application Engineering COMP9321 Web Application Engineering Semester 2, 2015 Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2411 1 Extensible

More information

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1 Slide 27-1 Chapter 27 XML: Extensible Markup Language Chapter Outline Introduction Structured, Semi structured, and Unstructured Data. XML Hierarchical (Tree) Data Model. XML Documents, DTD, and XML Schema.

More information

SDPL : XML Basics 2. SDPL : XML Basics 1. SDPL : XML Basics 4. SDPL : XML Basics 3. SDPL : XML Basics 5

SDPL : XML Basics 2. SDPL : XML Basics 1. SDPL : XML Basics 4. SDPL : XML Basics 3. SDPL : XML Basics 5 2 Basics of XML and XML documents 2.1 XML and XML documents Survivor's Guide to XML, or XML for Computer Scientists / Dummies 2.1 XML and XML documents 2.2 Basics of XML DTDs 2.3 XML Namespaces XML 1.0

More information

MathML: the inside story

MathML: the inside story iamc.nb 1 MathML: the inside story Neil Soiffer Wolfram Research Basics of MathML Presentation Tags Example a 2 b 2 MathMLForm a 2 + b

More information

Chapter 1: Getting Started. You will learn:

Chapter 1: Getting Started. You will learn: Chapter 1: Getting Started SGML and SGML document components. What XML is. XML as compared to SGML and HTML. XML format. XML specifications. XML architecture. Data structure namespaces. Data delivery,

More information

Chapter 1 Getting Started with HTML 5 1. Chapter 2 Introduction to New Elements in HTML 5 21

Chapter 1 Getting Started with HTML 5 1. Chapter 2 Introduction to New Elements in HTML 5 21 Table of Contents Chapter 1 Getting Started with HTML 5 1 Introduction to HTML 5... 2 New API... 2 New Structure... 3 New Markup Elements and Attributes... 3 New Form Elements and Attributes... 4 Geolocation...

More information

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward

Comp 336/436 - Markup Languages. Fall Semester Week 4. Dr Nick Hayward Comp 336/436 - Markup Languages Fall Semester 2018 - Week 4 Dr Nick Hayward XML - recap first version of XML became a W3C Recommendation in 1998 a useful format for data storage and exchange config files,

More information

AIM. 10 September

AIM. 10 September AIM These two courses are aimed at introducing you to the World of Web Programming. These courses does NOT make you Master all the skills of a Web Programmer. You must learn and work MORE in this area

More information

Generating TEX from mathematical content with respect to notational settings

Generating TEX from mathematical content with respect to notational settings Generating TEX from mathematical content with respect to notational settings Elena Smirnova Ontario Research Centre for Computer Algebra The University of Western Ontario London, ON, N6A 5B7, Canada elena

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

COMP9321 Web Application Engineering. Extensible Markup Language (XML) COMP9321 Web Application Engineering Extensible Markup Language (XML) Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

Brokering Mathematical Services in the Global Network

Brokering Mathematical Services in the Global Network Brokering Mathematical Services in the Global Network Wolfgang Schreiner Department of Engineering for Computer-based Learning (CBL) Upper Austrian University of Applied Sciences, Hagenberg, Austria Work

More information

WME MathEdit. An initial report on the WME tool for creating & editing mathematics. by K. Cem Karadeniz

WME MathEdit. An initial report on the WME tool for creating & editing mathematics. by K. Cem Karadeniz 00 000 00 0 000 000 0 WME MathEdit An initial report on the WME tool for creating & editing mathematics by K. Cem Karadeniz Hi everybody. Today s talk will be on one of the WME tools that I am currently

More information

PASS4TEST. IT Certification Guaranteed, The Easy Way! We offer free update service for one year

PASS4TEST. IT Certification Guaranteed, The Easy Way!   We offer free update service for one year PASS4TEST IT Certification Guaranteed, The Easy Way! \ http://www.pass4test.com We offer free update service for one year Exam : 000-141 Title : XML and related technologies Vendors : IBM Version : DEMO

More information

Extensible Markup Language (XML) Hamid Zarrabi-Zadeh Web Programming Fall 2013

Extensible Markup Language (XML) Hamid Zarrabi-Zadeh Web Programming Fall 2013 Extensible Markup Language (XML) Hamid Zarrabi-Zadeh Web Programming Fall 2013 2 Outline Introduction XML Structure Document Type Definition (DTD) XHMTL Formatting XML CSS Formatting XSLT Transformations

More information

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

XML: some structural principles

XML: some structural principles XML: some structural principles Hayo Thielecke University of Birmingham www.cs.bham.ac.uk/~hxt October 18, 2011 1 / 25 XML in SSC1 versus First year info+web Information and the Web is optional in Year

More information

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html

Data Exchange. Hyper-Text Markup Language. Contents: HTML Sample. HTML Motivation. Cascading Style Sheets (CSS) Problems w/html Data Exchange Contents: Mariano Cilia / cilia@informatik.tu-darmstadt.de Origins (HTML) Schema DOM, SAX Semantic Data Exchange Integration Problems MIX Model 1 Hyper-Text Markup Language HTML Hypertext:

More information

Mathematical Markup Language (MathML) Version 3.0

Mathematical Markup Language (MathML) Version 3.0 Mathematical Markup Language (MathML) Version 3.0 W3C Working Draft 04 June 2009 This version: http://www.w3.org/tr/2009/wd-mathml3-20090604/ Latest MathML 3 version: http://www.w3.org/tr/mathml3/ Latest

More information

Usage of MathML for paper and web publishing

Usage of MathML for paper and web publishing EuroTEX2001 Kerkrade of MathML for paper and web publishing Tobias Burnus The pre-mathml situation TEX This is the method used by the most (all) of those sitting here. Good: Easy to type in Wide spread

More information

COMSC-030 Web Site Development- Part 1. Part-Time Instructor: Joenil Mistal

COMSC-030 Web Site Development- Part 1. Part-Time Instructor: Joenil Mistal COMSC-030 Web Site Development- Part 1 Part-Time Instructor: Joenil Mistal Chapter 1 1 HTML and Web Page Basics Are you interested in building your own Web pages? This chapter introduces you to basic HTML

More information

XPath. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

XPath. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University XPath Asst. Prof. Dr. Kanda Runapongsa Saikaew (krunapon@kku.ac.th) Dept. of Computer Engineering Khon Kaen University 1 Overview What is XPath? Queries The XPath Data Model Location Paths Expressions

More information

Lurch: A Word Processor that Can Grade Students Proofs

Lurch: A Word Processor that Can Grade Students Proofs Lurch: A Word Processor that Can Grade Students Proofs Nathan C. Carter, ncarter@bentley.edu Bentley University, Waltham, MA, USA joint work with Kenneth G. Monks, monks@scranton.edu University of Scranton,

More information

Introduction to XML 3/14/12. Introduction to XML

Introduction to XML 3/14/12. Introduction to XML Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

Introduction to XML. An Example XML Document. The following is a very simple XML document.

Introduction to XML. An Example XML Document. The following is a very simple XML document. Introduction to XML Extensible Markup Language (XML) was standardized in 1998 after 2 years of work. However, it developed out of SGML (Standard Generalized Markup Language), a product of the 1970s and

More information

Designing a Semantic Ground Truth for Mathematical Formulas

Designing a Semantic Ground Truth for Mathematical Formulas Designing a Semantic Ground Truth for Mathematical Formulas Alan Sexton 1, Volker Sorge 1, and Masakazu Suzuki 2 1 School of Computer Science, University of Birmingham, UK, A.P.Sexton V.Sorge@cs.bham.ac.uk,

More information

Text and Layout. Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 11. This presentation 2004, MacAvon Media Productions

Text and Layout. Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 11. This presentation 2004, MacAvon Media Productions Text and Layout Digital Multimedia, 2nd edition Nigel Chapman & Jenny Chapman Chapter 11 This presentation 344 345 Text in Graphics Maximum flexibility obtained by treating text as graphics and manipulating

More information

MMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany

MMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany MMT Objects Florian Rabe Computer Science, Jacobs University, Bremen, Germany Abstract Mmt is a mathematical knowledge representation language, whose object layer is strongly inspired by OpenMath. In fact,

More information

Contents. 1. Using Cherry 1.1 Getting started 1.2 Logging in

Contents. 1. Using Cherry 1.1 Getting started 1.2 Logging in 1 Contents 1. Using Cherry 1.1 Getting started 1.2 Logging in 2. Site Page Hierarchy Management 2.1 Page Addition 2.2 Page Deletion 2.3 Editing Page Details 3. Page Content Modification 3.1 Page Revisions

More information

Latex Tutorial. CIS400 Senior Design 9/5/2013

Latex Tutorial. CIS400 Senior Design 9/5/2013 1 Latex Tutorial CIS400 Senior Design 9/5/2013 2 Outline Introducing TeX/LaTeX Benefits and potential difficulties Installation and use on Unix/Mac/Windows Compiling PDF documents from LaTeX Basic document

More information

Introduction to XML. XML: basic elements

Introduction to XML. XML: basic elements Introduction to XML XML: basic elements XML Trying to wrap your brain around XML is sort of like trying to put an octopus in a bottle. Every time you think you have it under control, a new tentacle shows

More information

Burrows & Langford Appendix D page 1 Learning Programming Using VISUAL BASIC.NET

Burrows & Langford Appendix D page 1 Learning Programming Using VISUAL BASIC.NET Burrows & Langford Appendix D page 1 APPENDIX D XSLT XSLT is a programming language defined by the World Wide Web Consortium, W3C (http://www.w3.org/tr/xslt), that provides the mechanism to transform a

More information

Manipulating XML Trees XPath and XSLT. CS 431 February 18, 2008 Carl Lagoze Cornell University

Manipulating XML Trees XPath and XSLT. CS 431 February 18, 2008 Carl Lagoze Cornell University Manipulating XML Trees XPath and XSLT CS 431 February 18, 2008 Carl Lagoze Cornell University XPath Language for addressing parts of an XML document XSLT Xpointer XQuery Tree model based on DOM W3C Recommendation

More information

A distributed editing environment for XML documents

A distributed editing environment for XML documents Proceedings of the first ECOOP Workshop on XML and Object Technology (XOT 00). Sophia-Antipolis; 2000. A distributed editing environment for XML documents Pasquier C. and Théry L. Abstract XML is based

More information

Hypertext Markup Language, or HTML, is a markup

Hypertext Markup Language, or HTML, is a markup Introduction to HTML Hypertext Markup Language, or HTML, is a markup language that enables you to structure and display content such as text, images, and links in Web pages. HTML is a very fast and efficient

More information

XML: Managing with the Java Platform

XML: Managing with the Java Platform In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

What is XML? XML is designed to transport and store data.

What is XML? XML is designed to transport and store data. What is XML? XML stands for extensible Markup Language. XML is designed to transport and store data. HTML was designed to display data. XML is a markup language much like HTML XML was designed to carry

More information

HTML, XHTML, and CSS. Sixth Edition. Chapter 1. Introduction to HTML, XHTML, and

HTML, XHTML, and CSS. Sixth Edition. Chapter 1. Introduction to HTML, XHTML, and HTML, XHTML, and CSS Sixth Edition Chapter 1 Introduction to HTML, XHTML, and CSS Chapter Objectives Describe the Internet and its associated key terms Describe the World Wide Web and its associated key

More information

Html basics Course Outline

Html basics Course Outline Html basics Course Outline Description Learn the essential skills you will need to create your web pages with HTML. Topics include: adding text any hyperlinks, images and backgrounds, lists, tables, and

More information

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh

Web Programming and Design. MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Web Programming and Design MPT Junior Cycle Tutor: Tamara Demonstrators: Aaron, Marion, Hugh Plan for the next 5 weeks: Introduction to HTML tags Recap on HTML and creating our template file Introduction

More information

Exploiting Implicit Mathematical Semantics in Conversion between TEX and MathML

Exploiting Implicit Mathematical Semantics in Conversion between TEX and MathML Exploiting Implicit Mathematical Semantics in Conversion between TEX and MathML Stephen M. Watt Ontario Research Centre for Computer Algebra University of Western Ontario London Canada, N6A 5B7 http://www.csd.uwo.ca/

More information

Alpha College of Engineering and Technology. Question Bank

Alpha College of Engineering and Technology. Question Bank Alpha College of Engineering and Technology Department of Information Technology and Computer Engineering Chapter 1 WEB Technology (2160708) Question Bank 1. Give the full name of the following acronyms.

More information

Semantic Web Lecture Part 1. Prof. Do van Thanh

Semantic Web Lecture Part 1. Prof. Do van Thanh Semantic Web Lecture Part 1 Prof. Do van Thanh Overview of the lecture Part 1 Why Semantic Web? Part 2 Semantic Web components: XML - XML Schema Part 3 - Semantic Web components: RDF RDF Schema Part 4

More information

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( )

MODULE 2 HTML 5 FUNDAMENTALS. HyperText. > Douglas Engelbart ( ) MODULE 2 HTML 5 FUNDAMENTALS HyperText > Douglas Engelbart (1925-2013) Tim Berners-Lee's proposal In March 1989, Tim Berners- Lee submitted a proposal for an information management system to his boss,

More information

extensible Markup Language (XML) Basic Concepts

extensible Markup Language (XML) Basic Concepts (XML) Basic Concepts Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@univaq.it http://www.di.univaq.it/gdellape This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

More information

Space for your outline of the XML document produced by simple.f90:

Space for your outline of the XML document produced by simple.f90: Practical 1: Writing xml with wxml The aims of this exercises are to familiarize you with the process of compiling the FoX library and using its wxml API to produce simple xml documents. The tasks revolve

More information

Hypermedia and the Web XSLT and XPath

Hypermedia and the Web XSLT and XPath Hypermedia and the Web XSLT and XPath XSLT Extensible Stylesheet Language for Transformations Compare/contrast with CSS: CSS is used to change display characteristics of primarily HTML documents. But,

More information

Extreme Java G Session 3 - Sub-Topic 5 XML Information Rendering. Dr. Jean-Claude Franchitti

Extreme Java G Session 3 - Sub-Topic 5 XML Information Rendering. Dr. Jean-Claude Franchitti Extreme Java G22.3033-007 Session 3 - Sub-Topic 5 XML Information Rendering Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Agenda

More information

Co. Louth VEC & Co. Monaghan VEC. Programme Module for. Web Authoring. leading to. Level 5 FETAC. Web Authoring 5N1910

Co. Louth VEC & Co. Monaghan VEC. Programme Module for. Web Authoring. leading to. Level 5 FETAC. Web Authoring 5N1910 Co. Louth VEC & Co. Monaghan VEC Programme Module for Web Authoring leading to Level 5 FETAC Web Authoring 5N1910 Web Authoring 5N1910 1 Introduction This programme module may be delivered as a standalone

More information

XML Metadata Standards and Topic Maps

XML Metadata Standards and Topic Maps XML Metadata Standards and Topic Maps Erik Wilde 16.7.2001 XML Metadata Standards and Topic Maps 1 Outline what is XML? a syntax (not a data model!) what is the data model behind XML? XML Information Set

More information

Markup Languages SGML, HTML, XML, XHTML. CS 431 February 13, 2006 Carl Lagoze Cornell University

Markup Languages SGML, HTML, XML, XHTML. CS 431 February 13, 2006 Carl Lagoze Cornell University Markup Languages SGML, HTML, XML, XHTML CS 431 February 13, 2006 Carl Lagoze Cornell University Problem Richness of text Elements: letters, numbers, symbols, case Structure: words, sentences, paragraphs,

More information

Bridges To Computing

Bridges To Computing Bridges To Computing General Information: This document was created for use in the "Bridges to Computing" project of Brooklyn College. You are invited and encouraged to use this presentation to promote

More information

HTML and CSS COURSE SYLLABUS

HTML and CSS COURSE SYLLABUS HTML and CSS COURSE SYLLABUS Overview: HTML and CSS go hand in hand for developing flexible, attractively and user friendly websites. HTML (Hyper Text Markup Language) is used to show content on the page

More information

CSC Web Technologies, Spring Web Data Exchange Formats

CSC Web Technologies, Spring Web Data Exchange Formats CSC 342 - Web Technologies, Spring 2017 Web Data Exchange Formats Web Data Exchange Data exchange is the process of transforming structured data from one format to another to facilitate data sharing between

More information

Solutions. a. Yes b. No c. Cannot be determined without the DTD. d. Schema. 9. Explain the term extensible. 10. What is an attribute?

Solutions. a. Yes b. No c. Cannot be determined without the DTD. d. Schema. 9. Explain the term extensible. 10. What is an attribute? Chapter 7: Information Representation Method XML Solutions Summative Assessment Multiple-Choice Questions (MCQs) 1. XML was developed to overcome the limitations of the markup language. a. EDI b. SGML

More information

1/6/ :28 AM Approved New Course (First Version) CS 50A Course Outline as of Fall 2014

1/6/ :28 AM Approved New Course (First Version) CS 50A Course Outline as of Fall 2014 1/6/2019 12:28 AM Approved New Course (First Version) CS 50A Course Outline as of Fall 2014 CATALOG INFORMATION Dept and Nbr: CS 50A Title: WEB DEVELOPMENT 1 Full Title: Web Development 1 Last Reviewed:

More information

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS ) Data Visualization (DSC 530/CIS 602-01) HTML, CSS, & SVG Dr. David Koop Data Visualization What is it? How does it differ from computer graphics? What types of data can we visualize? What tasks can we

More information

Author: Irena Holubová Lecturer: Martin Svoboda

Author: Irena Holubová Lecturer: Martin Svoboda NPRG036 XML Technologies Lecture 1 Introduction, XML, DTD 19. 2. 2018 Author: Irena Holubová Lecturer: Martin Svoboda http://www.ksi.mff.cuni.cz/~svoboda/courses/172-nprg036/ Lecture Outline Introduction

More information