Type-Safe Programming for the Semantic Web
Graph-based data formats are a flexible way of representing data – semantic data models in particular – where the schema is part of the data, and have become more popular and had some commercial success in recent years. Semantic data models are also the basis for the Semantic Web – a Web of data governed by open standards in which computer programs can freely access the data provided.
This book is about checking the correctness of programs that can access semantic data. Although the flexibility of semantic data models is one of their greatest strengths, it can lead programmers to accidentally fail to account for unintuitive edge cases, leading to run-time errors or unintended side-effects during program execution. A program may even run for a long time before such an error occurs and the program crashes. Providing a type system is an established methodology for proving the absence of run-time errors in programs without requiring execution. The book defines type systems that can detect and avoid such run-time errors based on schema languages available for the Semantic Web. Using the Web Ontology Language (OWL) and its theoretic underpinnings i.e. description logics, and the Shapes Constraint Language (SHACL) in particular, the book defines systems that can provide type-safe data access to semantic data graphs. The book is divided into 3 parts: Part I contains an introduction and preliminaries; Part II covers type systems for the Semantic Web; and Part III includes related work and conclusions.