Type Checking Program Code using SHACL (Extended Version)

07/01/2019
by   Martin Leinberger, et al.
0

It is a strength of graph-based data formats, like RDF, that they are very flexible with representing data. To avoid run-time errors, program code that processes highly-flexible data representations exhibits the difficulty that it must always include the most general case, in which attributes might be set-valued or possibly not available. The Shapes Constraint Language (SHACL) has been devised to enforce constraints on otherwise random data structures. We present our approach, Type checking using SHACL (TyCuS), for type checking code that queries RDF data graphs validated by a SHACL shape graph. To this end, we derive SHACL shapes from queries and integrate data shapes and query shapes as types into a λ-calculus. We provide the formal underpinnings and a proof of type safety for TyCuS. A programmer can use our method in order to process RDF data with simplified, type checked code that will not encounter run-time errors (with usual exceptions as type checking cannot prevent accessing empty lists).

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/12/2022

Specializing Scope Graph Resolution Queries: Extended Edition

To warrant programmer productivity, type checker results should be corre...
research
01/26/2022

A Dependent Dependency Calculus (Extended Version)

Over twenty years ago, Abadi et al. established the Dependency Core Calc...
research
08/08/2019

Manifest Contracts with Intersection Types

We present a manifest contract system PCFvΔH with intersection types. A ...
research
09/12/2019

Towards Gradually Typed Capabilities in the Pi-Calculus

Gradual typing is an approach to integrating static and dynamic typing w...
research
07/12/2021

ProGS: Property Graph Shapes Language (Extended Version)

Property graphs constitute data models for representing knowledge graphs...
research
09/12/2019

Which of My Transient Type Checks Are Not (Almost) Free?

One form of type checking used in gradually typed language is transient ...
research
11/24/2021

CircuitFlow: A Domain Specific Language for Dataflow Programming (with appendices)

Dataflow applications, such as machine learning algorithms, can run for ...

Please sign up or login with your details

Forgot password? Click here to reset