[SCL] Functional dependencies

John F. Sowa sowa at bestweb.net
Tue Jun 21 15:14:08 CDT 2005


Chris,

In database theory (and in CGs), functional dependencies are
intensional; i.e., they follow from the axioms of the ontology,
independent of what happens to be asserted in the DB that
represents the current state of the real world.

Data-mining programs are used to discover dependencies in the
current DB, but those dependencies may be accidental.  They
should be distinguished from "functional dependencies", which
the DB crowd has always considered to follow from the DB
constraints (i.e., axioms) independent of the current state
of the DB.

That is exactly parallel with the functional notation used
in math:  it is a mistake to use functional notation for a
relation defined by axioms that do not guarantee uniqueness.
I assume the same for CG actors:  it is a mistake to specify
an output arc of an actor whose definition does not guarantee
that that the output arcs are functionally dependent on the
input nodes.

In effect, you can think of a CG actor with n input arcs
and m output arcs as a shorthand notation for m separate
functions of those same n inputs.

As I said, in theory there is no harm in having n separate
functions whose values are all computed by the same program.
But in practice, it makes a big difference if you have to
repeat the computation.  So the actor notation is merely a
computational convenience, not a theoretical necessity.

But that is also true of functions, which are "merely"
convenient notational conventions that aid theorem provers.
Those same theorems could be proved, but not as efficiently,
if you did not have a notation that distinguishes functions
from other relations.

John


More information about the SCL mailing list