Inductive representations of RDF graphs

RDF forms the basis of the semantic web technology stack. It is based on a directed graph model where nodes and edges are identified by URIs. Occasionally, such graphs contain literals or blank nodes. The existential nature of blank nodes complicates the graph representation.In this paper we propose a purely functional representation of RDF graphs using a special form of inductive graphs called inductive triple graphs. We employ logical variables to represent blank nodes. This approach can be implemented in any functional programming language such as Haskell and Scala. We propose a purely functional representation of RDF graphs.We present two implementations in Haskell and Scala.We outline an algebra of RDF graphs with common operations like mapping, folding, or merging.We demonstrate the potential advantages of an inductive representation of RDF graphs.We outline some possible applications such as parallel programming among others.

[1]  Johan Jeuring,et al.  Inductive Triple Graphs: A Purely Functional Approach to Represent RDF , 2013, GKR.

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

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

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

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

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

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

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

[9]  Mark Davis,et al.  Tags for Identifying Languages , 2009, RFC.

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

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

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

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

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

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

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

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

[18]  Valeri Kuznecov Merging Monads and Folds for Functional Programming , 2004 .

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

[20]  Johann Eder,et al.  Logic and Databases , 1992, Advanced Topics in Artificial Intelligence.

[21]  Chris Reade,et al.  Elements of functional programming , 1989, International computer science series.