Minimal type inference for Linked Data consumers

Gabriel Ciobanu, Ross Horne*, Vladimiro Sassone

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

6 Citations (Scopus)

Abstract

We provide an introduction to the Web of Linked Data from the perspective of a Web developer who would like to build an application using Linked Data. We identify a weakness in the development stack, namely a lack of domain specific scripting languages for designing background processes that consume Linked Data. To address this weakness, we design a scripting language with a simple but appropriate type system. In our proposed architecture, some data is consumed from sources outside of the control of the system and some data is held locally. Stronger type assumptions can be made about the local data than about external data, hence our type system mixes static and dynamic typing. We prove that our type system is algorithmic; and can therefore be used for minimal type inference. We also prove subject reduction and type safety results, which justify our claim that our language is statically type checked and does not throw basic runtime type errors. Throughout, we relate our work to the W3C recommendations that drive Linked Data, so that our syntax is accessible to Web developers.

Original languageEnglish
Pages (from-to)485-504
Number of pages20
JournalJournal of Logical and Algebraic Methods in Programming
Volume84
Issue number4
Early online date10 Jun 2015
DOIs
Publication statusPublished - 31 Jul 2015

Funding

We thank the reviewers and participants at WWV2013, who's comments helped us develop our results. The first and second authors were supported by a grant from the Romanian National Authority for Scientific Research , CNCS-UEFISCDI, project number PN-II-ID-PCE-2011-3-0919 .

Keywords

  • Linked Data
  • operational semantics
  • type systems

Fingerprint

Dive into the research topics of 'Minimal type inference for Linked Data consumers'. Together they form a unique fingerprint.

Cite this