Declarative Programming for Linked Data
Description
The goal of this course is to give students an introduction to declarative programming for linked data. Last two decades have seen the growing adoption of internet-connected devices which has resulted in an enormous release of data on a continuous basis. Handling of such enormous data from these interconnected devices requires a paradigm shift in our approach to programming.
The course begins with an overview of the commonly used procedural programming languages and their limitations. Understanding data from interconnected devices requires an understanding of graphs, which forms the basis of linked data. A detailed study on various algorithms, particularly focusing on graphs will be done. We will then take a look at building and deploying Web 2.0 and Web 3.0 projects based on programming languages like Ruby, and the different ways by which data can be produced and made available for external use. Finally, we will take a look at how linked data can be stored and queried to extract knowledge and obtain interesting insights.
Topics
- Declarative programming: from procedural languages to declarative languages
- Algorithms: manipulation of lists, graphs, subraphs, graph traversal algorithms, graph reachability, graph patterns, graph isomorphism, reasoning
- Web 2.0 and Web 3.0
- Functional programming for the web: Ruby, Clojure
- Linked Open Data
- Graph Databases
- Declarative languages for Graph Databases: SPARQL, Open Cypher, GraphQL
Evaluation
- Practical sessions on algorithms, graph databases and query languages
- Study of recent research articles and preparing a survey report.
- Project
- Written exam
Instructors
- Oscar CARRILLO
- John SAMUEL
- Grégory MOREL
