Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
teaching:infoh509 [2015/06/02 13:57]
svsummer
teaching:infoh509 [2019/05/08 11:45]
gdejaege [Practical Sessions]
Line 1: Line 1:
 ====== INFO-H-509 : XML and Web Technologies ====== ====== INFO-H-509 : XML and Web Technologies ======
  
-<note warning>​The written exam will be held on wednesday, 17 june from 8h00-11h30 in room SUB4.136 (as advertised on Gehol: http://​gehol.ulb.ac.be/​gehol/#​!/​Course/​INFOH509/​35-41) </​note>​ +<note important>​If you are a VUB studetn ​following this course, please ​register by filling in [[https://​docs.google.com/​forms/​d/​e/​1FAIpQLSfKvLyims3KrWWVJN7T5PQJK9X5uJNLQ04cl8Kd1932RNxj6A/​viewform|this ​online ​form]] by February 22 at the latest. It allows the course responsibles to contact you when that is needed.</​note>​
- +
- +
-<note important>​If you are following this course, please ​fill out [[https://​docs.google.com/​forms/​d/​17JUkVrTJ_Lx1fKNCa4YZjbLNTddstEVcQXSa0PrvKwQ/​viewform|this form]] ​**by friday 27 february ​at the latest**. It allows the course responsibles to get an overview of the students participating in the course, and contact you should this be necessary.</​note>​+
  
 ===== GENERAL INFORMATION ===== ===== GENERAL INFORMATION =====
Line 21: Line 18:
  
   * **Course responsible**:​ [[http://​code.ulb.ac.be/​code.people.php?​id=992|Stijn Vansummeren]] (Bâtiment U, étage 4, local UB4.125, Campus Solbosch)   * **Course responsible**:​ [[http://​code.ulb.ac.be/​code.people.php?​id=992|Stijn Vansummeren]] (Bâtiment U, étage 4, local UB4.125, Campus Solbosch)
-  * **Assistant**:​ [[mwaumans@ulb.ac.be|Michael Waumans]] +  * **Assistant**:​ [[gilles.dejaegere@ulb.ac.be|Gilles Dejaegere]] 
  
 ==== Organisation ==== ==== Organisation ====
Line 29: Line 26:
     * **Attention!** The lecture slides are only made available for the convenience of the students but do **not** suffice as syllabus! Please be sure to aquire a copy of the book!     * **Attention!** The lecture slides are only made available for the convenience of the students but do **not** suffice as syllabus! Please be sure to aquire a copy of the book!
     * Evaluation is by written exam (closed book) and project work.     * Evaluation is by written exam (closed book) and project work.
- 
-==== Schedule ===== 
-    * The course schedule is available [[infoh509:​horaire|on-line]]. ​ 
-Please be sure to check regularly for updates. 
  
 ===== COURSE PLAN ===== ===== COURSE PLAN =====
- 
 ==== Lecture 1: Introduction and Web Architecture === ==== Lecture 1: Introduction and Web Architecture ===
  
-In this first lecture ({{:​teaching:​infoh509:​1-intro-webarch.pdf|slides}}) we have (1) overviewed ​the content and objectives of the course and (2) discussed ​the history of the Web and its overall architecture (URIs, resources, representations). In particular we have looked at the working of the HTTP protocol and gave a very brief overview of HTML and CSS.+In this first lecture ({{:​teaching:​infoh509:​1-intro-webarch.pdf|slides}}) we (1) overview ​the content and objectives of the course and (2) discuss ​the history of the Web and its overall architecture (URIs, resources, representations). In particular we have looked at the working of the HTTP protocol and gave a very brief overview of HTML and CSS.
  
 **Required reading:​** ​ **Required reading:​** ​
Line 46: Line 38:
   * [[http://​www.jmarshall.com/​easy/​http/​|HTTP made really easy]] (Note that this document uses an outdated interpretation of the term "​resource"​)   * [[http://​www.jmarshall.com/​easy/​http/​|HTTP made really easy]] (Note that this document uses an outdated interpretation of the term "​resource"​)
   * The book chapter 1 (pages 3-31) and chapter 8 (pages 343-361).   * The book chapter 1 (pages 3-31) and chapter 8 (pages 343-361).
-  * The {{:​teaching:​infoh509:​1-intro-webarch.pdf|slides}}+  * The {{:​teaching:​infoh509:​1-intro-webarch.pdf|slides}}
  
-==== Lecture 2: XML and XPath ===+==== Lecture 2: XMLXPath, and JSON ===
  
 Lecture 2 has introduced XML and XPath in depth. ​ Lecture 2 has introduced XML and XPath in depth. ​
Line 59: Line 50:
  
 ==== Lecture 3: XML Schema Languages: DTDs === ==== Lecture 3: XML Schema Languages: DTDs ===
- +Lecture 3 has introduced (1) the motivation behind XML Schema Languages, (2) syntax and
-Lecture 3 has introduced +
-(1) the motivation behind XML Schema Languages, (2) syntax and+
 semantics of DTDs, and (3) regular expressions. semantics of DTDs, and (3) regular expressions.
  
-See pages 92-113 in the book as well as the +See pages 92-113 in the book as well as the {{:​teaching:​infoh509:​3-xml_schemas.pdf|corresponding slides}}.
-{{:​teaching:​infoh509:​3-xml_schemas.pdf|corresponding slides}}.+
  
 ==== Lecture 4: XML Schema Languages: XSDs === ==== Lecture 4: XML Schema Languages: XSDs ===
  
-In Lecture ​3, we have discussed the limitations of DTDs. Some of these+In Lecture ​4, we have discussed the limitations of DTDs. Some of these
 limitations are lifted by XML Schema, whose syntax and semantics were studied during lecture 4. limitations are lifted by XML Schema, whose syntax and semantics were studied during lecture 4.
  
 See pages 113-158 in the book as well as the See pages 113-158 in the book as well as the
 {{:​teaching:​infoh509:​4-xml_schemas_part_2.pdf|corresponding slides}}. {{:​teaching:​infoh509:​4-xml_schemas_part_2.pdf|corresponding slides}}.
 +
 +The example XML Schema files used during the theory lecture is also {{:​teaching:​infoh509:​xml-schema-demo.zip|available for download.}}
  
 ==== Project Assignment 1: XML Schema Definition ==== ==== Project Assignment 1: XML Schema Definition ====
Line 87: Line 77:
 See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted). ​ See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted). ​
  
-<note tip>You can use these simple ​ {{:​teaching:​infoh509:​validationtools.zip|validation tools}} (written in Java) to help check if your example documents conform toyour XSD. Unzip the file, and then use either ''​java -jar DTDValidator.jar <​xmldoc>''​ or ''​java -jar XSDValidator.jar <​schemadoc>​ <​xmldoc>''​ to validate. The third jar file contais ​the source code, should you be interested.</​note>​+<note tip>You can use these simple ​ {{:​teaching:​infoh509:​validationtools.zip|validation tools}} (written in Java) to help check if your example documents conform toyour XSD. Unzip the file, and then use either ''​java -jar DTDValidator.jar <​xmldoc>''​ or ''​java -jar XSDValidator.jar <​schemadoc>​ <​xmldoc>''​ to validate. The third jar file contains ​the source code, should you be interested.</​note>​
  
 ==== Lecture 5: Transforming XML documents with XSLT === ==== Lecture 5: Transforming XML documents with XSLT ===
Line 109: Line 99:
 contributes the remaining 14/20 points. ​ contributes the remaining 14/20 points. ​
  
-See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted)+See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted. ​
  
 <note tip>The zip file above contains a XSLT transformation tool. You can use ''​java -jar xslt-tool.jar <​xslt-file>​ <​inputfile>​ <​outputfile>''​ to run it. </​note>​ <note tip>The zip file above contains a XSLT transformation tool. You can use ''​java -jar xslt-tool.jar <​xslt-file>​ <​inputfile>​ <​outputfile>''​ to run it. </​note>​
- 
  
 ==== Lecture 6: Querying XML documents with XQuery === ==== Lecture 6: Querying XML documents with XQuery ===
Line 132: Line 121:
 contributes the remaining 14/20 points. ​ contributes the remaining 14/20 points. ​
  
-See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted). ​+See the full assignment for related dealine(s), what the solution should entail, and to whom it should be submitted).
  
 ==== Lecture 7: RDF and RDF schema==== ==== Lecture 7: RDF and RDF schema====
Line 139: Line 128:
  
 **Required reading:** **Required reading:**
-The {{:​teaching:​infoh509:​7-rdf.pdf|lecture slides}}, the [[http://​www.w3.org/​TR/​rdf11-primer/​|RDF 1.1 Primer]], and these [[http://cs.ulb.ac.be/owncloud/​public.php?​service=files&​t=08191ea41e23c45f9e9f2d411a65d544|course notes]] (password protected).+The {{:​teaching:​infoh509:​7-rdf.pdf|lecture slides}}, the [[http://​www.w3.org/​TR/​rdf11-primer/​|RDF 1.1 Primer]], and these [[https://davinci.ulb.ac.be/index.php/​s/​LRC7JqZrJPkpQKP|course notes]] (password protected).
  
-**Recommended reading:**+**Recommended ​(but optional) ​reading:**
 In addition, it is recommended to read the [[http://​www.w3.org/​TR/​turtle/​|RDF 1.1. Turtle Syntax]] specification (sections 1-3) and the [[http://​www.w3.org/​TR/​2014/​REC-rdf-syntax-grammar-20140225/​|RDF 1.1. XML Syntax]]specification (only section 2) to get the best overview of the RDF serialization formats. In addition, the {{:​teaching:​infoh509:​semantic-web.pdf|original semantic web article}} ​ is a good read to get an insight into the original motivation for the semantic web. In addition, it is recommended to read the [[http://​www.w3.org/​TR/​turtle/​|RDF 1.1. Turtle Syntax]] specification (sections 1-3) and the [[http://​www.w3.org/​TR/​2014/​REC-rdf-syntax-grammar-20140225/​|RDF 1.1. XML Syntax]]specification (only section 2) to get the best overview of the RDF serialization formats. In addition, the {{:​teaching:​infoh509:​semantic-web.pdf|original semantic web article}} ​ is a good read to get an insight into the original motivation for the semantic web.
  
- +==== Lecture 8: OWL ====
-==== Lecture 8: OWL====+
  
 In lecture 8 we introduce the Web Ontology Language (OWL), which adds advanced inferencing capabilities to RDF.  In lecture 8 we introduce the Web Ontology Language (OWL), which adds advanced inferencing capabilities to RDF. 
  
 **Required reading:** **Required reading:**
-The {{:​teaching:​infoh509:​8-owl.pdf|lecture slides}} and these [[http://cs.ulb.ac.be/owncloud/​public.php?​service=files&​t=2c13abb273376242ba831a285aa6b623|course notes]] (password protected).+The {{:​teaching:​infoh509:​8-owl.pdf|lecture slides ​on owl}} and these [[https://davinci.ulb.ac.be/index.php/​s/​FpfYNZNzPLp8rF6|course notes]] (password protected).
  
-==== Lecture 9: SPARQL ====+==== Lecture 9: SPARQL ​and RESTfull Web Services ​====
  
-In lecture ​ we have introduced and illustrated the main constructs of SPARQL, a query language for RDF. (We have also discussed a large part of lecture 10 below.)+In Lecture ​9 we have introduced and illustrated the main constructs of SPARQL, a query language for RDF. 
  
-**Required reading:​** +In addition we have (1) discussed the history of (Web) Services; (2) discussed the 3 main API styles of Web Services; ​and (3) illustrated RESTful Web Services by means of an example.
-The {{:​teaching:​infoh509:​9-sparql.pdf|lecture slides}} and these [[http://​cs.ulb.ac.be/​owncloud/​public.php?​service=files&​t=51782ffdf61c877290b4f16983eda957|course notes]] ​(password protected) [section 7.1.9 and further is not required reading].+
  
-==== Lecture 10: RESTfull Web Services ==== 
  
-In lecture 10 we have (1) discussed the history of (Web) Services; (2) discussed the 3 main API styles of Web Services; and (3) illustrated RESTful Web Services by means of an example. 
  
 **Required reading:** **Required reading:**
-The {{:​teaching:​infoh509:​10-restws.pdf|lecture slides}} and these [[http://cs.ulb.ac.be/owncloud/​public.php?​service=files&​t=470e18252f942922c27c3b11d944ce6f|handouts]] (password protected).+The {{:​teaching:​infoh509:​9-sparql.pdf|lecture slides on sparql}} and these [[https://​davinci.ulb.ac.be/​index.php/​s/​wKREcCmtmn6xx9x|course notes]] (password protected) [section 7.1.9 and further is not required reading]. 
 + 
 +The {{:​teaching:​infoh509:​10-restws.pdf|lecture slides}} and these [[https://davinci.ulb.ac.be/index.php/​s/​9NL7w2ZBXmcWFi3|handouts]] (password protected).
  
-==== Lecture ​11: Big Web Services (WS-*) ====+==== Lecture ​10: Big Web Services (WS-*) ====
  
 In this lecture ({{:​teaching:​infoh509:​11-bigws.pdf|slides}}) we have introduced the Big-WS* technology stack. In particular, we have studied SOAP version 1.2, WSDL version 2.0, and highlighted the differences with WSDL version 1.1. In this lecture ({{:​teaching:​infoh509:​11-bigws.pdf|slides}}) we have introduced the Big-WS* technology stack. In particular, we have studied SOAP version 1.2, WSDL version 2.0, and highlighted the differences with WSDL version 1.1.
Line 172: Line 159:
 **Required reading:** **Required reading:**
  
-These [[http://cs.ulb.ac.be/owncloud/​public.php?​service=files&​t=3ccf1a18d455f334a4ea1a6d8525d2fa|handouts on SOAP and WSDL]] (password-protected).+These [[https://davinci.ulb.ac.be/index.php/​s/​nKXTyrEBnFaZr2m|handouts on SOAP and WSDL]] (password-protected).
 The [[http://​www.w3.org/​TR/​soap12-part0/​|W3C SOAP version 1.2 Primer]] The [[http://​www.w3.org/​TR/​soap12-part0/​|W3C SOAP version 1.2 Primer]]
 The [[http://​www.w3.org/​TR/​soap12-part0/​|W3C WSDL version 2.0 Primer]] (it suffices to read only section 2). The [[http://​www.w3.org/​TR/​soap12-part0/​|W3C WSDL version 2.0 Primer]] (it suffices to read only section 2).
 +===== Practical Sessions =====
 +
 +  * {{:​teaching:​infoh509:​infoh509_01_1617.zip|Practical session 1}}
 +You can test your Xpath query in the folder containing saxon9he.jar with the following command:
 +java -cp "​saxon9he.jar"​ net.sf.saxon.Query -s:"<​sourcefile>"​ -qs:'<​query>'​ -o:"<​outputfile>"​
 +  * {{:​teaching:​infoh509_tp2_1819.zip|Practical session 2}}
 +  * {{:​teaching:​infoh509:​tp03.zip|Practical session 3}}
 +  * {{:​infoh509:​tp04.zip|Practical session 4}}
 +  * {{:​teaching:​infoh509:​tp05.zip|Practical session 5}}
 +  * {{:​teaching:​infoh509:​tp_06.zip|Practical session 6}}
 +
 +
  
-==== Lecture 12: Data Analytics at Web Scale ==== 
  
-In this lecture ({{:​teaching:​infoh509:​12-dataanalytics.pdf|slides}}) we have looked at architectures for processing large volumes of data, including the Google/​Hadoop distributed file system and the Map/Reduce programming model. 
 ===== References ===== ===== References =====
   * A. Moller and M. Schwartzbach. //​[[http://​www.brics.dk/​ixwt/​|An Introduction to XML and Web Technologies]]//​. Addison-Wesley,​ 2006. ISBN-13: 978-0-321-26966-9   * A. Moller and M. Schwartzbach. //​[[http://​www.brics.dk/​ixwt/​|An Introduction to XML and Web Technologies]]//​. Addison-Wesley,​ 2006. ISBN-13: 978-0-321-26966-9
Line 188: Line 185:
   * T. Berners-Lee,​ J. Hendler, and O. Lassila. //​[[http://​www.dcc.uchile.cl/​~cgutierr/​cursos/​IC/​semantic-web.pdf| The Semantic Web]]//. Scientific American, 2001.   * T. Berners-Lee,​ J. Hendler, and O. Lassila. //​[[http://​www.dcc.uchile.cl/​~cgutierr/​cursos/​IC/​semantic-web.pdf| The Semantic Web]]//. Scientific American, 2001.
   * F. Malona and E. Miller. //​[[http://​www.w3.org/​TR/​rdf-primer/​|RDF Primer]]//. W3C, 2004.   * F. Malona and E. Miller. //​[[http://​www.w3.org/​TR/​rdf-primer/​|RDF Primer]]//. W3C, 2004.
- 
-===== Practical Sessions ====== 
-[[teaching:​infoh509/​practical|Practical sessions]] 
 
teaching/infoh509.txt · Last modified: 2020/04/09 14:38 by svsummer