Programming and Debugging with Semantically Lifted States

We propose a novel integration of programming languages with semantic technologies. We create a semantic reflection mechanism by a direct mapping from program states to RDF knowledge graphs. This mechanism enables several promising novel applications including the use of semantic technology, including reasoning, for debugging and validating the sanity of program states, and integration with external knowledge graphs. Additionally, by making the knowledge graph accessible from the program, method implementations can refer to state semantics rather than objects, establishing a deep integration between programs and semantics. This allows the programmer to use domain knowledge formalized as, e.g., an ontology directly in the program’s control flow. We formalize this integration by defining a core object based programming language that incorporates these features. A prototypical interpreter is available for download.

[1]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[2]  Reiner Hähnle,et al.  Formal modeling and analysis of railway operations with active objects , 2018, Sci. Comput. Program..

[3]  Steffen Staab,et al.  The Essence of Functional Programming on Semantic Data , 2017, ESOP.

[4]  Boris Motik,et al.  HermiT: An OWL 2 Reasoner , 2014, Journal of Automated Reasoning.

[5]  Reiner Hähnle,et al.  ABS: A Core Language for Abstract Behavioral Specification , 2010, FMCO.

[6]  Vítor Estêvão Silva Souza,et al.  OOC-O: A Reference Ontology on Object-Oriented Code , 2019, ER.

[7]  Achilles Kameas,et al.  Modeling the Knowledge Domain of the Java Programming Language as an Ontology , 2012, ICWL.

[8]  Hector J. Levesque,et al.  GOLOG: A Logic Programming Language for Dynamic Domains , 1997, J. Log. Program..

[9]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[10]  Anni-Yasmin Turhan,et al.  Give Inconsistency a Chance: Semantics for Ontology-Mediated Verification , 2020, Description Logics.

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

[12]  Diego Calvanese,et al.  Actions and Programs over Description Logic Knowledge Bases: A Functional Approach , 2011 .

[13]  Simon A. Dobson,et al.  Sapphire: Generating Java Runtime Artefacts from OWL Ontologies , 2011, CAiSE Workshops.

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

[15]  Jens Claßen,et al.  Verification of Knowledge-Based Programs over Description Logic Actions , 2015, IJCAI.

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

[17]  Peter Haase,et al.  Optique: Zooming in on Big Data , 2015, Computer.

[18]  Ronald Fagin,et al.  Knowledge-based programs , 1997, Distributed Computing.

[19]  Ross Horne,et al.  A Verified Algebra for Linked Data , 2011, FOCLASA.

[20]  Anni-Yasmin Turhan,et al.  Ontology-Mediated Probabilistic Model Checking , 2019, IFM.

[21]  Ronald Fagin,et al.  Knowledge-based programs , 1995, PODC '95.

[22]  Ross Horne,et al.  Operational Semantics for SPARQL Update , 2011, JIST.

[23]  Ingrid Chieh Yu,et al.  Geological Multi-scenario Reasoning , 2019, NIK.

[24]  Hans Tompits,et al.  Combining answer set programming with description logics for the Semantic Web , 2004, Artif. Intell..

[25]  Steffen Staab,et al.  Type Checking Program Code Using SHACL , 2019, SEMWEB.

[26]  Andreas Harth,et al.  Rule-based Programming of User Agents for Linked Data , 2018, LDOW@WWW.