The frame ontology defines the terms that capture conventions used in object-centered knowledge representation systems. Since these terms are built upon the semantics of KIF, one can think of KIF plus the frame-ontology as a specialized representation language. The frame ontology is the conceptual basis for the Ontolingua translators.One purpose of this ontology is to enable people using different representation systems to share ontologies that are organized along object-centered, term-subsumption lines. Translators of ontologies written in KIF using the frame ontology, such as those provided by Ontolingua, allow one to work from a common source format and yet continue to use existing representation systems.
The definitions in this ontology are based on common usage in the computer science and mathematics literatures. However, there is no claim that these definitions capture the semantics of existing, implemented systems in full detail. Nuances of the meaning of terms that depend on the algorithms for inheritance, for instance, are not addressed in this ontology. See the acknowledgements at the end of the file.
This ontology is specified using the definitional forms provided by Ontolingua. All of the embedded sentences are in KIF 3.0, and the whole thing can be translated into pure KIF top level forms without loss of information.
The basic ontological commitments of this ontology are
- Relations are sets of tuples -- named by predicates
- Functions are a special case of relations
- Classes are unary relations -- no special syntax for types
- Extensional semantics for classes -- defined as sets, not descriptions
- No special treatment of slots, just binary relations and unary functions
- KL-ONE style specs are relations on relations (second-order relations, not metalinguistic or modal)
Notes:
- The basic relationships among classes, functions and other relations follow from their definitions as sets of tuples and their semantics as predicates.
- Special restrictions on relations relative to domains: value-type, slot-value-type, value-cardinality, slot-cardinality, etc.
In many frame-based systems, there are expressions for describing constraints on the values or types of slots relative to a class. Slots are binary relations or unary functions (single-valued-slots). These expressions specify restrictions on slot values local to a class. For example, within the description of a class, a slot may be declared to be single valued and its values of some type. These declarations are only in force when the slot is applied to instances of the class. Thus, they are not equivalent to general constraints on binary relations, such as domain and range. The relations below offer primitives for describing restrictions on binary relations that are relative to particular domains.
Included in the family of relations defined below are primitives for handling KL-ONE style concept definitions, in which the meanings of classes (concepts) can be defined with restrictions on their slots (roles).
First we will define the relationships between slots and individual domain instances. These relations might show up in definitions as constraints on the instances of a class. By convention the names of these relations refer to ``values''. The ``lot'' versions will be defined following the ``value'' relations.
- Organizing classes into mutually-disjoint sets. class-partition, subclass-partition, exhaustive-subclass-partition
The following relations are used to succinctly state that classes are mutually disjoint. A partition may be given a name using define-instance. Alternatively, one may define a set of subclasses of a given class that are mutually disjoint. If the set of subclasses covers the parent class, then the partition is called exhaustive. These relations are motivated by the partition tags in the KRSS specification; in KRSS, however, the partitions are not first-class objects.
- Special properties and relations on binary-relations: symmetry, reflexivity, transitivity
Many of these have analogs in the abstract-algebra ontology. The difference is that these are absolute properties of relations, whereas the algebraic definitions are relative to domains. For example, a REFLEXIVE-RELATION is reflexive for its universe, whereas (REFLEXIVE ?relation ?domain) means that ?relation is reflexive with respect to the class ?domain.
The motivation for these in the frame ontology is to support databases where such properties are absolute.
- ACKNOWLEDGEMENTS
The definitions in this ontology are based on common usage in the computer science and mathematics literatures. Some of the terminology of functions and relations is based on the book Naive Set Ontology, by Paul Halmos (Princeton, NJ: D. Van Nostrand, 1960). Reed Letsinger of Hewlett-Packard and Stanford University proposed the uniform treatment of relations and functions as sets of tuples, and wrote many of the definitions of second-order relations. The CYC system (Doug Lenat and R. V. Guha, 1990) was an inspiration for the utility of many of the distinctions included. The KRSS specification for terminological languages (Bob MacGregor, Peter Patel-Schneider, and Bill Swartout) was the source and motivation for several primitives. Bob MagGregor contributed to the choice and definitions of several concepts in the ontology. Richard Fikes and Mike Genesereth lead the effort to a specification for KIF that is clear and expressive enough to be a solid foundation for this and future ontologies. Fritz Mueller made many useful comments and suggestions, and implemented code to translate from these primitives into existing representation systems.
- Commented-out: ;(define-relation ANTIREFLEXIVE-RELATION (?R) ; "Relation R is antireflexive if R(a,a) never holds." ; ; :iff-def (and (binary-relation ?R) ; (not (holds ?R ?x ?x))))
Kif-Relations Kif-Sets Kif-Lists Kif-Numbers Kif-Extensions Kif-Sets Kif-Lists ... Kif-Numbers Kif-Relations ... Kif-Meta Kif-Sets Kif-Lists ...
Slot-Constraint-Sugar Simple-Time Interface-Ontology Interface-Definition-Language Device-Ontology Hp-Product-Ontology Digital-Designer-Query-Ontology Physicist-Query-Ontology Hp-Product-Ontology ... Digital-Designer-Query-Ontology Physicist-Query-Ontology Documents Bibliographic-Data Product-Ontology Device-Ontology ... Hp-Product-Ontology ... Vehicles Bibliographic-Data Job-Assignment-Task Enterprise-V1.0 Agents Interface-Ontology ... Documents ... Bibliographic-Data Product-Ontology ... Documents ... Bibliographic-Data Product-Ontology ... Basic-Matrix-Algebra Tensor-Quantities 3d-Tensor-Quantities Simple-Geometry Mechanical-Components Mace-Domain Interface-Definition-Language Interface-Ontology ... Component-Assemblies Dme-Cml Components-With-Constraints Mace-Domain Vt-Design Vt-Domain Vt-Example Mechanical-Components ... Ranges Simple-Time ... Simple-Time ... Agents ... Documents ... Bibliographic-Data Abstract-Algebra Physical-Quantities Standard-Dimensions Unary-Scalar-Functions Cml Dme-Cml Mace-Domain Standard-Units Cml ... Product-Ontology ... Device-Ontology ... Simple-Geometry ... Vt-Design ... Scalar-Quantities Unary-Scalar-Functions ... Tensor-Quantities ... Vt-Design ... Product-Ontology ... Quantity-Spaces Simple-Geometry ... Device-Ontology ... Product-Ontology ... Parametric-Constraints Components-With-Constraints ... Job-Assignment-Task Product-Ontology ... Digital-Designer-Query-Ontology Physicist-Query-Ontology User-Ontology Enterprise-V1.0
Kif-Relations Frame-Ontology ... Kif-Numbers Frame-Ontology ... Kif-Lists Kif-Relations ... Frame-Ontology ... Kif-Sets Kif-Relations ... Frame-Ontology ... Kif-Lists ... Kif-Extensions Kif-Relations ... Frame-Ontology ... Kif-Numbers ... Kif-Sets ... Physical-Quantities ... Basic-Matrix-Algebra ... Interface-Definition-Language Interface-Ontology ... Cml ... Unary-Scalar-Functions ... Bibliographic-Data Parametric-Constraints ... Tensor-Quantities ... Vt-Design ... Vt-Domain ... Product-Ontology ... Hp-Product-Ontology ... Vehicles Enterprise-V1.0 Slot-Constraint-Sugar ... Kif-Meta Frame-Ontology ... Cml ... Agents ... Documents ... Bibliographic-Data Parametric-Constraints ... Vt-Design ... Enterprise-V1.0 Physical-Quantities ... Cml ... Unary-Scalar-Functions ... Standard-Dimensions ... Simple-Time ... Dme-Cml Parametric-Constraints ... Quantity-Spaces ... Tensor-Quantities ... Simple-Geometry ... Job-Assignment-Task Vt-Design ... Device-Ontology ... Hp-Product-Ontology ... Digital-Designer-Query-Ontology Physicist-Query-Ontology Enterprise-V1.0 Kif-Extensions ... Kif-Meta ... Physical-Quantities ... Basic-Matrix-Algebra ... Interface-Definition-Language Unary-Scalar-Functions ... Bibliographic-Data Parametric-Constraints ... Enterprise-V1.0 Kif-Extensions ... Slot-Constraint-Sugar ... Kif-Meta ... Physical-Quantities ... Basic-Matrix-Algebra ... Interface-Definition-Language Interface-Ontology ... Cml ... Unary-Scalar-Functions ... Standard-Dimensions ... Ranges ... Simple-Time ... Documents ... Bibliographic-Data Standard-Units ... Scalar-Quantities ... Tensor-Quantities ... 3d-Tensor-Quantities ... Simple-Geometry ... Mechanical-Components ... Mace-Domain Vt-Design ... Vt-Domain ... Device-Ontology ... Hp-Product-Ontology ... Vehicles Enterprise-V1.0 Kif-Sets ... Kif-Lists ... Kif-Extensions ... Slot-Constraint-Sugar ... Kif-Meta ... Physical-Quantities ... Basic-Matrix-Algebra ... Interface-Definition-Language Interface-Ontology ... Cml ... Unary-Scalar-Functions ... Component-Assemblies ... Ranges ... Simple-Time ... Agents ... Documents ... Bibliographic-Data Abstract-Algebra ... Scalar-Quantities ... Dme-Cml Parametric-Constraints ... Components-With-Constraints ... Quantity-Spaces ... Tensor-Quantities ... 3d-Tensor-Quantities ... Simple-Geometry ... Mechanical-Components ... Job-Assignment-Task Mace-Domain Vt-Design ... Vt-Domain ... Product-Ontology ... Device-Ontology ... Hp-Product-Ontology ... Vehicles Enterprise-V1.0 Kif-Numbers ... Kif-Sets ... Kif-Lists ... Kif-Extensions ... Kif-Meta ...
Antisymmetric-Relation Asymmetric-Relation Partial-Order-Relation Total-Order-Relation Class Class-Partition Facet Inherited-Through-Class-Of-Relation Irreflexive-Relation Asymmetric-Relation Many-To-Many-Relation Many-To-One-Relation One-To-Many-Relation One-To-One-Relation Reflexive-Relation Equivalence-Relation Partial-Order-Relation ... Symmetric-Relation Equivalence-Relation Thing Individual-Thing Transitive-Relation Equivalence-Relation Partial-Order-Relation ... Weak-Transitive-Relation
Alias Composition-Of Direct-Instance-Of Direct-Subclass-Of Documentation Domain Domain-Of Exhaustive-Subclass-Partition Has-Instance Has-Subdefinition Has-Subrelation Has-Value Inherited-Facet-Value Inherited-Slot-Value Instance-Of Maximum-Slot-Cardinality Maximum-Value-Cardinality Minimum-Slot-Cardinality Minimum-Value-Cardinality Nth-Domain Onto Range Range-Of Related-Axioms Same-Slot-Values Same-Values Single-Valued-Slot Slot-Documentation Slot-Value-Type Subclass-Of Subclass-Partition Subrelation-Of Superclass-Of Total-On Value-Type
All-Inherited-Slot-Values All-Instances All-Values Arity Compose Exact-Domain Exact-Range One-Of Pretty-Name Projection Relation-Universe Slot-Cardinality Subdefinition-Of Value-Cardinality
Antisymmetric-Relation Asymmetric-Relation Class Class-Partition Equivalence-Relation Facet Individual-Thing Inherited-Through-Class-Of-Relation Irreflexive-Relation Many-To-Many-Relation Many-To-One-Relation One-To-Many-Relation One-To-One-Relation Partial-Order-Relation Reflexive-Relation Symmetric-Relation Thing Total-Order-Relation Transitive-Relation Weak-Transitive-Relation
All constants that were mentioned were defined.