Inductive Triple Graphs: A Purely Functional Approach to Represent RDF

RDF is one of the cornerstones of the Semantic Web. It can be considered as a knowledge representation common language based on a graph model. In the functional programming community, inductive graphs have been proposed as a purely functional representation of graphs, which makes reasoning and concurrent programming simpler. In this paper, we propose a simplified representation of inductive graphs, called Inductive Triple Graphs, which can be used to represent RDF in a purely functional way. We show how to encode blank nodes using existential variables, and we describe two implementations of our approach in Haskell and Scala.

[1]  Adam Chlipala Parametric higher-order abstract syntax for mechanized semantics , 2008, ICFP 2008.

[2]  F. Patel-Schneider,et al.  Programming Languages for the Semantic Web , 2011 .

[3]  Martin Erwig,et al.  Inductive graphs and functional graph algorithms , 2001, J. Funct. Program..

[4]  Jeremy J. Carroll,et al.  Resource description framework (rdf) concepts and abstract syntax , 2003 .

[5]  Claudio Gutiérrez,et al.  Bipartite Graphs as Intermediate Model for RDF , 2004, SEMWEB.

[6]  Martin Erwig,et al.  Functional programming with graphs , 1997, ICFP '97.

[7]  Martin J. Dürst,et al.  Internationalized Resource Identifiers (IRIs) , 2005, RFC.

[8]  Koen Claessen,et al.  Typed Logical Variables in Haskell , 2001, ACM SIGPLAN Symposium/Workshop on Haskell.

[9]  Bruno C. d. S. Oliveira,et al.  Functional programming with structured graphs , 2012, ICFP.

[10]  Jeff Z. Pan,et al.  Resource Description Framework , 2020, Definitions.

[11]  Maarten M. Fokkinga,et al.  Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire , 1991, FPCA.

[12]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[13]  Martin Erwig,et al.  Fully Persistent Graphs - Which One To Choose? , 1997, Implementation of Functional Languages.

[14]  Lora Aroyo,et al.  The Semantic Web - ISWC 2011 - 10th International Semantic Web Conference, Bonn, Germany, October 23-27, 2011, Proceedings, Part I , 2011, SEMWEB.

[15]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[16]  Peter F. Patel-Schneider,et al.  Integrity Constraints for Linked Data , 2011, Description Logics.

[17]  Werner Kluge,et al.  Implementation of Functional Languages , 1996, Lecture Notes in Computer Science.

[18]  Jeffrey M. Bradshaw,et al.  Applying KAoS Services to Ensure Policy Compliance for Semantic Web Services Workflow Composition and Enactment , 2004, SEMWEB.

[19]  Axel Polleres,et al.  On Blank Nodes , 2011, SEMWEB.

[20]  Tim Sheard,et al.  Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space) , 1996, POPL '96.