XML Path Language (XPath) and its functional implementation SXPath

Size: px
Start display at page:

Download "XML Path Language (XPath) and its functional implementation SXPath"

Transcription

1 XML Path Language (XPath) and its functional implementation SXPath Kirill Lisovsky, Dmitry Lizorkin Institute for System Programming RAS, Moscow State University Abstract XPath is a language for addressing structural parts of an XML document. This paper gives an overview of XPath and discusses its application for digital libraries. SXPath is the compliant XPath implementation in functional programming language Scheme. SXPath is based on the SXML data model XML Information Set represented in the form of S-expressions. SXPath design considered in this paper illustrates the suitability of functional methods for XPath implementation and virtually unlimited capabilities of SXPath/Scheme combination. SXPath may be used as a query language for an XML-based digital library. 1 Introduction XML Path Language (XPath) [1] is a language for addressing parts of an XML document [2]. XPath is the key language in the stack of XML technologies, and is used by many important XML languages, in particular XSLT, XPointer and XQuery. In our previous article [3] we discussed how Electronic Library resources can be described with Dublin Core and represented as an RDF/XML document. We recall such a description on gure 1, and we'll further refer to it in this article. To make use of these resource descriptions, an application needs a tool for retrieving necessary information from an XML document. For example, to nd a relevant resource in the Electronic Library, an application will probably want to address some elds in the resource description, for analyzing them in accordance with a search request. Since elds in the RDF/XML description are parts of an XML document, XPath discussed in this article is a primary tool for such an addressing. Section 2 gives a general overview of XPath. Section 3 introduces SXPath the XPath implementation with functional methods. Subsections 2.1 and 3.1 discuss some technical details concerning namespaces in XPath and SXPath respectively. Section 4 explains the perfect suitability of functional methods for XPath <?xml version="1.0"?> <rdf:rdf xmlns:rdf=" xmlns:dc=" <rdf:description> <dc:creator>karl Mustermann</dc:creator> <dc:title>algebra</dc:title> <dc:subject>mathematics</dc:subject> <dc:date> </dc:date> <dc:language>en</dc:language> <dc:description>an introduction to algebra</dc:description> </rdf:description> </rdf:rdf> Fig. 1: An XML document (which demonstrates a book description with Dublin Core represented in RDF/XML) 1

2 rdf:rdf/rdf:description/dc:title/text() Fig. 2: A sample XPath location path implementation, illustrating this by the implementation of XPath basic concepts as SXPath low-level API functions. Section 5 considers the higher-level API functions in SXPath, and discusses the SXPath feature of being a query language. 2 XPath overview The purpose of XPath is to address parts of an XML document. XPath treats a document as a tree of nodes, since an XML document is essentially a tree structure. Parts of a document are addressed by a so-called XPath location path which has a textual syntax. The location path is usually applied to the root of the XML document, and the result of evaluating the location path for that document is the node-set consisting of (possibly, multiple) nodes selected by the location path. These selected nodes correspond to XML elements, attributes, character data and other parts of the initial XML document. Figure 2 gives an example of the XPath location path. A location path consists of a sequence of one or more location steps separated by /. For example, the location path on gure 2 consists of 4 location steps. The steps in a location path are evaluated in turn from left to right. The leftmost location step is evaluated rst, usually with respect to the node which represents the root of the XML document. Each of the following location steps selects a node-set, which is evaluated with respect to the node-set selected by the previous location step. The node-set selected by the rightmost step is the result of the whole location path for that XML document. A location step has three parts [1]: An axis, which species the tree relationship between the nodes given to the location step and the nodes selected by the location step. An axis can be thought of as a "direction of movement" within a tree which represents the XML document. XPath specication introduces 13 dierent axes. These include axes for descending to the leaves of the tree, for ascending in the direction of the root, for selecting sibling nodes and so on. Syntactically the axis name is separated from the rest of the location step by the "::" (double colon). A node test, which species the type and possibly the name of the nodes selected by the location step. While the axis species the "direction of movement", the node test species the desired nodes to be selected. Zero or more predicates. Each predicate is syntactically written in square brackets and is used to further rene the set of nodes selected by the location step. For the sake of brevity, we won't discuss XPath predicates in this paper, referring the reader to [4]. The most important XPath axis is the child axis. The child axis contains the children of the context node. For the node representing the XML element, the child axis selects both its nested XML elements and nested text nodes. For the root of the document, the child axis selects the document element. The child axis is the default XPath axis, i.e. the word child:: may be omitted in the XPath location step. In the above example on gure 2, every location step uses the child axis. Two XPath node tests are considered in this paper. The node test text() accepts text nodes only. In other words, if we use the terminology suggested in the XPath Specication [1], the node test text() is true for every text node. In the example on gure 2, the last (the rightmost) location step uses this node test. The node test that is an XML (qualied) name is true for the node with the same name. For the XML element node, the node's name is the name of this XML element. In the example on gure 2, the rst three location steps use node tests that are XML qualied names (respectively, rdf:rdf, rdf:description and dc:title). The mechanism of namespace prex expansion in XPath is discussed in a more detail in the next subsection. If applied to the root of the XML document from gure 1, the location path from gure 2 will evaluate in the following way:

3 1. The rst location step (evaluated with respect to the root of the document) selects the node-set consisting of just the document element rdf:rdf (it satises the node test); 2. The second location step selects all rdf:description children of the document element (there is exactly one such element in the sample document); 3. Similarly, the third location step selects all dc:title children of the previously selected rdf:description element (there is exactly one such dc:title element in the sample document); 4. Finally, the forth location step selects child text nodes of the previously selected dc:title element. This evaluates to a node-set consisting of the single text node "Algebra", and this becomes the result of evaluating the whole location path for the sample document. Thus, the location path from gure 2 addresses the title of the book described in the XML document from gure XPath and namespaces Elements and attributes in an XML document generally have their names qualied [5] with a Uniform Resource Identier (URI). As it is discussed in our previous article [3], the role of the URI in a name is purely to allow applications to recognize the name. The XML Namespaces Recommendation qualies names with URIs in an indirect way, based on the idea of a prex. If an element type name or attribute name contains a colon, then the part of the name before a colon is considered as a prex, and the part of the name after a colon as a local name. A prex foo refers to the URI specied in the value of the xmlns:foo attribute [6]. Thus, the name of a node is modeled as a pair consisting of a local part and a (possibly null) namespace URI; this is called an expanded-name. To select elements and attributes which have qualied names, XPath uses the node test which is itself a qualied name, i.e. it syntactically consists of the local name and the prex separated by a colon. A qualied name in the node test is expanded into an expanded-name using the namespace declarations from the context of the evaluated XPath expression. The namespace declarations consist of a mapping from prexes to namespace URIs. A node test that is a qualied name is true only if the node has an expanded-name equal to the expanded-name specied by this qualied name, i.e. they have equal namespace URIs and equal local names. The XPath processor is provided with the namespace declarations by XPath user, in particular, by XSLT or XPointer. XSLT and XPointer Recommendations specify how the namespace declarations are determined for XPath expressions used in XSLT and XPointer respectively. It should be noted that the XPath namespace environment and the document namespace environment are totally independent. In an XML document, a prex foo refers to the URI specied in the value of the nearest xmlns:foo attribute, and the prex name is chosen by the document designer. In an XPath location path, a prex refers to the namespace declaration, and the prex name is chosen by the application developer. These two kinds of prexes have nothing to do with each other. Instead, the corresponding namespace URIs are compared when the XPath node test is evaluated. To make our XPath example from gure 2 accurate, we now should mention the namespace declaration: the rdf: prex is associated with the RDF namespace " and the dc: prex is associated with the Dublin Core namespace " 3 SXPath: XPath implementation in Scheme In this section we will consider SXPath [7], which is an XPath implementation in functional programming language Scheme [8]. First we would like to note that textual representation of an XML with familiar angular brackets is just an external representation of an XML document [9]. Applications (and XPath processor in particular) ought to deal with its internalized form, which would allow an application locate specic data or transform it. For example, XPath implementations may use the Document Object Model (DOM) as an application programming interface for managing XML. As discussed in [10], a big dierence between the external textual XML notation and this internal object model leads to an infamous problem of impedance mismatch [11]. XPath implementation in Scheme allows us to use a very natural and convenient internal representation for XML data - SXML [9]. SXML is a representation for an XML document in the form of an S-expression. As we've considered in [10], XML and SXML textual notations are much alike: roughly speaking, SXML

4 (*TOP* (*NAMESPACES* (rdf " (dc " (*PI* xml "version=\"1.0\"") (rdf:rdf (rdf:description (dc:creator "Karl Mustermann") (dc:title "Algebra") (dc:subject "mathematics") (dc:date " ") (dc:language "EN") (dc:description "An introduction to algebra")))) Fig. 3: The SXML document which corresponds to the XML document from gure 1 ((sxpath "rdf:rdf/rdf:description/dc:title/text()") doc) Fig. 4: Evaluating the location path from gure 2 with SXPath (here we suppose that the identier doc is bound to the SXML document from gure 3) just use a parenthesis instead of every pair of angular brackets. This makes SXML notation easy to learn, concise and easy to read, and easy to edit even by hand. SXML can thus be considered as both the external representation of the document and its internalized form at the same time. To illustrate the idea, gure 3 shows the SXML analog for the XML document from gure 1. An XML document can automatically be converted into the corresponding SXML form with a functional Scheme XML parsing framework SSAX [12]. SXPath fully conforms to XPath specication by W3 Consortium. Figure 4 illustrates how the location path considered on gure 2 can be evaluated with SXPath for the above SXML document from gure 3. Here we suppose that this document is bound to the Scheme identier doc. SXPath naturally models a node-set selected by a location path as a Scheme list, whose members are SXML nodes. Thus, example on gure 4 returns a list consisting of the single text node "Algebra". SXPath separates XPath parsing and evaluation. XML processing with SXPath consist of two sequential phases: 1. XPath location path is parsed. More precisely, SXPath is able to parse location paths with "functional" location steps in addition to standard XPath. The result of this parsing is a function which corresponds to given location path. On gure 4, this corresponds to the inner Scheme expression: (sxpath "rdf:rdf/rdf:description/dc:title/text()") 2. The constructed function is applied to the SXML document. Given a document, the function returns a node-set as a result of evaluating the location path for this document. On gure 4, this corresponds to the outer Scheme expression: ((...) doc) This approach has the following advantages: SXPath-created function may be applied repeatedly to dierent XML documents. Say, we can bind the constructed function to a Scheme identier for future references: (define f (sxpath "rdf:rdf/rdf:description/dc:title/text()"))

5 (ssax:xml->sxml (open-input-file "example.xml") '((rdf. " (dc. " Fig. 5: Converting the XML document into SXML with SSAX parser. Supposing that "example.xml" contains the document from gure 1, SSAX will produce the SXML document previously illustrated on gure 3. ((sxpath "rdf:rdf/rdf:description/dc:title/text()" '((rdf. " (dc. " doc2) Fig. 6: Evaluating the location path from gure 2 with SXPath for the SXML document with directly qualied names (here we suppose that doc2 identier is bound to the SXML document from gure 7) and then use this function several times: (f sxml-doc1) (f sxml-doc2) For example, this can be useful when we evaluate a single location path for several documents, or perform XSLT pattern matching [13]. Please note that location path parsing is performed just once. The similar strategy can be used for placing location path parsing in a non-critical part of our program (say, initialization). In this case, time-critical parts of a program will just apply already constructed functions. 3.1 SXPath and namespaces As it was discussed in our previous article [3], SXML employs the concept of namespace-ids which is quite similar to XML namespace prexes. Similarly to a prex, a namespace-id stands for a namespace URI. The distinctive feature of a namespace-id is that there is a 1-to-1 correspondence between namespace-ids and the corresponding namespace URIs. This is generally not true for XML namespace prexes and namespace URIs. A namespace-id can be thought of as just a shortcut for a namespace URI in SXML names. It is important to note that namespace-ids are chosen by the application developer, because they are introduced during XML document converting to SXML. Figure 5 illustrates this idea with a function call to SSAX parser [12]. The second argument for the function call species desired shortcuts for some particular namespace URIs. When parsing an XML document, SSAX automatically resolves XML prexes with the corresponding URIs, and then replaces some of them with namespace-ids, in accordance with the specied shortcut. Since both prex names in an XPath location path and namespace-ids in an SXML document are chosen by the application developer, SXPath considers by default that a prex in a location path denotes a namespaceid. This SXPath behavior is natural, because a namespace-id is a shortcut for a namespace URI in SXML names. Formally, if no namespace declarations are provided to sxpath function, each prex appearing in a location path is considered as the namespace-id of the same name; i.e. no prex mapping is performed. SXPath can accept namespace declarations in an optional second argument. This is illustrated by gure 6. Namespace declarations, being the list of pairs (prefix. namespace-uri), specify the mapping from prexes in the XPath location path to namespace URIs. This mapping is necessary for evaluating the XPath location path for an SXML document with directly qualied names [3], like the one shown on gure 7. 4 SXPath low-level functions Not only SXPath interface is convenient, the implementation of XPath with functional methods is itself very natural and straightforward. In this section we will give an illustration of how basic XPath concepts are

6 (*TOP* (*PI* xml "version=\"1.0\"") ( ( ( "Karl Mustermann") ( "Algebra") ( "mathematics") ( " ") ( "EN") ( "An introduction to algebra")))) Fig. 7: The SXML document with directly qualied names, which corresponds to the XML document from gure 1 (define (nodeset? x) (or (null? x) ; an empty nodeset (and (list? x) (not (symbol? (car x)))))) Fig. 8: The predicate for distinguishing a node-set from a node realized as a set of low-level functions in SXPath library. As mentioned in section 3, SXPath models XPath node-sets as Scheme lists whose members are SXML nodes. Although SXML nodes are often lists themselves, we can always distinguish a node-set from a node: if a node is a list it always has a Scheme symbol (the name of the node) as its rst member. On the contrary, a non-empty node-set obviously has its rst element being an SXML node, which can never be a Scheme symbol. The nodeset? predicate provided by the SXPath library, implements exactly this logic: it returns true for either a null list (an empty node-set) or for a list whose rst member is not a Scheme symbol. The implementation of nodeset? predicate is shown on gure 8; car is a basic Scheme function for taking the rst member of a list. As discussed in section 2, an XPath node test is used to specify the condition on nodes selected by the location step. Since the XPath Recommendation denes node test in terms of being true for some kinds of nodes, it is natural to implement a node test as a predicate which takes an SXML node and returns a boolean value depending on whether the node satises the node test. Figure 9 gives the simplied implementation for two XPath node tests considered in this paper: Function text? implements the node test text(), which accepts text nodes only. In SXML, the text node is represented as a Scheme string, so the standard Scheme predicate string? performs this task. Function ntype?? implements the node test that is true for a node with the denite name. This function (define (text? node) (string? node)) (define (ntype?? name) (lambda (node) (and (list? node) ; a text node doesn't have a name (eq? name (car node))))) Fig. 9: Implementation of some XPath node tests

7 (define (select-kids node-test) (lambda (node) (if (text? node) '() ; no children (filter node-test (cdr node))))) Fig. 10: A simplied implementation of the XPath child axis (node-join (select-kids (ntype?? 'rdf:rdf)) (select-kids (ntype?? 'rdf:description)) (select-kids (ntype?? 'dc:title)) (select-kids text?)) Fig. 11: A combination of SXPath low-level primitives, which form a function for evaluating the XPath location path from gure 2. is rst parameterized with the name, and then returns the predicate applicable to nodes: (lambda (node) (and (list? node) ; a text node doesn't have a name (eq? name (car node)))) The implementation of this predicate is obvious: a node must be a list (because text nodes don't have names at all) and its rst member (obtained by car) must be equal to name parameter. A perfect suitability of SXML as a data model for XPath is illustrated by the implementation of XPath child axis shown on gure 10. Since the axis and node test work in conjunction, SXPath designs axes as parameterized by node test predicates. When supplied the node-test predicate, select-kids produces the function which takes the SXML node to return its children: (lambda (node) (if (text? node) '() ; no children (filter node-test (cdr node))))) A text node obviously has no children, so the empty node-set is returned in this case. Otherwise (the node is a list), the node's children (selected by the basic Scheme function cdr) are ltered in accordance with the node-test predicate. Function filter preserves only those child nodes, for which the node-test predicate is true. Since SXML represents elements and attributes in the uniform way [10], a specic implementation of attribute axis is not required: in SXPath it's just a particular case of child axis. SXPath library includes several combinator functions. In particular, the node-join combinator joins several functions representing location steps into a complete location path. The implementation of node-join is routine and is not given here. Instead, on gure 11 we will consider one particular combination of already discussed low-level SXPath primitives. This combination includes four location steps, and it implements the XPath location path from gure 2. The apostrophe is used to include literal constants in Scheme code. 5 SXPath high-level functions The main function provided by the SXPath library is sxpath. We introduced this function in section 3, and here we'll discuss it in a more detail.

8 ((sxpath '(rdf:rdf rdf:description dc:title *text*)) doc) Fig. 12: Evaluating the "native" SXPath analog for the location path from gure 2 (here we suppose that the identier doc is bound to the SXML document from gure 3) ((sxpath `(rdf:rdf rdf:description,(select-kids (ntype?? 'dc:title)) *text*)) doc) Fig. 13: Evaluating the "native" SXPath representation for a location path from gure 2, with the third location step in the form of Scheme function (here we suppose that the identier doc is bound to the SXML document from gure 3) The sxpath function, given the XPath location path, parses it in accordance with XPath grammar and translates it into a combination of low-level SXPath primitives, illustrated in section 4. For example, if we recall gure 4, its inner expression (sxpath "rdf:rdf/rdf:description/dc:title/text()") will produce a function very similar to the one shown on gure 11. Low-level SXPath functions thus constitute a virtual machine into which higher-level expressions are compiled [14]. In additional to a "textual" W3C-compatible syntax for an XPath location path, the SXPath library also introduces its own "native" representation for a location path in the form of a list. In this representation, location steps are written as members of this list. The idea is illustrated by gure 12, and its inner expression (sxpath '(rdf:rdf rdf:description dc:title *text*)) will also produce a function very similar to the one on gure 11. With this "native" SXPath representation for a location path, SXPath provides a natural ability for a Scheme function to serve as a location step in a location path, since a Scheme function is a low-level representation for a location step in SXPath. To illustrate this statement, we will rewrite our example from gure 12, by representing the third location step in its explicit form as the SXPath low-level converter (gure 13). Please note that examples on gures 4, 12 and 13 have equivalent semantics. Although example on gure 13 may seem to involve unnecessary complexities, it illustrates a very important feature of SXPath. Namely, the ability to use an arbitrary Scheme function as a location step in a location path provides SXPath with virtually unlimited capabilities. In particular, this feature makes SXPath a query language, as it will be discussed in the next subsection. 5.1 SXPath as a query language XPath is dened by the W3 Consortium as a language for addressing parts of an XML document. This means, in particular, that an XPath location path cannot produce anything other than a set of nodes from the document with respect to which this location path is evaluated. SXPath, however, provides features of a query language, because SXPath allows to formulate arbitrary requests for information from XML/SXML documents and to generate arbitrary reports from it. SXPath "native" representation for a location path is an S-expression and may include arbitrary procedures dened in Scheme in addition to a set of of predened XPath primitives. For an illustration of this feature, we will modify our example location path which selects the title of the book. In accordance with Dublin Core semantics we can suppose that a book description always has exactly one title (i.e. exactly one dc:title element), so we may wish the location path to return just this title, not the node set. Then, suppose that we want this title in the form of an uppercase string. We make these actions as the fth custom step of the location path (gure 14). When evaluated, this location path will produce the string "ALGEBRA". Note that there was no "ALGEBRA" text node in the SXML document, this string was constructed as the result of the SXPath query.

9 ((sxpath `(rdf:rdf rdf:description dc:title *text*,(lambda (nodeset) (string-upcase (car nodeset))))) doc) Fig. 14: A query in SXPath (here we suppose that the identier doc is bound to the SXML document from gure 3) The ability to use Scheme functions as SXPath predicates, and SXPath selectors in Scheme functions makes SXPath a truly extensible language [14]. A user can compose SXML queries following the XPath Recommendation and at the same time rely on the full power of Scheme for custom selectors. 6 Conclusions XPath is the key language in the stack of XML technologies, and is used by many important XML languages, in particular XSLT, XPointer and XQuery. With its support for XML Namespaces, XPath can be used for selecting information from descriptions expressed in Resource Description Framework, an important technology for electronic libraries. SXML was designed with a goal of eective evaluation of XPath expressions in mind. SXPath compliant XPath implementation in functional programming language Scheme extends XPath with features of a query language and seamlessly integrates it with Scheme. SXPath/Scheme combination provides a powerful technology for XML-based digital libraries, and is especially suitable for implementation of light-weight digital libraries. References [1] XML Path Language (XPath) Version 1.0. W3C Recommendation 16 November [2] Extensible Markup Language (XML) 1.0 (Second Edition). W3C Recommendation 6 October [3] Kirill Lisovsky, Dmitry Lizorkin. Namespaces in XML and SXML. Russian Digital Libraries Journal, 2003, Vol. 6, No 3. [4] XPath Location Paths. W3 Schools. [5] Namespaces in XML. World Wide Web Consortium 14-January [6] James Clark. XML Namespaces. February 4, [7] Kiselyov O. XML and Scheme. Workshop on Scheme and Functional Programming 2000, Montreal, [8] H. Abelson, R. K. Dubving, C. T. Haynes, G. J. Rozas, N. I. Adams IV, D. P. Friedman, E. Kohlbecker, G. L. Sleete Jr., D. H. Bartley, R. Halstead, D. Oxley, G. J. Sussman, G. Brooks, C. Hanson, K. M. Pitman, M. Wand. Revised(5) Report on the Algorithmic Language Scheme. scheme-reports/r5rs-html/r5rs_toc.html [9] Oleg Kiselyov. SXML, Revision 2.5. August 9,

10 [10] Kirill Lisovskiy, Dmitry Lizorkin. SXML: an XML document as an S-expression. Russian Digital Libraries Journal, 2003, Vol. 6, No 2. [11] K. Yu. Lisovsky. XML Applications Development in Scheme. Programming and Computer Software, Vol. 28, No. 4, [12] Oleg Kiselyov. Functional XML parsing framework: SAX/DOM and SXML parsers with support for XML Namespaces and validation. September 5, [13] XSL Transformations (XSLT) Version 1.0. W3C Recommendation 16 November [14] O. Kiselyov, K.Lisovsky. XML, XPath, XSLT Implementation as SXML, SXPath and SXSLT. International Lisp Conference ILC 2002, San Francisco. October,

Managing large sound databases using Mpeg7

Managing large sound databases using Mpeg7 Max Jacob 1 1 Institut de Recherche et Coordination Acoustique/Musique (IRCAM), place Igor Stravinsky 1, 75003, Paris, France Correspondence should be addressed to Max Jacob (max.jacob@ircam.fr) ABSTRACT

More information

XML: extensible Markup Language. Anabel Fraga

XML: extensible Markup Language. Anabel Fraga XML: extensible Markup Language Anabel Fraga Table of Contents Historic Introduction XML vs. HTML XML Characteristics HTML Document XML Document XML General Rules Well Formed and Valid Documents Elements

More information

Markup Languages and Semistructured Data - SS 02

Markup Languages and Semistructured Data - SS 02 Markup Languages and Semistructured Data - SS 02 http://www.pms.informatik.uni-muenchen.de/lehre/markupsemistrukt/02ss/ XPath 1.0 Tutorial 28th of May, 2002 Dan Olteanu XPath 1.0 - W3C Recommendation language

More information

XSLT - A Beginner's Glossary

XSLT - A Beginner's Glossary XSL Transformations, Database Queries, and Computation 1. Introduction and Overview XSLT is a recent special-purpose language for transforming XML documents Expressive power of XSLT? Pekka Kilpelainen

More information

Chapter 3: XML Namespaces

Chapter 3: XML Namespaces 3. XML Namespaces 3-1 Chapter 3: XML Namespaces References: Tim Bray, Dave Hollander, Andrew Layman: Namespaces in XML. W3C Recommendation, World Wide Web Consortium, Jan 14, 1999. [http://www.w3.org/tr/1999/rec-xml-names-19990114],

More information

RDF Resource Description Framework

RDF Resource Description Framework RDF Resource Description Framework Fulvio Corno, Laura Farinetti Politecnico di Torino Dipartimento di Automatica e Informatica e-lite Research Group http://elite.polito.it Outline RDF Design objectives

More information

Data XML and XQuery A language that can combine and transform data

Data XML and XQuery A language that can combine and transform data Data XML and XQuery A language that can combine and transform data John de Longa Solutions Architect DataDirect technologies john.de.longa@datadirect.com Mobile +44 (0)7710 901501 Data integration through

More information

Deferred node-copying scheme for XQuery processors

Deferred node-copying scheme for XQuery processors Deferred node-copying scheme for XQuery processors Jan Kurš and Jan Vraný Software Engineering Group, FIT ČVUT, Kolejn 550/2, 160 00, Prague, Czech Republic kurs.jan@post.cz, jan.vrany@fit.cvut.cz Abstract.

More information

Creating and Managing Controlled Vocabularies for Use in Metadata

Creating and Managing Controlled Vocabularies for Use in Metadata Creating and Managing Controlled Vocabularies for Use in Metadata Tutorial 4 DC2004, Shanghai Library 14 October 2004 Stuart A. Sutton & Joseph T. Tennis Information School of the University of Washington,

More information

Guile Present. version 0.3.0, updated 21 September 2014. Andy Wingo (wingo@pobox.com)

Guile Present. version 0.3.0, updated 21 September 2014. Andy Wingo (wingo@pobox.com) Guile Present version 0.3.0, updated 21 September 2014 Andy Wingo (wingo@pobox.com) This manual is for Guile Present (version 0.3.0, updated 21 September 2014) Copyright 2014 Andy Wingo Permission is granted

More information

Unified XML/relational storage March 2005. The IBM approach to unified XML/relational databases

Unified XML/relational storage March 2005. The IBM approach to unified XML/relational databases March 2005 The IBM approach to unified XML/relational databases Page 2 Contents 2 What is native XML storage? 3 What options are available today? 3 Shred 5 CLOB 5 BLOB (pseudo native) 6 True native 7 The

More information

Exchanger XML Editor - Canonicalization and XML Digital Signatures

Exchanger XML Editor - Canonicalization and XML Digital Signatures Exchanger XML Editor - Canonicalization and XML Digital Signatures Copyright 2005 Cladonia Ltd Table of Contents XML Canonicalization... 2 Inclusive Canonicalization... 2 Inclusive Canonicalization Example...

More information

Department of Computer and Information Science, Ohio State University. In Section 3, the concepts and structure of signature

Department of Computer and Information Science, Ohio State University. In Section 3, the concepts and structure of signature Proceedings of the 2nd International Computer Science Conference, Hong Kong, Dec. 1992, 616-622. 616 SIGNATURE FILE METHODS FOR INDEXING OBJECT-ORIENTED DATABASE SYSTEMS Wang-chien Lee and Dik L. Lee Department

More information

Full and Complete Binary Trees

Full and Complete Binary Trees Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

XML DATA INTEGRATION SYSTEM

XML DATA INTEGRATION SYSTEM XML DATA INTEGRATION SYSTEM Abdelsalam Almarimi The Higher Institute of Electronics Engineering Baniwalid, Libya Belgasem_2000@Yahoo.com ABSRACT This paper describes a proposal for a system for XML data

More information

Symbol Tables. Introduction

Symbol Tables. Introduction Symbol Tables Introduction A compiler needs to collect and use information about the names appearing in the source program. This information is entered into a data structure called a symbol table. The

More information

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services 1995 2008 Skilltop Technology Limited. All rights reserved.

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services 1995 2008 Skilltop Technology Limited. All rights reserved. CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services 1995 2008 Skilltop Technology Limited. All rights reserved. Opening Night Course Overview Perspective Business

More information

6 3 4 9 = 6 10 + 3 10 + 4 10 + 9 10

6 3 4 9 = 6 10 + 3 10 + 4 10 + 9 10 Lesson The Binary Number System. Why Binary? The number system that you are familiar with, that you use every day, is the decimal number system, also commonly referred to as the base- system. When you

More information

Data Integration through XML/XSLT. Presenter: Xin Gu

Data Integration through XML/XSLT. Presenter: Xin Gu Data Integration through XML/XSLT Presenter: Xin Gu q7.jar op.xsl goalmodel.q7 goalmodel.xml q7.xsl help, hurt GUI +, -, ++, -- goalmodel.op.xml merge.xsl goalmodel.input.xml profile.xml Goal model configurator

More information

DTD Tutorial. About the tutorial. Tutorial

DTD Tutorial. About the tutorial. Tutorial About the tutorial Tutorial Simply Easy Learning 2 About the tutorial DTD Tutorial XML Document Type Declaration commonly known as DTD is a way to describe precisely the XML language. DTDs check the validity

More information

Extending XSLT with Java and C#

Extending XSLT with Java and C# Extending XSLT with Java and C# The world is not perfect. If it were, all data you have to process would be in XML and the only transformation language you would have to learn would XSLT. Because the world

More information

Introduction to XML Applications

Introduction to XML Applications EMC White Paper Introduction to XML Applications Umair Nauman Abstract: This document provides an overview of XML Applications. This is not a comprehensive guide to XML Applications and is intended for

More information

[Refer Slide Time: 05:10]

[Refer Slide Time: 05:10] Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

More information

Lecture 9. Semantic Analysis Scoping and Symbol Table

Lecture 9. Semantic Analysis Scoping and Symbol Table Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax

More information

Web Services Technologies

Web Services Technologies Web Services Technologies XML and SOAP WSDL and UDDI Version 16 1 Web Services Technologies WSTech-2 A collection of XML technology standards that work together to provide Web Services capabilities We

More information

Extending the Linked Data API with RDFa

Extending the Linked Data API with RDFa Extending the Linked Data API with RDFa Steve Battle 1, James Leigh 2, David Wood 2 1 Gloze Ltd, UK steven.a.battle@gmail.com 2 3 Round Stones, USA James, David@3roundstones.com Linked data is about connecting

More information

Semistructured data and XML. Institutt for Informatikk INF3100 09.04.2013 Ahmet Soylu

Semistructured data and XML. Institutt for Informatikk INF3100 09.04.2013 Ahmet Soylu Semistructured data and XML Institutt for Informatikk 1 Unstructured, Structured and Semistructured data Unstructured data e.g., text documents Structured data: data with a rigid and fixed data format

More information

Regular Expressions and Automata using Haskell

Regular Expressions and Automata using Haskell Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions

More information

12 The Semantic Web and RDF

12 The Semantic Web and RDF MSc in Communication Sciences 2011-12 Program in Technologies for Human Communication Davide Eynard nternet Technology 12 The Semantic Web and RDF 2 n the previous episodes... A (video) summary: Michael

More information

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS WP. 2 ENGLISH ONLY UNITED NATIONS STATISTICAL COMMISSION and ECONOMIC COMMISSION FOR EUROPE CONFERENCE OF EUROPEAN STATISTICIANS Work Session on Statistical Data Editing (Bonn, Germany, 25-27 September

More information

Chapter 15 Functional Programming Languages

Chapter 15 Functional Programming Languages Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,

More information

Cedalion A Language Oriented Programming Language (Extended Abstract)

Cedalion A Language Oriented Programming Language (Extended Abstract) Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically

More information

Firewall Builder Architecture Overview

Firewall Builder Architecture Overview Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.

More information

The Halting Problem is Undecidable

The Halting Problem is Undecidable 185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine

More information

Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

More information

6.3 Conditional Probability and Independence

6.3 Conditional Probability and Independence 222 CHAPTER 6. PROBABILITY 6.3 Conditional Probability and Independence Conditional Probability Two cubical dice each have a triangle painted on one side, a circle painted on two sides and a square painted

More information

Regular Languages and Finite Automata

Regular Languages and Finite Automata Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a

More information

Extensible Markup Language (XML): Essentials for Climatologists

Extensible Markup Language (XML): Essentials for Climatologists Extensible Markup Language (XML): Essentials for Climatologists Alexander V. Besprozvannykh CCl OPAG 1 Implementation/Coordination Team The purpose of this material is to give basic knowledge about XML

More information

Continued Fractions and the Euclidean Algorithm

Continued Fractions and the Euclidean Algorithm Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction

More information

Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer

Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

Application development in XML

Application development in XML Application development in XML exist-db & XQuery Alexander Czmiel 17.04.2015 What do you know by now? HTML, CSS, JavaScript to build beautiful and informative digital resources for humanities scholarship

More information

Creating a TEI-Based Website with the exist XML Database

Creating a TEI-Based Website with the exist XML Database Creating a TEI-Based Website with the exist XML Database Joseph Wicentowski, Ph.D. U.S. Department of State July 2010 Goals By the end of this workshop you will know:...1 about a flexible set of technologies

More information

High Performance XML Data Retrieval

High Performance XML Data Retrieval High Performance XML Data Retrieval Mark V. Scardina Jinyu Wang Group Product Manager & XML Evangelist Oracle Corporation Senior Product Manager Oracle Corporation Agenda Why XPath for Data Retrieval?

More information

Language Interface for an XML. Constructing a Generic Natural. Database. Rohit Paravastu

Language Interface for an XML. Constructing a Generic Natural. Database. Rohit Paravastu Constructing a Generic Natural Language Interface for an XML Database Rohit Paravastu Motivation Ability to communicate with a database in natural language regarded as the ultimate goal for DB query interfaces

More information

Object-Process Methodology as a basis for the Visual Semantic Web

Object-Process Methodology as a basis for the Visual Semantic Web Object-Process Methodology as a basis for the Visual Semantic Web Dov Dori Technion, Israel Institute of Technology, Haifa 32000, Israel dori@ie.technion.ac.il, and Massachusetts Institute of Technology,

More information

How To Program In Scheme (Prolog)

How To Program In Scheme (Prolog) The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction Next up: Numeric operators, REPL, quotes, functions, conditionals Types and values

More information

RDF y SPARQL: Dos componentes básicos para la Web de datos

RDF y SPARQL: Dos componentes básicos para la Web de datos RDF y SPARQL: Dos componentes básicos para la Web de datos Marcelo Arenas PUC Chile & University of Oxford M. Arenas RDF y SPARQL: Dos componentes básicos para la Web de datos Valladolid 2013 1 / 61 Semantic

More information

Lesson 4 Web Service Interface Definition (Part I)

Lesson 4 Web Service Interface Definition (Part I) Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs

More information

How To Understand The Theory Of Computer Science

How To Understand The Theory Of Computer Science Theory of Computation Lecture Notes Abhijat Vichare August 2005 Contents 1 Introduction 2 What is Computation? 3 The λ Calculus 3.1 Conversions: 3.2 The calculus in use 3.3 Few Important Theorems 3.4 Worked

More information

Using Object And Object-Oriented Technologies for XML-native Database Systems

Using Object And Object-Oriented Technologies for XML-native Database Systems Using Object And Object-Oriented Technologies for XML-native Database Systems David Toth and Michal Valenta David Toth and Michal Valenta Dept. of Computer Science and Engineering Dept. FEE, of Computer

More information

Last Week. XML (extensible Markup Language) HTML Deficiencies. XML Advantages. Syntax of XML DHTML. Applets. Modifying DOM Event bubbling

Last Week. XML (extensible Markup Language) HTML Deficiencies. XML Advantages. Syntax of XML DHTML. Applets. Modifying DOM Event bubbling XML (extensible Markup Language) Nan Niu (nn@cs.toronto.edu) CSC309 -- Fall 2008 DHTML Modifying DOM Event bubbling Applets Last Week 2 HTML Deficiencies Fixed set of tags No standard way to create new

More information

University of Ostrava. Reasoning in Description Logic with Semantic Tableau Binary Trees

University of Ostrava. Reasoning in Description Logic with Semantic Tableau Binary Trees University of Ostrava Institute for Research and Applications of Fuzzy Modeling Reasoning in Description Logic with Semantic Tableau Binary Trees Alena Lukasová Research report No. 63 2005 Submitted/to

More information

XML Processing and Web Services. Chapter 17

XML Processing and Web Services. Chapter 17 XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing

More information

Presentation / Interface 1.3

Presentation / Interface 1.3 W3C Recommendations Mobile Web Best Practices 1.0 Canonical XML Version 1.1 Cascading Style Sheets, level 2 (CSS2) SPARQL Query Results XML Format SPARQL Protocol for RDF SPARQL Query Language for RDF

More information

Managing XML Documents Versions and Upgrades with XSLT

Managing XML Documents Versions and Upgrades with XSLT Managing XML Documents Versions and Upgrades with XSLT Vadim Zaliva, lord@crocodile.org 2001 Abstract This paper describes mechanism for versioning and upgrding XML configuration files used in FWBuilder

More information

1 Solving LPs: The Simplex Algorithm of George Dantzig

1 Solving LPs: The Simplex Algorithm of George Dantzig Solving LPs: The Simplex Algorithm of George Dantzig. Simplex Pivoting: Dictionary Format We illustrate a general solution procedure, called the simplex algorithm, by implementing it on a very simple example.

More information

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

More information

Multiple electronic signatures on multiple documents

Multiple electronic signatures on multiple documents Multiple electronic signatures on multiple documents Antonio Lioy and Gianluca Ramunno Politecnico di Torino Dip. di Automatica e Informatica Torino (Italy) e-mail: lioy@polito.it, ramunno@polito.it web

More information

Eventia Log Parsing Editor 1.0 Administration Guide

Eventia Log Parsing Editor 1.0 Administration Guide Eventia Log Parsing Editor 1.0 Administration Guide Revised: November 28, 2007 In This Document Overview page 2 Installation and Supported Platforms page 4 Menus and Main Window page 5 Creating Parsing

More information

XMP Specification. ADOBE SYSTEMS INCORPORATED Corporate Headquarters 345 Park Avenue San Jose, CA 95110-2704 (408) 536-6000 http://www.adobe.

XMP Specification. ADOBE SYSTEMS INCORPORATED Corporate Headquarters 345 Park Avenue San Jose, CA 95110-2704 (408) 536-6000 http://www.adobe. September XMP Specification 2005 ADOBE SYSTEMS INCORPORATED Corporate Headquarters 345 Park Avenue San Jose, CA 95110-2704 (408) 536-6000 http://www.adobe.com Copyright 2000 2005 Adobe Systems Incorporated.

More information

DataDirect XQuery Technical Overview

DataDirect XQuery Technical Overview DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4

More information

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm

T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs

More information

Experiences with JSON and XML Transformations IBM Submission to W3C Workshop on Data and Services Integration October 20-21 2011, Bedford, MA, USA

Experiences with JSON and XML Transformations IBM Submission to W3C Workshop on Data and Services Integration October 20-21 2011, Bedford, MA, USA Experiences with JSON and XML Transformations IBM Submission to W3C Workshop on Data and Services Integration October 20-21 2011, Bedford, MA, USA 21 October 2011 John Boyer, Sandy Gao, Susan Malaika,

More information

Variations of Batteric V, Part 1

Variations of Batteric V, Part 1 CBV Semantics (Draft) Navit Fedida, John Havlicek, Nissan Levi, and Hillel Miller Motorola, Inc. 7700 W. Parmer Lane Austin, TX 78729 13 January 2002 Abstract A precise denition is given of the semantics

More information

8 Divisibility and prime numbers

8 Divisibility and prime numbers 8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express

More information

The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2).

The following themes form the major topics of this chapter: The terms and concepts related to trees (Section 5.2). CHAPTER 5 The Tree Data Model There are many situations in which information has a hierarchical or nested structure like that found in family trees or organization charts. The abstraction that models hierarchical

More information

Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks

Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks Ramaswamy Chandramouli National Institute of Standards and Technology Gaithersburg, MD 20899,USA 001-301-975-5013 chandramouli@nist.gov

More information

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski kbajda@cs.yale.edu

ABSTRACT 1. INTRODUCTION. Kamil Bajda-Pawlikowski kbajda@cs.yale.edu Kamil Bajda-Pawlikowski kbajda@cs.yale.edu Querying RDF data stored in DBMS: SPARQL to SQL Conversion Yale University technical report #1409 ABSTRACT This paper discusses the design and implementation

More information

Concrete uses of XML in software development and data analysis.

Concrete uses of XML in software development and data analysis. Concrete uses of XML in software development and data analysis. S. Patton LBNL, Berkeley, CA 94720, USA XML is now becoming an industry standard for data description and exchange. Despite this there are

More information

Introduction to tuple calculus Tore Risch 2011-02-03

Introduction to tuple calculus Tore Risch 2011-02-03 Introduction to tuple calculus Tore Risch 2011-02-03 The relational data model is based on considering normalized tables as mathematical relationships. Powerful query languages can be defined over such

More information

Semester Review. CSC 301, Fall 2015

Semester Review. CSC 301, Fall 2015 Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!

More information

types, but key declarations and constraints Similar CREATE X commands for other schema ëdrop X name" deletes the created element of beer VARCHARè20è,

types, but key declarations and constraints Similar CREATE X commands for other schema ëdrop X name deletes the created element of beer VARCHARè20è, Dening a Database Schema CREATE TABLE name èlist of elementsè. Principal elements are attributes and their types, but key declarations and constraints also appear. Similar CREATE X commands for other schema

More information

A LANGUAGE INDEPENDENT WEB DATA EXTRACTION USING VISION BASED PAGE SEGMENTATION ALGORITHM

A LANGUAGE INDEPENDENT WEB DATA EXTRACTION USING VISION BASED PAGE SEGMENTATION ALGORITHM A LANGUAGE INDEPENDENT WEB DATA EXTRACTION USING VISION BASED PAGE SEGMENTATION ALGORITHM 1 P YesuRaju, 2 P KiranSree 1 PG Student, 2 Professorr, Department of Computer Science, B.V.C.E.College, Odalarevu,

More information

Database trends: XML data storage

Database trends: XML data storage Database trends: XML data storage UC Santa Cruz CMPS 10 Introduction to Computer Science www.soe.ucsc.edu/classes/cmps010/spring11 ejw@cs.ucsc.edu 25 April 2011 DRC Students If any student in the class

More information

Caching XML Data on Mobile Web Clients

Caching XML Data on Mobile Web Clients Caching XML Data on Mobile Web Clients Stefan Böttcher, Adelhard Türling University of Paderborn, Faculty 5 (Computer Science, Electrical Engineering & Mathematics) Fürstenallee 11, D-33102 Paderborn,

More information

Schematron Validation and Guidance

Schematron Validation and Guidance Schematron Validation and Guidance Schematron Validation and Guidance Version: 1.0 Revision Date: July, 18, 2007 Prepared for: NTG Prepared by: Yunhao Zhang i Schematron Validation and Guidance SCHEMATRON

More information

Trust Management and Network Layer Security Protocols Matt Blaze 1 and John Ioannidis 1 and Angelos D. Keromytis 2 1 AT&T Laboratories { Research fmab,jig@research.att.com 2 Distributed Systems Labs CIS

More information

Programming Languages in Artificial Intelligence

Programming Languages in Artificial Intelligence Programming Languages in Artificial Intelligence Günter Neumann, German Research Center for Artificial Intelligence (LT Lab, DFKI) I. AI programming languages II. Functional programming III. Functional

More information

Basic Lisp Operations

Basic Lisp Operations Basic Lisp Operations BLO-1 Function invocation It is an S-expression just another list! ( function arg1 arg2... argn) First list item is the function prefix notation The other list items are the arguments

More information

Authoring dynamic websites with SXML

Authoring dynamic websites with SXML Authoring dynamic websites with SXML Peter Bex February, 2007 1 Introduction There are roughly two ways of dynamically generating websites. One way is the PHP way (or Perl, Ruby, etc). This means you simply

More information

Mathematical Induction

Mathematical Induction Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,

More information

The World Wide Web as a Distributed Object System

The World Wide Web as a Distributed Object System The World Wide Web as a Distributed Object System Travis Olds School of Computer Science The University of Adelaide SA, 5005, Australia trav@cs.adelaide.edu.au Abstract This paper considers the idea of

More information

BASI DI DATI II 2 modulo Parte II: XML e namespaces. Prof. Riccardo Torlone Università Roma Tre

BASI DI DATI II 2 modulo Parte II: XML e namespaces. Prof. Riccardo Torlone Università Roma Tre BASI DI DATI II 2 modulo Parte II: XML e namespaces Prof. Riccardo Torlone Università Roma Tre Outline What is XML, in particular in relation to HTML The XML data model and its textual representation The

More information

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh als@inf.ed.ac.

Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh als@inf.ed.ac. Pushdown automata Informatics 2A: Lecture 9 Alex Simpson School of Informatics University of Edinburgh als@inf.ed.ac.uk 3 October, 2014 1 / 17 Recap of lecture 8 Context-free languages are defined by context-free

More information

OWL based XML Data Integration

OWL based XML Data Integration OWL based XML Data Integration Manjula Shenoy K Manipal University CSE MIT Manipal, India K.C.Shet, PhD. N.I.T.K. CSE, Suratkal Karnataka, India U. Dinesh Acharya, PhD. ManipalUniversity CSE MIT, Manipal,

More information

XML-Based Software Development

XML-Based Software Development 1 XML-Based Software Development Baltasar Fernández-Manjón, Alfredo Fernández-Valmayor, Antonio Navarro, José Luis Sierra Grupo de Investigación en Ingeniería del Software e Inteligencia Artificial. Departamento

More information

9.4. The Scalar Product. Introduction. Prerequisites. Learning Style. Learning Outcomes

9.4. The Scalar Product. Introduction. Prerequisites. Learning Style. Learning Outcomes The Scalar Product 9.4 Introduction There are two kinds of multiplication involving vectors. The first is known as the scalar product or dot product. This is so-called because when the scalar product of

More information

Quiz! Database Indexes. Index. Quiz! Disc and main memory. Quiz! How costly is this operation (naive solution)?

Quiz! Database Indexes. Index. Quiz! Disc and main memory. Quiz! How costly is this operation (naive solution)? Database Indexes How costly is this operation (naive solution)? course per weekday hour room TDA356 2 VR Monday 13:15 TDA356 2 VR Thursday 08:00 TDA356 4 HB1 Tuesday 08:00 TDA356 4 HB1 Friday 13:15 TIN090

More information

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code

1 Introduction. 2 An Interpreter. 2.1 Handling Source Code 1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons

More information

ARC: appmosphere RDF Classes for PHP Developers

ARC: appmosphere RDF Classes for PHP Developers ARC: appmosphere RDF Classes for PHP Developers Benjamin Nowack appmosphere web applications, Kruppstr. 100, 45145 Essen, Germany bnowack@appmosphere.com Abstract. ARC is an open source collection of lightweight

More information

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety

More information

03 - Lexical Analysis

03 - Lexical Analysis 03 - Lexical Analysis First, let s see a simplified overview of the compilation process: source code file (sequence of char) Step 2: parsing (syntax analysis) arse Tree Step 1: scanning (lexical analysis)

More information

2) Write in detail the issues in the design of code generator.

2) Write in detail the issues in the design of code generator. COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage

More information

Integrating and Exchanging XML Data using Ontologies

Integrating and Exchanging XML Data using Ontologies Integrating and Exchanging XML Data using Ontologies Huiyong Xiao and Isabel F. Cruz Department of Computer Science University of Illinois at Chicago {hxiao ifc}@cs.uic.edu Abstract. While providing a

More information

Building the Tower of Babel: Converting XML Documents to VoiceXML for Accessibility 1

Building the Tower of Babel: Converting XML Documents to VoiceXML for Accessibility 1 Building the Tower of Babel: Converting XML Documents to VoiceXML for Accessibility 1 G. Gupta, O. El Khatib, M. F. Noamany, H. Guo Laboratory for Logic, Databases, and Advanced Programming Department

More information

Irrational Numbers. A. Rational Numbers 1. Before we discuss irrational numbers, it would probably be a good idea to define rational numbers.

Irrational Numbers. A. Rational Numbers 1. Before we discuss irrational numbers, it would probably be a good idea to define rational numbers. Irrational Numbers A. Rational Numbers 1. Before we discuss irrational numbers, it would probably be a good idea to define rational numbers. Definition: Rational Number A rational number is a number that

More information

Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata

Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata Standard for Information and Image Management Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata Association for Information and

More information

XML and Data Management

XML and Data Management XML and Data Management XML standards XML DTD, XML Schema DOM, SAX, XPath XSL XQuery,... Databases and Information Systems 1 - WS 2005 / 06 - Prof. Dr. Stefan Böttcher XML / 1 Overview of internet technologies

More information