Web Application Development
syllabus (aka the WADe film)
Resources available on this document only complement and do not substitute the students' pro-active involvement during the classes.
Week #1
-
Presentation: Introduction & Administrative Info
-
Lecture: Web Application Development: Concepts & Vision
Web, architecture, social Web, semantic Web, data, modeling, standards, vision -
Resources: Tim Berners-Lee: The Next Web, The Rationale for Semantic Technologies
-
Lab: Recapitulating Web Technologies + discussions regarding WADe project requirements
Week #2
-
Lecture: Service-based Web Application Development. REST
Web, service, SOA, REST, HTTP, representation, resource, API, examples -
Demo: HTTP Cats, PokéAPI, Star Wars API, Star Trek API, The Metropolitan Museum of Art Collection API, APIfootball, malloc As A Service, RESTful API in a PAC, Open Banking Tracker, Azure Bot Service (Microsoft), Data Mining Hacker News
-
Case-studies (WADe @ FII): HTTP/1.1 vs HTTP/2 vs HTTP/3, Choosing the "right" format for data returned by a REST API, Choreography versus Orchestration
-
Resources: SOA: Principles of Service Orientation, On Designing and Deploying Internet-Scale Services, SOA (InfoQ); REST: Learn REST: A RESTful Tutorial, REST for an Hour, Designing a True REST State Machine, REST State Machine Revisited, API Technical and Data Standards (gov.uk), REST API Guidelines (Microsoft)
-
Tools: Awesome REST, Public APIs
-
Lab: Designing & using REST APIs – think about Serialization Formats
Week #3
-
Lecture: Web Application Development: Architectural Aspects
Web, engineering, architecture, microservice, microfrontend, OpenAPI, serverless -
Demo: Web engineering: Software Engineering at Google, Building a WebApp from A-Z: The Caucus Technology Stack, GitLab Architecture, Slack Architecture, Stack Overflow: The Architecture; technology stacks: Todo-Backend, Tech Stacks, Real Life Architectures; microservices: Sock Shop: A Microservices Demo Application, Microservices @ Netflix, Modern Banking in 1500 Microservices; microfrontends: Feed Me; serverless: OpenFaaS Architecture, Exploring Serverless Use-Cases
-
Resources: Web engineering: Software Architecture Guide, Architecture Playbook, aim42, The 12-Factor App, Contemporary Front-end Architectures; REST API design: API Stylebook, Web APIs: From Start to Finish, OpenAPI Initiative, OpenAPI-Driven API Design (Swagger); microservices: How to break a Monolith into Microservices, Microservice Architecture, Reactive Microservices, Microservices @ DZone; microfrontends: Microfrontend Architecture, Microfrontends; serverless: Serverless Architectures, Serverless Status
-
Tools: APIs Guru, OpenAPI Tools, Awesome Microservices, Awesome Serverless; AWS case-study: The Open Guide to Amazon Web Services
-
Lab: Web application architectures, (micro)services & serverless + discussion on WADe project proposals
Week #4
-
Lecture: Web Application Development: Architectural Aspects (continued)
Web, architecture, API security, OAuth, JWT, GraphQL, SPA, PWA, CORS, JAMstack, use cases -
Demo: GraphQL: Rapid Development with GraphQL Microservices (Netflix), GitHub GraphQL API, Shopify Storefront GraphQL API, Using GraphQL for High-Performing Mobile Applications (Shopify), PizzaQL
-
Case-studies (WADe @ FII): GraphQL 101, Invoking a GraphQL API in Node.js, Architecture & Implementation of a Single Page Application
-
Resources: OAuth: An OAuth 2.0 Introduction for Beginners, OAuth 2 Simplified; GraphQL: GraphQL, The Fullstack Tutorial for GraphQL, GraphQL News; others: Single Page Application, Progressive Web Apps (MDN), Cross-Origin Resource Sharing (MDN), CORS Tutorial (Auth0), JAMstack, JAMstacked, The Web's Next Transition, Application Integration, Code Catalog
-
Tools: JSON Web Tokens; GraphQL: Awesome GraphQL, Public GraphQL APIs; others: SPA Open Source Projects, Awesome JAMstack, The New Dynamic
-
Lab: Web application architectures, (micro)services & serverless
Week #5
-
Lecture: Aspects regarding Data and Knowledge Modeling
model, conceptualization, tagging, folksonomy, use cases, Web, science -
Demo: conceptualization: What is Computation?, Cognitive Bias, Museum of Obsolete Media, Translating 100 Languages (Facebook), Text Layout
-
Resources: conceptualization: A New Look at the Semantic Web, Understanding Data, Information, Knowledge and Their Inter-Relationships; human language: A guide to NLP, Tagging
-
Tools: jq (An Introduction to jq), Miller, Pandoc
-
Lab: Data Modeling in HTML
-
Tutorial: Data Modeling in HTML: Schema.org HTML5 Microdata
Web, model, HTML, annotation, microdata, schema.org, examples -
Demo: Schema.org Markup for Emails, Personas and UsabilityTest Schema Extensions, Opportunities & Challenges for the Tourism Industry, Add review to Goodreads from Schema.org markup, Google Structured Data
-
Resources: Bots vs Browsers, Getting Started with Schema.org using Microdata, The future of the Web, isn't the Web, Schema.org. Structured Data
-
Tools: Schema.org Markup Validator, Structured Data Sniffer (OpenLink), Rich Results Test (Google), Awesome Web Crawler, Scrapinghub
-
Week #6
-
Lecture: Data Modeling in RDF (Resource Description Framework)
Web, model, RDF, data, annotation, vocabulary, JSON-LD, examples -
Demo: RDF assertions (
.zip
archive, 72K), DCMI, JSON-LD in the wild -
Case-studies (WADe @ FII): RDF processing in Python, JSON-LD processing in Java, JS, and Python, JSON-LD in JS and C#
-
Resources: The Future of the Web: From Strings to Things, Semantic Social Web, RDF Primer (W3C), JSON-LD, FAIR Principles
-
Tools: Visual Studio Code extensions for RDF et al., RDF Sketch Editor, rdfEditor, JSON-LD Playground, JSON-LD Libraries
-
Lab: Data Modeling in HTML – exercises: create a RDF model for open data regarding the local public transportation [RO], Google alternatives, popular tech stacks, Web application vulnerabilities, food facts (provide also the equivalent schema.org or RDFa constructs to be included into HTML documents as JSON-LD)
-
Tutorial: Data Modeling in HTML: RDFa
Web, model, HTML, data, annotation, RDF, RDFa, vocabulary, tools, examples -
Resources: RDFa—Linked Data in HTML, 2022 Web Almanac: Structured Data (HTTP Archive), Web Data Commons
-
Tools: RDFa Libraries
-
Week #7
-
Lecture: RDF Data Management. Accessing RDF Data via SPARQL
Web, RDF, data, management, triple store, SHACL, SPARQL, examples -
Demo: SHACL examples (
.zip
archive, 2K), SPARQL queries (.zip
archive, 52K) – case-studies: SPARQL posts on Bob DuCharme's blog, Pokémon Knowledge Graph Management, RDF & SPARQL (Wolfram) + a full example: Creating an Application Using the British National Bibliography -
Case-studies (WADe @ FII): Processing RDF constructs in JS, Practical usages for Quadstore and its support for SPARQL, Using Amazon Neptune
-
Resources: Triplestores 101, Validating RDF, SPARQL by Example, RML Generic Mapping Language, A Survey of RDF Stores & SPARQL Engines for Querying Knowledge Graphs, SPARQL.club, DB-Engines Ranking of RDF Stores
-
Tools: RDF storage: Amazon Neptune, Blazegraph (practical examples), BrightstarDB, Fluree (SPARQL documentation), OntoText GraphDB (real-life usage), MarkLogic (tutorial), OpenLink Virtuoso (SPARQL use-cases), Stardog; RDF processing: Apache Jena, ARC2, dotNetRDF, Eclipse RDF4J, RDF JavaScript Libraries, Redland; RDF conversion: EasyRdf, Triplr, Tarql; RDF visualization: Sgvizler, d3sparql.js, rdfpuml; SPARQL endpoints: DBpedia, Wikidata Query (tutorial + various examples), Bibliothèque Nationale de France, Nomisma (examples), EU Open Data Portal, MeSH; SHACL: SHACL Playground, SHACL Play!, SHACL API
-
Lab: Student technical presentations + RDF and SPARQL experiments with YASGUI; consider also prefix.cc
Week #8
-
No regular classes – project preparation
Week #9
-
Lecture: Architecture of RDF-based Applications. Linked Data
Web, RDF, data, application, architecture, development, LOD, LDP, principles, examples -
Demo: Using Wikidata to Generate Better Artwork, dokieli, Scholia, SPARQL Anything, Semantic MediaWiki, Full-stack Linked Data: Lessons from Building an RDF Web Application, From Sensor Data Streams to Linked Streaming Data, Linked Data + Blockchain, Benchmarking the Efficiency of RDF-based Access for Blockchain Environments
-
Case-studies: DBpedia, Wikidata (Introduction to Wikidata for Librarians), Use Cases @ data.europe.eu, SemOpenAlex, Human Associations in the Semantic Web, IMGpedia, Linked Brain Data, LinkedGeoData, A Comparative Study of State-of-The-Art Linked Data Visualization Tools
-
Case-studies (WADe @ FII): Querying Linked Data Fragments with Comunica, SIGMA
-
Resources: Towards 5-Star Data, Why 5-Star Data?, Providing Linked Data, Linked Data: Evolving the Web into a Global Data Space, Linked Data Patterns, An Introduction to LDP, Linked Data Fragments, Linked Data-as-a-Service, On a Web of Data Streams, Collaborative Data Patterns
-
Tools: Simple Linked Data Deployment Tutorial – using RDF Turtle, Simple Linked Data Deployment Tutorial – using JSON-LD, grlc, Wikibase, CKAN, LDP Implementations, Solid Project, Linked Data Fragments Software, Open Semantic Search
-
Lab: No regular classes – national holidays
Week #10
-
Lecture: Modeling Vocabularies, Taxonomies, and Thesauri with RDF Schema and SKOS
Web, RDF, model, controlled vocabulary, taxonomy, thesaurus, RDF Schema, SKOS, inference -
Demo: RDF Schema + SKOS (
.zip
archive, 18K), Extracting RDF data models from Wikidata, SPARQL full-text Wikipedia searching and Wikidata subclass inferencing, Transform data into knowledge with PoolParty Semantic Suite and Amazon Neptune (Amazon) -
Case-studies: Getty Vocabularies, Public Vocabularies, Rijksmuseum Controlled Vocabularies, Social Semantic Web Thesaurus, EU Vocabularies, NASA Conceptual Models, UNESCO Thesaurus, MultiWiBi: The Multilingual Wikipedia Bitaxonomy Project, A Primer on Converting Analysis Results Data to RDF Data Cubes using Free and Open Source Tools
-
Case-studies (WADe @ FII): TemaTres: deployment & usage, Processing taxonomies and thesauri in C# and Java (source-code)
-
Resources: What is RDF Schema?, What else can I do with RDF Schema?, Taxonomy management with SKOS, A (Partial) Taxonomy of Machine Learning Features, Metadata Registry
-
Tools: iQvoc, SKOSMOS, SKOS Play (practical usage: Visualize PoolParty project data), TemaTres, Reasonator
-
Lab: Student technical presentations + Knowledge modeling with RDF Schema and SKOS – exercises: create RDF-based taxonomies + thesauri by using ACM Computing Classification System, European Multilingual Thesaurus on Health Promotion, GEMET, Intellectual Property Subject Thesaurus, Music Styles, REEEP Climate Smart Thesaurus
Week #11
-
Lecture: Specifying Ontologies in OWL (Web Ontology Language)
Web, model, knowledge, ontology, OWL, class, property, individual, restriction -
Demo: Knowledge modeling via OWL (
.zip
archive, 98K) + YAGO (video presentation), FoodOn, The Music Ontology, Human Phenotype Ontology, Financial Industry Business Ontology, Land Library Data Model, MarineTLO, Haystack Tagging Ontology, BabelNet, lemon, Lexvo, UK Parliament Ontologies, gist (Semantic Arts) -
Case-studies (WADe @ FII): PersonasOnto, Semantic Clothing Ontology, OWL-Time
-
Resources: Knowledge Graphs, Ontology Development 101: A Guide to Creating Your First Ontology, Classification of Knowledge Organization Systems with Wikidata, Semantic Web Semantics vs. Vector Embedding Machine Learning Semantics, Ontologies & Cultural Heritage, Big Think Small Screen
-
Tools: ontology editing/modeling: Protégé (wiki), WebProtégé (details), Fluent Editor; ontology visualization: OWLGrEd, LODE, Ontodia; ontology processing: OWL API, Apache Jena Ontology API + Jena CLI tools, Horned OWL, Scowl, OWL API for iOS; ontology collections: DBpedia Archivo, AberOWL, BARTOC, BioPortal
Week #12
-
Lecture: Specifying Ontologies via OWL 2. Description Logics. Reasoning
Web, model, knowledge, ontology, OWL, formalism, logics, DL, reasoning, inference -
Demo: OWL DL Reasoning (
.zip
archive, 8K), SPAR Ontologies, ML Schema, Zebra Puzzle, Towards Ontology Based Event Processing, Representing Judicial Interpretations, RDF Inferencing In Action, SPARQL Reasoning & Inference, NASA's Knowledge Graph, Scaling Knowledge Access and Retrieval at Airbnb, Inference-based Creation of Synthetic 3D Content with Ontologies -
Case-studies (WADe @ FII): OWL-based Modeling of RPG Games, Tutorial on using OWL API, Reasoning with Apache Jena, Stardog Reasoning, Semantic Recommendations with MarkLogic, Reasoning Support provided by OpenLink Virtuoso (source code)
-
Resources: OWL 2 & SWRL Tutorial, OWL 2 Reference Card, Manchester Family History Advanced OWL Tutorial, A Description Logic Primer, Complexity of Reasoning in DL, How Does a Reasoner Work?, Explanation in OWL, Reasoning over SPARQL, Book of Proof
-
Tools: Cooking the Semantic Web with the OWL API, Protégé Plugin Library; reasoners: Konclude, RDF::Reasoner, Openllet, owlrl, SANSA Stack OWL API, Whelk, SPARQL-DL API, other OWL DL reasoners; reasoning support in RDF stores: Apache Jena, Blazegraph, Franz AllegroGraph, OpenLink Virtuoso, Oracle Database RDF Graph Developer's Guide, Stardog
-
Lab: Knowledge modeling in OWL
Week #13
-
Lecture: Ontology Engineering: Knowledge Management. Methodologies and Design Patterns
Web, model, knowledge, ontology, engineering, methodology, design patterns, examples -
Demo: UNDO: the United Nations System Document Ontology, The African Wildlife Ontology Tutorial Ontologies, A Purchase-To-Pay Ontology for Enabling Semantic Invoices
-
Case-studies (WADe @ FII): Database Management Systems Ontology (demo)
-
Resources: An Introduction to Ontology Engineering, Ontologies for the Modern Age, SAMOD, A Software Engineering Approach to Ontology Building, Crowd-based Ontology Engineering
-
Tools: VOWL, Wikidata Graph Builder, DBpedia Archivo
-
Lab: Knowledge modeling in OWL + Student technical presentations + Q&As regarding project preparation
Week #14
-
Lecture: Ontology Engineering: Knowledge Management. Methodologies and Design Patterns – continued
Web, model, knowledge, ontology, engineering, methodology, design patterns, examples -
Demo: Realizing an RDF-based Information Model for a Manufacturing Company, LoSe ODP – An Ontology Design Pattern for Logistics Services, RDFChess, CodeOntology: RDF-ization of Source Code
-
Resources: Ontology Design Patterns, A Tutorial on Modular Ontology Modeling with Ontology Design Patterns
-
Lecture: Ontology Engineering: Ontology Alignment. Pragmatic Uses and Perspectives
Web, model, knowledge, ontology, engineering, alignment, matching, merging, rules, case studies -
Resources: Large-Scale Ontology Matching: State-of-the-Art Analysis, Towards a Definition of Knowledge Graphs, A Review of the Semantic Web Field (2021), A Survey of the First 20 Years of Research on Semantic Web and Linked Data
-
Tools: Active Ontology Alignment Tools, Alignment API, Alignment
-
Lab: WADe hackathon #2 (from Friday, 16 December, 16:00 to Saturday, 17 December, 16:00 – online)
Week #14
-
Lecture: Ontology Engineering: Ontology Alignment. Pragmatic Uses and Perspectives – continued
Web, model, knowledge, ontology, engineering, alignment, matching, merging, rules, case studies -
Demo: How To Build A Customer 360 Knowledge Graph for FinTech, IKEA's Knowledge Graph, Knowledge Graphs in the Fight against COVID-19, A Knowledge-Graph Platform for Newsrooms, Here's Why Investigative Reporters Need to Know Knowledge Graphs, Building The LinkedIn Knowledge Graph, Building a Semantic Recommendation Engine (MarkLogic), Linked Open Data for Halal Food Products, Linking OpenStreetMap with Knowledge Graphs, Querying Knowledge Graphs in Natural Language
-
Resources: Knowledge Representation & Reasoning: From Foundations to Products (slides), Large Scale Semantic Integration of Linked Data, Towards a Sentient Web
-
Tools: LinkedDataHub, EYE, Semantic Analytics Stack
-
Lab: Q&As regarding project preparation
Remarks
-
To properly access the PDF files, you can use a free software PDF reader.
-
Please, consider these presentations – available under the terms of the Creative Commons Attribution-NonCommercial-ShareAlike license – as work in progress.