The Essence of Functional Programming on Semantic Data

Semantic data fuels many different applications, but is still lacking proper integration into programming languages. Untyped access is error-prone. Mapping approaches cannot fully capture the conceptualization of semantic data. In this paper, we present $$\lambda _{DL}$$, a typed $$\lambda $$-calculus with constructs for operating on semantic data. This is achieved by the integration of description logics into the $$\lambda $$-calculus for both typing and data access or querying. The language is centered around several key design principles, in particular: 1 the usage of semantic conceptualizations as types, 2 subtype inference for these types, and 3 type-checked query access to the data by both ensuring the satisfiability of queries as well as typing query results precisely. The paper motivates the use of a designated type system for semantic data and it provides the theoretic foundation for the integration of description logics as well as the core formal definition of $$\lambda _{DL}$$ including a proof of type safety.

[1]  Colin Runciman,et al.  Haskell and XML: generic combinators or type-based translation? , 1999, ICFP '99.

[2]  Ralf Lämmel,et al.  Mappings Make Data Processing Go 'Round , 2005, GTTSE.

[3]  Boris Motik,et al.  Query Answering for OWL-DL with Rules , 2004, SEMWEB.

[4]  Diego Calvanese,et al.  Reasoning on UML class diagrams , 2005, Artif. Intell..

[5]  Wolfram Schulte,et al.  The essence of data access in Cω: the power is in the dot! , 2005 .

[6]  Gabriel Ciobanu,et al.  Descriptive Types for Linked Data Resources , 2014, Ershov Memorial Conference.

[7]  Pierre Senellart,et al.  Provenance Circuits for Trees and Treelike Instances , 2015, ICALP.

[8]  Philip A. Bernstein,et al.  Mapping XSD to OO Schemas , 2009, ICOODB.

[9]  Ralf Lämmel,et al.  Revealing the X/O Impedance Mismatch - (Changing Lead into Gold) , 2006, SSDGP.

[10]  Gavin M. Bierman,et al.  First-Class Relationships in an Object-Oriented Language , 2005, ECOOP.

[11]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[12]  Guilin Qi,et al.  Knowledge Base Revision in Description Logics , 2006, JELIA.

[13]  Michael Hanus,et al.  The Integration of Functions into Logic Programming: From Theory to Practice , 1994, J. Log. Program..

[14]  Steffen Staab,et al.  ag ogo : Automatic Generation of Ontology APIs , 2009 .

[15]  Steffen Staab,et al.  Semantic Web Application Development with LITEQ , 2014, International Semantic Web Conference.

[16]  Diego Calvanese,et al.  Ontology-based Database Access , 2007, SEBD.

[17]  Steffen Staab,et al.  APIs à gogo: Automatic Generation of Ontology APIs , 2009, 2009 IEEE International Conference on Semantic Computing.

[18]  J. Carroll,et al.  Jena: implementing the semantic web recommendations , 2004, WWW Alt. '04.

[19]  Gabriel Ciobanu,et al.  Minimal type inference for Linked Data consumers , 2015, J. Log. Algebraic Methods Program..

[20]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.

[21]  Sean Bechhofer,et al.  The OWL API: A Java API for OWL ontologies , 2011, Semantic Web.

[22]  Denny Vrandecic,et al.  Zhi# - OWL Aware Compilation , 2011, ESWC.

[23]  Elizabeth J. O'Neil,et al.  Object/relational mapping 2008: hibernate and the entity data model (edm) , 2008, SIGMOD Conference.

[24]  Giuseppe Castagna,et al.  CDuce: an XML-centric general-purpose language , 2003, ACM SIGPLAN Notices.

[25]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[26]  Domenico Beneventano,et al.  Description logics for semantic query optimization in object-oriented database systems , 2003, TODS.

[27]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[28]  Ralf Hinze,et al.  Typed Contracts for Functional Programming , 2006, FLOPS.

[29]  Juan Chen,et al.  Secure distributed programming with value-dependent types , 2011, Journal of Functional Programming.

[30]  Markus Krötzsch,et al.  Wikidata , 2014, Commun. ACM.

[31]  Peter Buneman,et al.  Database programming in Machiavelli—a polymorphic language with static type inference , 1989, SIGMOD '89.

[32]  Kenji Takeda,et al.  Themes in information-rich functional programming for internet-scale data sources , 2013, DDFP '13.

[33]  Zdenek Kouba,et al.  Ontology-Driven Information System Design , 2012, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[34]  Karl Crary,et al.  Intensional polymorphism in type-erasure semantics , 2002, J. Funct. Program..

[35]  Benjamin C. Pierce,et al.  XDuce: A statically typed XML processing language , 2003, TOIT.

[36]  Sebastian Rudolph,et al.  Fixed-Domain Reasoning for Description Logics , 2016, Description Logics.

[37]  Martín Abadi,et al.  Dynamic typing in polymorphic languages , 1995, Journal of Functional Programming.

[38]  Fernando Silva Parreiras Automatic Generation of Ontology APIs , 2012 .

[39]  Volker Linnemann,et al.  SWOBE - embedding the semantic web languages RDF, SPARQL and SPARUL into java for guaranteeing type safety, for checking the satisfiability of queries and for the determination of query result types , 2009, SAC '09.

[40]  Sebastian Rudolph,et al.  Reasonable highly expressive query languages , 2015 .

[41]  Julian Padget,et al.  Automatic Mapping of OWL Ontologies into Java , 2004, SEKE.

[42]  Gavin M. Bierman,et al.  The Essence of Data Access in Comega , 2005, European Conference on Object-Oriented Programming.

[43]  Premkumar T. Devanbu,et al.  Static checking of dynamically generated queries in database applications , 2004, Proceedings. 26th International Conference on Software Engineering.

[44]  Eyal Oren,et al.  ActiveRDF: Embedding Semantic Web data into object-oriented languages , 2008, J. Web Semant..