|
Posted on 2006-06-28 10:20 aimonica 阅读(198) 评论(0) 编辑 收藏
A Prototype Interpreter for an Extended XML
MSc. Thesis Proposal
Abstract
XML-based languages, such as SMIL and SVG, are becoming standard authoring
and presentation tools for multimedia and hypermedia on the web. However, those
languages are still under development, and have some shortcomings. King et al. [21]
have defined some extensions to overcome certain shortcomings, and to provide for
more dynamic and reactive multimedia presentation. In this thesis, I investigate implementation strategies for and produce a working prototype implementation of the
extended version of XML, and I will test and evaluate the XML language extensions
for reactive multimedia.
1 Introduction
Perhaps the most powerful aspect of today’s computing technology is the ability to combine
text, graphics, sounds, video, and moving images in meaningful ways, that is, to create,
manipulate, and use multimedia. With the development of Internet technology, various
multimedia applications, such as distance learning, online digital libraries, and online video
games, have been integrated into the World Wide Web.
Like other web authors, multimedia authors are more and more conforming to the language
standard defined by the World Wide web Consortium (W3C). XML [37], SMIL [41],
and SVG [39] are such languages defined by the W3C. These languages are declarative, providing
a domain-level description of both content and presentation. However, these languages
still have some limitations. For example, calculation is not allowed within attribute values
in XML, so authors are usually forced to use an imperative scripting or programming languages
to perform such calculations. Since most content authors are not programmers, this
use of script is often awkward. Peter King, Simon Thompson, and Patrick Schmitz [21, 34]
have proposed a number of extensions to the XML language family. Their motivation is to
enable authors to describe a wider class of multimedia artifacts in XML, especially artifacts
involving animation.
The project proposed in this document comprises two aspects. The first, and major
aspect is to provide a prototype interpreter/player for this extended version of XML. In
addition, this proposed project will include the creation of several multimedia artifacts in
the extended XML language, which will be used both to test the interpreter and to illustrate
the power of the language extensions, in order to provide feedback to the language designers.
2 Background
While the extensions in [21, 34] are based on XML, they have particular applicability to
SMIL. Therefore, in this section, I will briefly introduce some basic knowledge of the two
languages, XML and SMIL.
2.1 Overview of XML
XML [37] is a language defined by the World Wide Web Consortium (W3C), which was
derived from Standard Generalized Mark-up Language (SGML) [40]. XML is somewhat
similar to HTML or SGML. XML has tags, which identify elements. These tags also contain
attributes defining these elements. However, there are some fundamental differences between
XML and HTML. XML was designed to describe, store, and transfer data and to focus on
what the data is, while HTML was designed to display data and to focus on how data looks.
Also, unlike HTML, XML tags are not predefined. We can invent our own tags and define
our own document structures. Therefore, XML is free and extensible. Current multimedia
web standards SMIL and SVG are extended applications of XML.
Many applications and tools are developed to support XML. Some of those applications
and tools are quite relevant to my thesis. I this section below, I briefly introduce these tools:
² Similar to the functions of CSS (Cascading Style Sheets) in HTML, XSL (XML Style
Sheets) [38] are used to describe how structured XML documents are displayed. XSL
consists of three parts, XSLT, XPath, and XSL-FO. XSLT is a language for transforming
XML documents. XPath is a language for navigating in XML documents. XSL-FO
is a language for formatting XML documents.
² XQuery [43], which is build on XPath expressions, is designed to query XML data, and
is similar to SQL for databases.
² XLink [37] is a language for creating hyperlinks in XML documents, and XPointer
allows the hyperlinks to points to more specific pars of the XML document.
² A Document Type Definition (DTD) [37] defines the document structure with a list of
legal elements. With a DTD, people can agree to use a common DTD for interchanging
data, and can use a DTD to verify data.
² The Document Object Model (DOM) [37] is a programming interface for HTML and
XML documents. DOM defines the way a document can be accessed and manipulated.
Using a DOM, a programmer can create a document, navigate its structure, and add,
modify, or delete its elements. As a W3C specification, one important objective for
the DOM is to provide a standard programming interface that can be used in a wide
variety of environments and applications.
2.2 Overview of SMIL and SVG
The W3C has defined SMIL (Synchronized Multimedia Integration Language, pronounced
“smile”) [41], as a standard for encoding multimedia presentations for delivery over the Web.
The first version SMIL 1.0 was released in mid-1998. In August 2001, the W3C released a
significant update with SMIL 2.0. In the remainder of this thesis proposal, I will use “SMIL”
to refer to SMIL 2.0. Nowadays, SMIL has been installed on millions of computers around
the world. Many IT giants, such as Microsoft, have begun to provide support for SMIL
presentations. SMIL code can be played in most browsers, including Internet Explore and
Netscape Navigator. Also, some media players, such as RealOne Player, Quick Time, GRiNS
Player, and the open-source player AMBULANT, support SMIL format.
SMIL is a collection of XML elements and attributes that we can use to describe the
temporal and spatial coordination of one or more media objects (text, images, sound, and
video). The temporal and spatial layouts in SMIL are specified by the descriptive tags called
elements, as in any XML-based languages.
Firstly, the author specifies the regions in which content will be displayed in the layout
section of the SMIL source, for example:
The spatial placement of media items are defined by using and
elements. In this example, we define two regions, reg1 and reg2, as showed in Figure 1.
Figure 1: SMIL Regions
Then we specify the body, in which their temporal relationships are specified. The
temporal display of media items is controlled by the time containers namely sequential ,
parallel , and exclusive . A SMIL presentation is a structured composition of
autonomous media items. A container’s children are rendered so that a successor
child can’t begin before its predecessor child completes. A container’s children are
all rendered in parallel. Only one of the children of an container can be active at a
time.
Figure 2: SMIL Example
Considering the simplified SMIL example in Figure 2, video and pictures are played at
the same time in the different regions, namely reg1 and reg2. Also, in reg2, two pictures
are played sequentially.
SVG (Scalable Vector Graphics) [39] is the another XML-based language define by W3C.
SVG is used to define vector-based graphics in XML format for theWeb. The most important
advantage of SVG is SVG graphics do not lose any quality if they are zoomed or resized.
Also, every element and every attribute in SVG files can be animated. The small SVG
example in Figure 3 defines a circle:
Figure 3: SVG Example
3 Literature Review
In this section, I survey previous work related to my proposal. This work is classified into
the following sections, Extensible Markup Language, Multimedia presentation system and
SMIL, Functional Programming, Transformation Techniques and XSLT.
3.1 Extensible Markup Language
The Extensible Markup Language (XML) was intended to be a meta-language, when it was
initially approved as a Web Standard by the World Wide Web Consortium (W3C). XML is
fast becoming the standard for data interchange over the web, and brings us a completely
new way of communicating across the Internet.
There is a good deal of current research in the area of XML, XML extensions, and
applications.
Das and Lawhead [11] evaluated the tradeoffs, advantages and issues involved in applying
XML to the storage and management of data and/or documents in the implementation of a
large Web-based application, such as an Online Delivery System for Courseware.
Jamil and Modica [19] presented an object-oriented extension to the language of XML,
namely XML++, to include dynamic inheritance and describe a middle layer that implements
their system.
Hosoya et al. [17] proposed regular expression types as a foundation for statically typed
XML processing languages. Regular expression types introduce regular expression notations
such as repetition (¤), alternation (j), etc., to describe XML documents.
Harren et al. [16] have designed a new research language namely XJ, which gives novel
mechanisms for integration of XML into a programming language, Java. XJ supports updates
and its consistency with XML standards such as XQuery and XML Schema. They have built
a prototype compiler for XJ, which can performs a source-to-source translator that uses DOM
to access XML data in the compiled code.
The above discussed works are all XML-based, either XML applications or XML extensions,
which are similar to my proposed work. XML is still under development, new
standards and extensions keep coming out. The goal of this work is to implement some
XML extensions that will enhance these language standards.
3.2 Multimedia Presentation Systems and SMIL
A multimedia document is a document that composes in time and space different types
of elements such as video, sound, still image, text, synthesized image, etc. Compared to
classical documents, multimedia documents are characterized by their temporal dimension.
SMIL [1, 3, 33, 41] was defined by W3C as a standardized multimedia presentation format for
authoring multimedia application on the web. Much of the current work in development of
multimedia systems has aimed at the design, authoring and presentation of these documents.
Madeus [20] is a simple but powerful authoring and presentation tool. Madeus offers the
basic functions to maintain a structured multimedia document. Madeus covers a broad range
of features such as structural composition, temporal and spatial specifications, integration of
edition and presentation phases. Also, Madeus is based on constraint techniques [23], which
include temporal constraint and spatial constraint. Those constraint techniques are useful
for building authoring environments for multimedia documents.
Celentano and Gaggi [5] presented the automatic generation of multimedia presentations.
In this work, a multimedia report is responsible in rendering for the multimedia presentation
from the data returned by one or more queries to multimedia repositories. They defined an
XML language that integrates spatial layout and temporal constraints of the media objects
for proper coordination and synchronization, so as to render multimedia presentations.
Chen et al. [6] proposed a Multimedia Database Management System (MDBMS). MDBMS
is a multimedia query and presentation management system for multimedia databases. The
queried results are used to create multimedia presentations. Also, in [7], an affinity-based
image retrieval system is developed. This system uses the Multimedia Augmented Transition
Network (MATN) environment to perform multimedia authoring and presentation. The
retrieved query results of the images are incorporated in this design using the “download ”
function. The MATN model can be automatically translated to SMIL scripts.
Currently, there are many SMIL players, such as GRiNS [32], RealOne Player [29], and
AMBULANT [2], which support standard SMIL documents. Microsoft have defined their
own SMIL standard so-called HTML+SMIL [42], which can be played in their browser
Internet Explorer 6 and later releases.
Similar to the above discussed work, my proposed work also deals with multimedia systems,
and one of the targets of this work is to enable reactive and dynamic multimedia
presentation using the more powerful extended version of XML, notable to SMIL and SVG.
3.3 Functional Programming
Functional programming is a programming paradigm that treats computation as the evaluation
of functions. A functional program consists entirely of function definitions and calls.
Functional programming can be contrasted with imperative programming. Program lan-
guages like C, Java, Pascal, etc. are all imperative languages. Imperative languages consist
of a sequence of commands, which are executed one after the other. The first functional programming
language was Information Processing Language (IPL) [30], developed in the mid
1950s. A much-improved functional programming language, LISP [25, 26], was developed
at the Massachusetts Institute of Technology in the late 1950s. In the 1970s the language
ML [27] was created at the University of Edinburgh, and David Turner developed the language
Miranda [36] at the University of Kent. The language Haskell [35] was released in the
late 1980s in an attempt to gather together many ideas in functional programming research.
Functional programming language share some features with the XML language. In particular,
functional languages are declarative and non-imperative. Therefore, the XML extensions
[21] we work on are inspired from functional programming.
Several functional languages provide support for temporal and reactive programming.
The Fran system [12], and more recent Yampa system [10] are Haskell functional programming
language extensions in which multimedia artifacts with animations can be created.
In [4] the authors explored the idea of reactivity in multimedia authoring based on Fran
system. Functional Reactive Programming (FRP) [31] is an extended version of functional
programming with a notion of time flow.
One of our proposed solution strategies in the thesis is to transform the extended XML
into a functional programming language, namely Yampa.
3.4 Transformation Techniques and XSLT
One of our proposed solutions to the implementation of the XML extensions is to transform
our extended version of XML or SMIL into another target language (JavaScript or Yampa).
In this section, I give a brief description of various related work which contributed to the
development of transformation techniques.
In [44] the authors have proposed a transformation language called XMLTrans, which
performs transformations using rules stated as regular expression. XMLTrans uses a uniform
interface to transform various dictionary lexical data represented in SGML format for HTML.
This transformation tool was written in Java, with Java APIs, namely Simple Application
Program Interface for XML (SAX) and Document Object Model (DOM).
Guo et al. [15] propose a novel method, namely GML to SVG Transformation (G2ST),
to transform a Geography Markup Language (GML) to SVG. Geography Markup Language
(GML) [8] is an XML encoding standard developed by the OpenGIS Consortium (OGC) in
order to transport and store geographic information. XSLT is commonly used to transform
GML to SVG. However, designing XSLT rules is not easy and using XSLT cannot guarantee
correctness of the generated SVG document. G2ST consists of a G2ST editor, a XSLT
generator, a XSLT processor, a SVG merger, and a SVG browser. With this system, users
can construct transformation rules from GML to SVG guided by the pre-specified SVG DTD
or schema. Their method can guarantee that target SVG documents conforms to a certain
DTD or schema pre-specified by the user.
In [22, 24] the authors described a prototype for an implementation for syntax-directed
transformation of XML documents from one structure to another. With a source and target
DTDs as an input and a label association between the elemments of the both DTDs defined
by user, this system can semi-automatically give the transformation specification. In addition,
an XSLT script can be automatically generated by this system from the definition of
transformation specification.
Groppe and B¨ottcher [14] propose an Xpath query method with an XSLT stylesheet to
transform only part of the XML document, which is sufficient to answer the given query.
This approach reduce data transformation and its costs.
Most of the works discussed above are based on using XSLT to transform from one
XML document to another XML document or to other formats. My proposed work will be
also based on XSLT. However, our source documents are not standard XML or SMIL, but
extended version of them, which are different from those in the works discussed above.
4 Problem Description
The problem I will address in my thesis consist of (a) the creation of an interpreter for the
extended version of XML defined in [21], and (b) validity testing of both my interpreter and
these language extensions.
XML, defined and recommended by W3C, is becoming a web standard. Based on XML,
SMIL and SVG are current multimedia standards. However, those language are still under
development, and they still have many limitations. I will discuss some of those limitations
in this section.
XML extensions were defined by King et al. [21] in several ways to allow dynamism,
behave reactivity, and overcome certain shortcomings in XML-based languages.
² Firstly, consider the following simple example, which is written in SMIL animation. In
standard SMIL language, this example may generate a error message or an incorrect
animation, because attribute value of to is a string "calc(main.width*0.8)", rather
than a number. However, in the extended version of SMIL, calculation is allowed, and
a picture zoom from the current size up to 80% of the main container width.
² Secondly, [21] discusses events and predicates in XML, notably in SMIL and SVG.
Object models typically have a set of events to indicate a range of interaction conditions(
e.g., mouseclick or mouseover), and document conditions (e.g., media download
or mutation events). There is no means for the author to declare and name new events
specific to the document content in standard XML. The second extension allows us to
define an event as a condition (boolean expression), as shown in the following example.
The event will be raised once the condition defined in predicate attribute is true.
More detail of this example could be found in [21].
² In addition, in order to define event-predicate, a simple type system for XML have to
be defined, because everything in XML is a string and XML does not support different
types, such as int, real, boolean etc.
In this thesis, I will investigate implementation strategies of the above extended version
of XML. Also, I will produce a working prototype implementation using the one of three
strategies discussed in the Section 5. In addition, I will provide feedback on these extensions.
5 Proposed Solution Strategy
The aim of this thesis is to investigate implementation strategies and produce an interpreter
or player for this extended version of XML (SMIL, or SVG), which I have discussed in the
above sections. In order to implement those XML extensions, I will consider three possible
implementation approaches.
² Modify an existing open-source browser to enable it to support the extended version
of XML.
² Modify and add functions to a current open-source SMIL player, such as the AMBULANT
Player [2]
² Transform the extended version of XML into another language which already provides
support for the extensions in some way
Mozilla Firefox [28] is an open-source browser, which is becoming more and more popular
in the browser market. Modifying the Mozilla Firefox browser is a possible method in my
project. However, Firefox is a huge project with more than 2 million lines of code. Modifying
and adding more functions to such a browser is not a easy task.
There exists several SMIL player implementations, including the RealPlayer [29], Internet
Explorer [9], GRiNS Player [32]. However, none of them provides a complete and correct
SMIL 2.0 implementation, and none of them are open-source. Ambulant is an open source
SMIL 2.0 player, which was initially developed by Bulterman et al. [2]. Currently, it is
still under development and intended to used within the research community. The goal
of Ambulant is to build a platform that will encourage the development of comparable
multimedia research output. I will examine the possibilities to integrate our extensions to
the Ambulant Player.
The another possible and the most feasible solution is to transform our extended version
of XML into another target language. Here, I examine two passible target languages: Yampa
and JavaScript.
Yampa has two basic concepts: signals and signal functions. A signal is a function from
time to a value:
Signal a = Time -> a
A signal function is a function from Signal to Signal:
SF a b = Signal a -> Signal a
Time is an important concept in Yampa, which is similar in multimedia presentation and
SMIL documents.
Programming in Yampa consists of defining signal functions compositionally using Yampa’s
library of primitive signal functions and a set of combinators. Using of combinators is another
important concept in Yampa. Figure 4 shows some commonly used arrow combinators
in Yampa. Those combinators are similar to the idea of sequential , parallel ,
and exclusive in SMIL documents. Then, we can map SMIL code into corresponding
code in Yampa. More detailed issues of Yampa is given in the Yampa programming tutorial
[18]. However, Yampa and other Functional Reactive Programming are quite theoretical
and still under development. Implementing in Yampa is still not a easy task.
Figure 4: Arrow Combinators in Yampa
The another target language I will consider as a target for our extended version of XML
(SMIL, SVG) transform into is JavaScript [13]. JavaScript is one of the most popular Internet
scripting languages. It is used in millions of Web pages to improve the design, validate
forms, detect the visitor’s browser, create/use cookies, and much more. It was developed by
Netscape and is the most popular scripting language on the Internet nowadays. JavaScript
can be easily embedded into HTML+TIME [9, 42], which is an extended version of SMIL
for web browser.
In summary, my solution strategy will consist of four facets: (a) Examining the feasibility
of transforming the extended version XML into Yampa or JavaScript, (b) Creating a prototype
interpreter for the extended version of XML, (c) Evaluating the prototype interpreter
by creating several multimedia artifacts, and (d) Evaluating the extensions and providing
feedback on the extensions.
6 Evaluation
There are no formal methods to evaluate my proposed work. However, in order to illustrate
my approach, I will render some case studies, either existing discussed in [21, 34], or creating
new. Those examples will be written in XML, SMIL, or SVG languages, with our extensions.
With the XSLT transformations, the source languages should be correctly converted into
target languages (Yampa or JavaScript). Then, those target languages should be played
in the existing external SMIL player (Internet Explorer, or RealOne Player), or in Yampa
running environment to give correct multimedia presentations. In addition, these examples
will enable me to evaluate the language extensions themselves.
7 Conclusion
XML is fast becoming the standard for data interchange over the web, while XMIL and
SVG are standardized multimedia presentation format for authoring multimedia applications.
These XML-based languages still have limitations. For example, calculations are not
allowed in attribute value, and no event predicates are allowed in XML. King et al. have
defined some extensions to overcome those shortcomings.
This thesis investigates three possible implementations strategies: modify an certain
open-source browser, modify a current open-source SMIL player, and transform extended
version of XML into another language supporting the extensions in some ways. Also, in this
thesis, I will produce a working prototype implantation using one of the three strategies. Finally,
some multimedia artifacts will be designed and created in the extended XML language
to test the proposed implementation and to illustrate the power of the language extensions.
References
[1] D. C.A. Bulterman. Smil 2.0 part 1: overview, concepts, and structure. IEEE Multimedia,
8:82–88, Oct-Dec 2001.
[2] D. C.A. Bulterman, J. Jansen, K. Kleanthous, K. Blom, and D. Benden. Ambulant: a
fast, multi-platform open source smil player. In MULTIMEDIA ’04: Proceedings of the
12th annual ACM international conference on Multimedia, pages 492–495, New York,
NY, USA, 2004. ACM Press.
[3] D. C.A. Bulterman and L. Rutledge. SMIL 2.0 Interactive Multimedia for Web and
Mobile Devices. X.media.publishing, Springer-Verlag, April 2004.
[4] H. Cameron, P. King, and S. Thompson. Modeling reactive multimedia: Events and
behaviors. Multimedia Tools Appl., 19(1):53–19, 2003.
[5] A. Celentano and O. Gaggi. Schema modelling for automatic generation of multimedia
presentations. In SEKE ’02: Proceedings of the 14th international conference on
Software engineering and knowledge engineering, pages 593–600, New York, NY, USA,
2002. ACM Press.
[6] S. Chen, M. Shyu, X. Jin, Q. Chen, C. Zhang, and J. Strickrott. A flexible image retrieval
and multimedia presentation management system for multimedia databases. In
MULTIMEDIA ’01: Proceedings of the ninth ACM international conference on Multimedia,
pages 601–602, New York, NY, USA, 2001. ACM Press.
[7] S. Chen, M. Shyu, N. Zhao, and C. Zhang. An affinity-based image retrieval system
for multimedia authoring and presentation. In MULTIMEDIA ’03: Proceedings of the
eleventh ACM international conference on Multimedia, pages 446–447, New York, NY,
USA, 2003. ACM Press.
[8] OpenGIS Consortium. Geography markup language (gml) v2.1.1, Sept 2002.
http://www.opengis.net/gml/02-069/GML2-12.html.
[9] Microsoft Corporation. Html+time in internet explorer 6.
http://msdn.microsoft.com/workshop/author/behaviors/time.asp.
[10] A. Courtney, H. Nilsson, and J. Peterson. The yampa arcade. In Haskell ’03: Proceedings
of the ACM SIGPLAN workshop on Haskell, pages 7–18, New York, NY, USA, 2003.
ACM Press.
[11] M. Das and P. B. Lawhead. Information storage and management in large web-based
applications using xml. J. Comput. Small Coll., 18(6):72–79, 2003.
[12] C. Elliott and P. Hudak. Functional reactive animation. In ICFP ’97: Proceedings of
the second ACM SIGPLAN international conference on Functional programming, pages
263–273, New York, NY, USA, 1997. ACM Press.
[13] D. Goodman and B. Eich. JavaScript Bible. John Wiley & Sons, Inc., New York, NY,
USA, 2000.
[14] S. Groppe and S. B¨ottcher. Xpath query transformation based on xslt stylesheets. In
WIDM ’03: Proceedings of the 5th ACM international workshop on Web information
and data management, pages 106–110, New York, NY, USA, 2003. ACM Press.
[15] Z. Guo, Sh. Zhou, Z. Xu, and A. Zhou. G2st: a novel method to transform gml to
svg. In GIS ’03: Proceedings of the 11th ACM international symposium on Advances
in geographic information systems, pages 161–168, New York, NY, USA, 2003. ACM
Press.
[16] M. Harren, M. Raghavachari, O. Shmueli, M. G. Burke, R. Bordawekar, I. Pechtchanski,
and V. Sarkar. Xj: facilitating xml processing in java. In WWW ’05: Proceedings of
the 14th international conference on World Wide Web, pages 278–287, New York, NY,
USA, 2005. ACM Press.
[17] H. Hosoya, J. Vouillon, and B. C. Pierce. Regular expression types for xml. ACM Trans.
Program. Lang. Syst., 27(1):46–90, 2005.
[18] P. Hudak, A. Courtney, H. Nilsson, and J. Peterson. Arrows, robots, and functional reactive
programming. In Summer School on Advanced Functional Programming 2002,Oxford
University, volume 2638 of Lecture Notes in Computer Science, pages 159–187.
Springer-Verlag, 2003.
[19] H. M. Jamil and G. A. Modica. An object-oriented extension of xml for autonomous
web applications. In CIKM ’02: Proceedings of the eleventh international conference on
Information and knowledge management, pages 161–168, New York, NY, USA, 2002.
ACM Press.
[20] M. Jourdan, N. Layada, C. Roisin, L. Sabry-Ismail, and L. Tardif. Madeus, and authoring
environment for interactive multimedia documents. In MULTIMEDIA ’98:
Proceedings of the sixth ACM international conference on Multimedia, pages 267–272,
New York, NY, USA, 1998. ACM Press.
[21] P. King, P. Schmitz, and S. Thompson. Behavioral reactivity and real time programming
in xml: functional programming meets smil animation. In DocEng ’04: Proceedings of
the 2004 ACM symposium on Document engineering, pages 57–66, New York, NY, USA,
2004. ACM Press.
[22] E. Kuikka, P. Leinonen, and M. Penttonen. Towards automating of document structure
transformations. In DocEng ’02: Proceedings of the 2002 ACM symposium on Document
engineering, pages 103–110, New York, NY, USA, 2002. ACM Press.
[23] N. Laya¨ıda and L. Sabry-Ismail. Maintaining temporal consistency of multimedia documents
using constraint networks. In Proceedings of the 4th Conference on Multimedia
Modelling, pages 124–135, San Jose, February 1996.
[24] P. Leinonen. Automating xml document structure transformations. In DocEng ’03:
Proceedings of the 2003 ACM symposium on Document engineering, pages 26–28, New
York, NY, USA, 2003. ACM Press.
[25] J. McCarthy, P. W. Abrahams, D. J. Edwards, T. P. Hart, and M. I. Levin. LISP 1.5
Programmer’s Manual. MIT Press, 1960.
[26] J. McCarthy, R. Brayton, D. Edwards, P. Fox, L. Hodes, D. Luckham, K. Maling,
D. Park, and S. Russell. LISP 1 Programmer’s Manual. MIT Press, March 1960.
[27] J. C. Mitchell and R. Harper. The essence of ml. In POPL ’88: Proceedings of the 15th
ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages
28–46, New York, NY, USA, 1988. ACM Press.
[28] Mozilla. Mozilla firefox. http://www.mozilla.org/products/firefox/.
[29] Real Networks. The realplayer 10. http://www.real.com/.
[30] A. Newell and F. M. Tonge. An introduction to information processing language v.
Commun. ACM, 3(4):205–211, 1960.
[31] H. Nilsson, A. Courtney, and J. Peterson. Functional reactive programming, continued.
In Haskell ’02: Proceedings of the ACM SIGPLAN workshop on Haskell, pages 51–64,
New York, NY, USA, 2002. ACM Press.
[32] Oratrix. The grins 2.0 smil player. http://www.oratrix.com/.
[33] L. Rutledge. Smil 2.0: Xml for web multimedia. Internet Computing, IEEE, 5(5):78–84,
September-October, 2001.
[34] P. Schmitz, S. Thompson, and P. King. Presentation Dynamism in XML Functional
Programming meets SMIL Animation. In Twelfth International World Wide Web Conference,
pages 20–24, May 2003.
[35] S. Thompson. Haskell, The Craft of Functional Programming, Second Edition. Addison-
Wesley, 1999.
[36] D. Turner. An overview of miranda. SIGPLAN Not., 21(12):158–166, 1986.
[37] World Wide Web Consortium (W3C). Extensible markup language.
http://www.w3.org/XML/.
[38] World Wide Web Consortium (W3C). The extensible stylesheet language family (xsl).
http://www.w3.org/Style/XSL/.
[39] World Wide Web Consortium (W3C). Scalable vector graphics (svg) 1.1 specification.
http://www.w3.org/TR/SVG/.
[40] World Wide Web Consortium (W3C). Standard generalized mark-up language.
http://www.w3.org/TR/WD-html40-970708/intro/sgmltut.html.
[41] World Wide Web Consortium (W3C). Synchronized multimedia integration language
(smil 2.0) specification. http://www.w3.org/AudioVideo/.
[42] World WideWeb Consortium (W3C). Timed interactive multimedia extensions for html
(html+time) specification. http://www.w3.org/TR/NOTE-HTMLplusTIME.
[43] World Wide Web Consortium (W3C). Xquery 1.0: An xml query language.
http://www.w3.org/TR/xquery/.
[44] D. Walker, D. Petitpierre, and S. Armstrong. Xmltrans: a java-based xml transformation
language for structured data. In Proceedings of the 18th conference on Computational
linguistics, pages 1136–1140, Morristown, NJ, USA, 2000. Association for
Computational Linguistics.
|