Progress Report - DOC

Document Sample
Progress Report - DOC Powered By Docstoc
					Jonathan Milley                                                Page 1                                                   7/26/2012


Table of Conents

1.0 Introduction ................................................................................................................... 2

2.0 The Current Status of Xylia .......................................................................................... 3

3.0 Design of the plug-in interface ..................................................................................... 5

4.0 The Tasks Ahead........................................................................................................... 7

5.0 The Work Plan .............................................................................................................. 7

References ........................................................................................................................... 8




Engineering 8800 Progress Report 2
Jonathan Milley                            Page 2                                  7/26/2012


1.0 Introduction

This report is intended to outline the progress I have made on my 8800 senior design

project. I will use it to this end, as well as to clarify certain items from my Statement of

Work, and the earlier progress report.



My progress since the last report is not the level it should have been, but working long

hours in front of a computer screen really interferes with the enthusiasm to sit in front of

another computer and work for more hours. However, I think I can make up for lack of

progress thus far and accomplish all the goals of the project.



That being said I have not accomplished nothing over the last several months, and I will

outline that progress here, as well as detail my plans for accomplishing the goals I have

set for my self.



Naeim Semsarilar, a current Term 5 student has worked diligently this past fall on the

Xylia project, and has made excellent progress on firming up the editing side of the

toolkit, his progress has been remarkable. I believe that by the end of my project Xylia

will be a capable tool for the University community. I kept abreast of his progress over

the semester by attending several of his meetings with Dr. Norvell and Dr. Peters, which

also helped me get back into the know on the project.




Engineering 8800 Progress Report 2
Jonathan Milley                            Page 3                                 7/26/2012


While I hadn’t had a great deal of work planned for over work term 6, some of what was

tasked there will have to be moved into Term 8. this will force a shift in tasks for Term

8.




2.0 The Current Status of Xylia
Naeim Semsarilar, and Pouria Shaker before him have done some excellent work in

making Xylia a viable editor library, it now has all the core features of a good editor,

functional: cut and paste; undo and redo; validity preservation; etc.



Pourias work on validity preserving editing of XML documents, documented in his paper

for the Newfoundland and Labrador Electrical and Computer Engineering (NECEC)

conference last fall [1], has made the editor more robust and prevents the user from

creating invalid documents. This is an important step, allowing the user to create invalid

documents would prevent them from being read back into the editor, or any other

validating tool, it would be akin to Microsoft Word™ allowing you to create a word

document that could be saved, but never loaded again.



Naeims workterm saw him, among other things, add key editing features to Xylia such

as: undo/redo; proper cut and paste; well behaved selection creation; etc. He also

undertook the creation of a good reference editor for Xylia, as well as continuing tasks

started by Pouria.




Engineering 8800 Progress Report 2
Jonathan Milley                            Page 4                                  7/26/2012


With the initial development of an excellent reference editor by Naeim, and the direction

my project is taking, Xylia is undergoing a paradigm shift, away from an XML editing

library, and toward an extensible editor. Instead of using the XMLEditorKit to create an

editor from scratch, the focus will be on creating a set of plug-ins that give the reference

editor the abilities and properties that you desire. This way, even with a binary release of

Xylia, people will be able to create any editor that they desire. In the implementation of

the editor and plug-in interface I will have to account for this, and allow for this broad

range of plug-ins. It is not a major shift in terms of programming Xylia, but it is a major

deviation from the way we had previously thought of Xylia [2].



Two grad students in Dr. Norvells Advanced Computing Concepts class this past fall

used the Xylia toolkit to implement a class project. Hanz Maharajh used Xylia in

creating an Oracle Generator, taking MathML [3] (an XML language for Math) files

describing functions, and generating a test oracle in Java code to test it. Brian Kidney

used Xylia to implement a BibTex [4] citation database, implementing searching, editing,

etc. and also LaTeX code generation from the XML. In analyzing each of their uses of

Xylia I hope to gain insight into the types of interfaces needed into the toolkit to provide

easier manners for similar projects to be undertaken. They are essentially the first users

of the Toolkit, and should give insight to the drawbacks that must be overcome.




Engineering 8800 Progress Report 2
Jonathan Milley                            Page 5                                 7/26/2012



3.0 Design of the plug-in interface

This is my major on going task, and is progressing nicely, the major decision was to

implement the Document Object Model [5] designed by the World Wide Web

Consortium (W3C), also responsible for creating XML. Implementing this standard will

allow us, and others who use Xylia to use existing tools that are designed to work with

DOM documents, giving us a7cess to a large body of existing work.



The DOM is a recommended set of interfaces and behaviors for accessing an XML

document as a tree of elements representing each item of the document. This makes for a

nice method of access, when the XML document can be completely read into memory,

which in the case of editing it, must be possible.



The DOM interface presents a method of access almost completely unlike the current

XMLDocument which derives its behavior from the javax.swing.text package. This

presents a challenge in creating an adapter that can make the DOM interface work

through the swing interface. It is also a nice benefit, as we now have two different

methods of access available.



The W3C DOM is split into 3 levels, each presenting new features and extended behavior

from the layer under it. It will be necessary to implement at least a complete DOM Level

1 interface, but there are many desirable features from levels 2 and 3 that will be nice to

have. It is hoped that Xylia will support a compliant DOM level 1 interface, with



Engineering 8800 Progress Report 2
Jonathan Milley                            Page 6                                 7/26/2012


extensions. These extensions from Level 2 and 3 will likely break the compliance with

DOM Level 1, but hopefully it will be relatively easy for another student to complete

Level 2 and Level 3 compliance.



The key component to take from Level 3 is validation, preserving the validity (obeying

the rules of the DTD) is important to the viability of an XML document, and this wasn’t

added to the DOM interface till Level 3. It supports validation on 2 levels first, the

DOMException now let you fail upon an invalidation of the document, and this is a part

of the core (required) portion of Level 3. An optional package, DOM Level 3 Validation

adds methods for querying the validity of proposed modifications to the Document,

before performing the changes.



Aside from the DOM adapter for reading/writing to the Document tree, a set of interfaces

and utility classes will be needed to facilitate the management and operation of the plug-

ins. See Figure 1 in Appendix A for the preliminary design of the plug-in interfaces and

helper utilities and Figure 2 for the initial design of the DOM Adapter.




Engineering 8800 Progress Report 2
Jonathan Milley                             Page 7                               7/26/2012




4.0 The Tasks Ahead

Going forward there will be some intense development work, done in iterations, with

concrete goals at the end of each iteration of development. As the work progresses plans

and designs will have to be malleable to conform to the situations discovered, but for the

most part the outline contained here will be formal.

Once the plug-in interface is completed, I will work on creating a set of plug-ins for

Xylia to implement the SIMPLE proof editing system. This will be a show case

application, and proof of the viability of the interface.




5.0 The Work Plan
Included in this document is a revised and updated GANTT project work plan, with

clarifications, modifications and tracking information for progress on proposed tasks.

See Appendix A for updated GANTT chart.



It was necessary to juggle some tasks thought to be capable of being done over the work

term 6, and elimination of tasks that were unnecessary. I have also clarified some of the

tasks for this term, including some extra goals for the iterations of development.




Engineering 8800 Progress Report 2
Jonathan Milley                         Page 8                              7/26/2012



References
[1]    Pouria Shaker, Theodore S. Norvell, and Dennis K. Peters, “Edits in Xylia:
       Validity Preserving Editing of XML Documents”, Newfoundland Electrical and
       Computer Engineering Conference (NECEC) 2002, November 2002

[2]    Jonathan R. Milley, Theodore S. Norvell, and Dennis K. Peters, “The Xylia
       Toolkit: Editing XML with Java”, Newfoundland Electrical and Computer
       Engineering Conference (NECEC) 2001,
       http://jmilley.dezines.com/publications/xylianecec.zip, November 2001

[3]    World Wide Web Consortium, “Mathematical Markup Language (MathML)
       Version 2.0”, http://www.w3.org/TR/MathML2/, 21 February, 2001

[4]    Dana Jacobsen, “The BibTex Format”,
       http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html, 12 December
       1996

[5]    World Wide Web Consortium (W3C), “W3C Document Object Model”,
       http://www.w3c.org/DOM/, June 17, 2002




Engineering 8800 Progress Report 2

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:7/27/2012
language:English
pages:8