Prev Up Next
Go backward to 2.2 The Concept of a Concept
Go up to 2 Concept Webs
Go forward to 2.4 Models of Concepts

2.3 Abstractions

What is an abstraction? A dictionary definition of "to abstract" is "to consider apart from application to or association with a particular instance" (Merriam-Webster's Collegiate Dictionary, Tenth Edition). For purposes of this document, I will define an abstraction as a set of labeled sets, where the labels are called sorts, and a set of labeled operations on the sets, where the operations have a specified arity, which is a list of specified sorts of the operation's inputs and outputs. This is in fact only a mild generalization of the way a data abstraction (a.k.a. a data type or simply a type) is often defined in computer science, but actually the definition is broad enough to capture also a notion of algorithms and other fundamental computer science terms. An algorithm, for example, is an abstraction in which there is only one operation (the algorithm) in the set of operations and the set of objects is empty. I believe that the computer science definition can also be usefully applied to other non-computational domains, but in this document we will not attempt to demonstrate that.

Requirements on abstractions are of two kinds: interfaces and properties.

2.3.1 Interfaces

The interface requirements state the syntax with which the objects of an abstraction are referenced and the operations are invoked. Sorts are introduced as names for sets of objects. For operations, interfaces specify the operation name and its arity, a list of sorts of its inputs and outputs. [[This should be elaborated.]]

2.3.2 Properties

Properties are semantic requirements and resource (time and space) constraints on the operations of an abstraction. [[This should be elaborated.]]
musser@cs.rpi.edu

Prev Up Next