CSc 8711, Databases and the Web (Spring 2023)

Class time: Friday 12.30 PM to 3.55 PM
Location: Classroom South 428

Instructional Staff

Instructor: Raj Sunderraman (1 PP, Room 629); Email: raj@gsu.edu; Office hours: Wednesday 3.00 pm to 5:00 pm
TA: Mr. Han Jinkun (25 PP, 7th Floor Conference Room)
Email: hjinkun1@student.gsu.edu; Office Hours: Monday 2.00-3.00 pm and 4.00-5.00 pm

Course Materials

V. Graph Database (neo4j)

neo4j Slides
neo4j
Download neo4j Community Server
neo4j Get Started
neo4j cypher query language
py2neo (Sample Code)
Project 6 (Due: April 26, 2023 - Wednesday) (Handin under assignment 6 - counts towards final exam)

IV. Semantic Web

Slides/Notes:
Motivating Example, RDF-1, RDF-2, RDFS, OWL-1, Semantic Web Chapter from Textbook
Python API for RDF Example
SPARQL Tutorial
SPARQL Examples
DL: Interpretation Example, DL: Tableau Example, Harry Potter solution, Penguin Problem solution

Readings
Scientific American Article
Ontology Tutorial
Metcalfe's Law, Web 2.0 and Semantic Web

Software
GraphDB
Apache Jena Project
Protege (RDF/OWL Editor...)
Python API for RDF (rdflib 5.0.0)

Project 5 (Due: April 19, 2023 - Wednesday)

III. JSON

Slides/Notes/Code:
JSON Parsing in Python
JSON Schema (derived from Understanding JSON Schema), Linked List: Instance, Schema
JSONiq Part I, JSONiq Part II (derived from JSONiq Book), JSONiq Query Examples
MongoDB, Python access to MongoDB (pymongo), Classroom App using MongoDB

Software:
Python package for JSON Schema Validation
rumbledb.org (powered by Apache Spark)
MongoDB Community Server, PyMongo

Useful Links:
Online JSON Schema Validator
https://www.jsoniq.org/
MongoDB Documentation
PyMongo Tutorial

Project 3 (Due: March 8, 2023 - Wednesday)
Project 4 (Due: March 22, 2023 - Wednesday for first 3 problems. STRICT deadline)

II. XML

Slides:
XML Basics, DTD, XML Schema XPath, XQuery, XSL, XSL-with-parameters

Software:
BaseX, XML Formatter, Python lxml,lxml sample code, EditX Community Edition

Useful Links:
XPath and XQuery Functions and Operators, XQuery FunctX Library, Lab Manual XML Chapter

Project 2 (Due: February 15, 2023 - Wednesday)

I. Modern Web Application Development (GraphQL/REST Web Services, HTML5/Javascript/Ajax, MySQL)

Modern Web Application Development using APIs (REST vs GraphQL)
swagger.io (OpenAPI)
Python Flask Tutorial
GraphQL in Python
MySQL Tutorial, Another MySQL Tutorial, Python-MySQL Connector
GSU Classroom Search Using REST API, Using GraphQL
Project 1 (Due: February 1, 2023 - Wednesday) (Handin under assignment 1)