IFF Language

First-order  

Incomplete

 


Overview

Tuples

For any set A, a tuple t of A-elements is a collection of (possibly duplicate) A-elements that are indexed by natural numbers. The indexing elements of t form a closed interval of natural numbers [0, n] = arity(tÍ Natno called the arity of t. The number n is called the valence of t, and denoted valence(t). More precisely, a tuple t is a pair consisting of a natural number valence(tΠNatno called the valence of t and a map (function) projector(t) arity(t® A called the projector of t. We use the exponential set notation t Î Aarity(t) for the set of tuples of a particular arity. If A[0, n] is defined to be the set of A-tuples with arity A[0, n], then the collection of all A-tuples is the disjoint union tuple(A) = ∑n A[0, n]. Although tuples are actually maps, we often use the tuple notation t = (tx)xÎarity(t) for an individual tuple. The notion of tuple allows us to define a notion that will play an important role in what follows – that of a language.

Language

An ontological language L is a hypergraph; that is, a triple

L = átyp.ent(L), typ.rel(L), typñ

consisting of

  • a set of entity types typ.ent(L),
  • a set of relation types typ.rel(L), and
  • a signature map typ : typ.rel(L® tuple(typ.ent(L)).

An alternate definition may be more convenient. An ontological language is a triple

L = áent(L), rel(L), {0, 1, …, n, …}ñ

consisting of

  • a set of entity types ent(L),
  • a set of relation types rel(L), and
  • a partial map n : rel(L® ent(L) for each natural number n Î À, where

n(ρ)

=

typ(ρ)n, for n < val(ρ)

 

 

undefined otherwise

Model

A ontological model A = áent(A), rel(A), ñ is either a hypergraph of classifications or a classification of hypergraphs. It is a two dimensional structure consisting of

o       a hypergraph of instances inst(A) = áinst.ent(A), inst.rel(A), instñ;

o       a hypergraph of types typ(A) = átyp.ent(A), typ.rel(A), typñ;

o       an entity classification ent(A) = áinst.ent(A), typ.ent(A), entñ;

o       a relation classification rel(A) = áinst.rel(A)typ.rel(A), relñ; and

o       a tuple classification projection = áinsttypñ : rel(A tuple(ent(A)).

Classification projections are a morphism for classifications with covariant functions – versus the contravariant functions in the definition of an infomorphism.

Entity = ent(A)

Í

typ.ent(L)

Relation = rel(A)

Í

typ.rel(L)

Individual = indiv(A)

Í

inst.ent(A)

Record = rec(A)

Í

inst.rel(A)

 

 

Core Classes

Core classes are classes central to the conceptual model of the Information Flow Framework. In this conceptual model there are, in general, two kinds of core classes: specification classes and representation classes.

 

 

 

 

 

Specification classes correspond to what is ordinarily understood to be the core or base ontology. See for example the CycL KERNEL KB and the SUO-KIF Appendix B - Structural Ontology. Some examples of specification classes are the following: Type, Individual, Relation, Natno, signature, classification and subtype. Specification classes might also be called basic classes, since this is where an ontology begins.

Representation classes (which include specification classes) are the classes needed for the representation of ontologies in the Information Flow Framework.

Specification classes of a language

o       Natno

The set of natural numbers is the indexing class for the signatures of relations. It needs only the ordinal nature of the natural numbers.

o       Entity

This is the set of all entity types specified in a language. It provides the base for the set of all entity types represented in a language.

o       Relation

This is the set of all relation types specified in a language. It provides the base for the set of all relation types represented in a language.

o       signature

This basic relation represents the signature of all the relation types specified in a language in terms of all the entity types specified in the language.

Representation classes of a language

o       typ.ent(L)

This is the set of all the entity types represented in a language. The set typ.ent(L) contains the set Entity as a subset.

o       typ.rel(L)

This is the set of all the relation types represented in a language. The set typ.rel(L) contains the set Relation as a subset.

typ.ent(L) and typ.rel(L) are either specified at the base or generated during various limit/colimit constructions on languages. These types could have one of several forms: a basic specified type, a tagged type of a disjoint union, a quotient type based on an invariance, etc. 

o       sign.typ

This relation represents the signature of all the relation types represented in a language in terms of all the entity types represented in the language. The relation sign.typ contains the relation signature as a subrelation.

Specification classes of a model

o       Individual

This is the set of all entity instances specified in a language. It provides the base for the set of all entity instances represented in a language. The set Individual = indiv(A) is often called the universal domain. Elements of indiv(A) are called individual designators. Individual designators, thought of as identifiers for individuals, represent either objects or data values. A locator represents an object: a marker “‘ISBN‑0‑521‑58386‑1’, an indexical “you” or a name “‘K. Jon Barwise’”. A data value is represented as a literal: a string “xyz”, a number “‘3.14159’”, a date “‘1776/07/04’”, etc.

o       Record

This is the set of all relation instances specified in a language. It provides the base for the set of all relation instances represented in a language. Elements of the set Record = rec(A) are called records or tuples.

o       argument

This basic relation represents the argument of all the records specified in a language in terms of all the individuals specified in the language.

o       classification

This basic relation represents the sum of two subtypes – the classification of all the individuals by entity type, and the classification of all the records by relation type.

Representation classes of a model

o       inst.ent(A)

This is the set of all the entity instances represented in a language. The set inst.ent(A) contains the set Individual as a subset.

o       inst.rel(A)

This is the set of all the relation instances represented in a language. The set inst.rel(A) contains the set Record as a subset.

o       sign.inst

This relation represents the signature of all the relation instances represented in a language in terms of all the entity instances represented in the language. The relation sign.inst contains the relation argument as a subrelation.

o       class.ent

This relation represents the classification of all the entity instances represented in a language in terms of all the entity types represented in the language. The relation class.ent contains as a subrelation the restriction of the relation classification to entities.

o       class.rel

This relation represents the classification of all the relation instances represented in a language in terms of all the relation types represented in the language. The relation class.rel contains as a subrelation the restriction of the relation classification to relations.

Core Entities

Core Relations

Language

Natno

Entity

Relation

typ.ent

typ.rel

Model

Individual

Record

inst.ent

Inst.rel

Language

sign.typ

:

typ.rel ´ Natno ® type.ent

signature

:

Relation ´ Natno ® Entity

Model

sign.inst

:

inst.rel ´ Natno