XML Path Language (XPath) and its functional implementation SXPath
|
|
- Randolph Hawkins
- 7 years ago
- Views:
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
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 informationXML: 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 informationMarkup 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 informationXSLT - 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 informationChapter 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 informationRDF 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 informationData 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 informationDeferred 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 informationCreating 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 informationGuile 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 informationUnified 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 informationExchanger 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 informationDepartment 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 informationFull 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 informationName: 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 informationXML 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 informationSymbol 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 informationCST6445: 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 information6 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 informationData 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 informationDTD 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 informationExtending 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 informationIntroduction 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]
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 informationLecture 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 informationWeb 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 informationExtending 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 informationSemistructured 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 informationRegular 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 information12 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 informationestatistik.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 informationChapter 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 informationCedalion 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 informationFirewall 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 informationThe 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 informationMoving 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 information6.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 informationRegular 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 informationExtensible 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 informationContinued 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 informationStatic 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 informationIntroduction 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 informationApplication 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 informationCreating 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 informationHigh 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 informationLanguage 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 informationObject-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 informationHow 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 informationRDF 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 informationLesson 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 informationHow 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 informationUsing 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 informationLast 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 informationUniversity 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 informationXML 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 informationPresentation / 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 informationManaging 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 information1 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 informationCHAPTER 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 informationMultiple 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 informationEventia 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 informationXMP 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 informationDataDirect 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 informationT-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 informationExperiences 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 informationVariations 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 information8 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 informationThe 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 informationApplication 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 informationABSTRACT 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 informationConcrete 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 informationIntroduction 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 informationSemester 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 informationtypes, 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 informationA 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 informationDatabase 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 informationCaching 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 informationSchematron 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 informationTrust 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 informationProgramming 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 informationBasic 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 informationAuthoring 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 informationMathematical 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 informationThe 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 informationBASI 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 informationPushdown 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 informationOWL 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 informationXML-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 information9.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 informationQuiz! 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 information1 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 informationARC: 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 informationRegular 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 information03 - 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 information2) 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 informationIntegrating 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 informationBuilding 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 informationIrrational 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 informationStandard 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 informationXML 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