23,068 research outputs found
The ERA of FOLE: Superstructure
This paper discusses the representation of ontologies in the first-order
logical environment FOLE (Kent 2013). An ontology defines the primitives with
which to model the knowledge resources for a community of discourse (Gruber
2009). These primitives, consisting of classes, relationships and properties,
are represented by the ERA (entity-relationship-attribute) data model (Chen
1976). An ontology uses formal axioms to constrain the interpretation of these
primitives. In short, an ontology specifies a logical theory. This paper is the
second in a series of three papers that provide a rigorous mathematical
representation for the ERA data model in particular, and ontologies in general,
within the first-order logical environment FOLE. The first two papers show how
FOLE represents the formalism and semantics of (many-sorted) first-order logic
in a classification form corresponding to ideas discussed in the Information
Flow Framework (IFF). In particular, the first paper (Kent 2015) provided a
"foundation" that connected elements of the ERA data model with components of
the first-order logical environment FOLE, and this second paper provides a
"superstructure" that extends FOLE to the formalisms of first-order logic. The
third paper will define an "interpretation" of FOLE in terms of the
transformational passage, first described in (Kent 2013), from the
classification form of first-order logic to an equivalent interpretation form,
thereby defining the formalism and semantics of first-order logical/relational
database systems (Kent 2011). The FOLE representation follows a conceptual
structures approach, that is completely compatible with Formal Concept Analysis
(Ganter and Wille 1999) and Information Flow (Barwise and Seligman 1997)
Relational Parametricity and Separation Logic
Separation logic is a recent extension of Hoare logic for reasoning about
programs with references to shared mutable data structures. In this paper, we
provide a new interpretation of the logic for a programming language with
higher types. Our interpretation is based on Reynolds's relational
parametricity, and it provides a formal connection between separation logic and
data abstraction
Using parametric set constraints for locating errors in CLP programs
This paper introduces a framework of parametric descriptive directional types
for constraint logic programming (CLP). It proposes a method for locating type
errors in CLP programs and presents a prototype debugging tool. The main
technique used is checking correctness of programs w.r.t. type specifications.
The approach is based on a generalization of known methods for proving
correctness of logic programs to the case of parametric specifications.
Set-constraint techniques are used for formulating and checking verification
conditions for (parametric) polymorphic type specifications. The specifications
are expressed in a parametric extension of the formalism of term grammars. The
soundness of the method is proved and the prototype debugging tool supporting
the proposed approach is illustrated on examples.
The paper is a substantial extension of the previous work by the same authors
concerning monomorphic directional types.Comment: 64 pages, To appear in Theory and Practice of Logic Programmin
A Type Language for Calendars
Time and calendars play an important role in databases,
on the Semantic Web, as well as in mobile computing. Temporal data
and calendars require (specific) modeling and processing tools. CaTTS
is a type language for calendar definitions using which one can model
and process temporal and calendric data. CaTTS is based on a "theory
reasoning" approach for efficiency reasons. This article addresses type
checking temporal and calendric data and constraints. A thesis underlying
CaTTS is that types and type checking are as useful and desirable
with calendric data types as with other data types. Types enable
(meaningful) annotation of data. Type checking enhances efficiency and
consistency of programming and modeling languages like database and
Web query languages
Proving Correctness and Completeness of Normal Programs - a Declarative Approach
We advocate a declarative approach to proving properties of logic programs.
Total correctness can be separated into correctness, completeness and clean
termination; the latter includes non-floundering. Only clean termination
depends on the operational semantics, in particular on the selection rule. We
show how to deal with correctness and completeness in a declarative way,
treating programs only from the logical point of view. Specifications used in
this approach are interpretations (or theories). We point out that
specifications for correctness may differ from those for completeness, as
usually there are answers which are neither considered erroneous nor required
to be computed.
We present proof methods for correctness and completeness for definite
programs and generalize them to normal programs. For normal programs we use the
3-valued completion semantics; this is a standard semantics corresponding to
negation as finite failure. The proof methods employ solely the classical
2-valued logic. We use a 2-valued characterization of the 3-valued completion
semantics which may be of separate interest. The presented methods are compared
with an approach based on operational semantics. We also employ the ideas of
this work to generalize a known method of proving termination of normal
programs.Comment: To appear in Theory and Practice of Logic Programming (TPLP). 44
page
- …