Rule Macro
Predicates
E-Mail Comments to: opencyc-doc@cyc.com
Last
Update: 3/30/02
Copyright© 1996-2002. All rights reserved. See Terms of Usage.
Return to Documentation Contents
Return to Vocabulary Contents
#$RuleMacroPredicate rule
macro predicate
A specialization of #$Predicate.
Each instance of #$RuleMacroPredicate
is a predicate that has, implicit in its definition, a
schema for a class of quantified formulas (an instance of #$RuleMacroPredicate
is related to its schema via the predicate #$expansion). A
ground assertion using one of these predicates is in fact
shorthand for a rule fitting this schema. For example, #$genls is a #$RuleMacroPredicate
and its implicit schema is (#$implies (#$isa ?X ARG1) (#$isa ?X ARG2)).
Therefore, (#$genls #$Poodle
#$Dog) is
shorthand for the rule (#$implies (#$isa ?X #$Poodle)
(#$isa ?X #$Dog). #$RuleMacroPredicates
may be supported by system code, as is #$genls, or they
may be defined with an #$expansion. In general, one should
only introduce a new #$RuleMacroPredicate
if 1) there is a plan to eventually provide code support for
efficient reasoning with its uses, and/or 2) using it
enables useful type-level reasoning.
guid: bd8efae4-9c29-11b1-9dad-c379636f7270
direct instance of:
#$PredicateCategory
direct specialization of:
#$MacroRelation #$Predicate #$PlanningKBPredicate
direct generalization of:
#$TypeTypeTernaryRuleMacroPredicate
#$TypeInstanceTernaryRuleMacroPredicate
#$InstanceTypeTernaryRuleMacroPredicate
#$expansionAxiom expansion axiom
(#$expansionAxiom
PRED ASSERT) means that the assertion ASSERT is part of the
expansion of PRED.
guid: bdfabffc-9c29-11b1-9dad-c379636f7270
direct instance of:
#$DistributingMetaKnowledgePredicate #$BinaryPredicate
direct specialization of:
#$salientAssertions
#$relationAllExists relation
all exists
(#$relationAllExists
PRED COL1 COL2) means that for any instance INST1 of COL1,
there exists some instance INST2 of COL2 such that (PRED
INST1 INST2) holds. (#$relationAllExists
PRED COL1 COL2) is thus redundant with a
commonly-encountered form of rule. So #$relationAllExists
(and its defining axiom; see #$expansion) enables this
common type of rule to be stated more tersely. Moreover,
(forthcoming) code support will enable type-level
inferencing with #$relationAllExists.
guid: bf3429c5-9c29-11b1-9dad-c379636f7270
direct instance of:
#$TypeTypeTernaryRuleMacroPredicate
direct specialization of: #$most-GenQuantRelnToType
#$relationExistsAll relation
exists all
(#$relationExistsAll
SLOT COL1 COL2) means that, for every INS2 which is an
instance of COL2, there is some INS1 which is an instance of
COL1, such that (SLOT INS1 INS2) holds. #$relationExistsAll
is thus redundant with a huge set of commonly-occurring
axioms. By having this predicate (along with an axiom that
defines it, and, eventually, support in code for quick
inferencing with it), axioms in that set can be stated more
tersely, and collection-level reasoning with it is possible.
guid: c0bb3413-9c29-11b1-9dad-c379636f7270
direct instance of:
#$TypeTypeTernaryRuleMacroPredicate
direct specialization of: #$most-GenQuantRelnFromType
#$requiredArg1Pred required
arg 1 pred
A #$MetaPredicate
for stating that every instance of a given collection is
related to some thing or things by a given predicate. (#$requiredArg1Pred
COL PRED) means that for every instance INST of COL, there
exists some sequence such that (PRED INST X2
... Xn) holds. For example, (#$requiredArg1Pred
#$Organization
#$hasMembers)
means that every organization has at least one member. See
also #$requiredArg2Pred.
guid: bdd50606-9c29-11b1-9dad-c379636f7270
direct instance of: #$OpenCycDefinitionalPredicate
#$RuleMacroPredicate
#$MetaPredicate
#$BinaryPredicate
#$requiredArg2Pred required
arg 2 pred
A #$MetaPredicate
for stating that every instance of a given collection is
related (as the arg2 ) to some thing or things by a given
predicate. (#$requiredArg2Pred
COL PRED) means that for every instance INST of COL, there
exists some sequence of such that (PRED X1
INST X3 ... Xn) holds. For example, (#$requiredArg2Pred
#$Side
#$objectSides) means that every side is the side of at least
one object. See also #$requiredArg1Pred.
guid: bef7ed88-9c29-11b1-9dad-c379636f7270
direct instance of: #$OpenCycDefinitionalPredicate
#$RuleMacroPredicate
#$MetaPredicate
#$BinaryPredicate
#$interArgIsa1-2 inter
arg isa 1 - 2
A ternary instance of #$InterArgIsaPredicate
(q.v.). (#$interArgIsa1-2
RELN INDEPENDENT-ARG-COL DEPENDENT-ARG-COL) means that, when
an instance of INDEPENDENT-ARG-COL appears as the first
argument to RELN, a necessary condition for semantic
well-formedness is that the second argument must be an
instance of DEPENDENT-ARG-COL. That is, if INST is an
instance of INDEPENDENT-ARG-COL, then (RELN INST ARG2 ...
ARGN) is semantically well-formed only if ARG2 is an
instance of DEPENDENT-ARG-COL. For example, (#$interArgIsa1-2
#$performedBy #$PurposefulAction
#$IntelligentAgent)
means that, if ACT is a purposeful action, then (#$performedBy ACT
AGENT) is semantically well-formed only if AGENT is an
intelligent agent. For an explanation of semantic
well-formedness, see #$CycLExpression-Assertible and its
direct specializations. See #$interArgIsa for a similar but
more general predicate that is quintary, allowing the user
to specify the positions of the independent and dependent arguments.
guid: bd5c548a-9c29-11b1-9dad-c379636f7270
direct instance of: #$OpenCycDefinitionalPredicate
#$RuleMacroPredicate
#$TernaryPredicate #$InterArgIsaPredicate
#$interArgIsa2-1 inter
arg isa 2 - 1
A ternary instance of #$InterArgIsaPredicate
(q.v.). (#$interArgIsa2-1
RELN INDEPENDENT-ARG-COL DEPENDENT-ARG-COL) means that, when
an instance of INDEPENDENT-ARG-COL appears as the second
argument to RELN, a necessary condition for semantic
well-formedness is that the first argument must be an
instance of DEPENDENT-ARG-COL. That is, if INST is an
instance of INDEPENDENT-ARG-COL, then (RELN ARG1 INST ...
ARGN) is semantically well-formed only if ARG1 is an
instance of DEPENDENT-ARG-COL. For an explanation of
semantic well-formedness, see #$CycLExpression-Assertible
and its direct specializations.
guid: bd682bdd-9c29-11b1-9dad-c379636f7270
direct instance of: #$OpenCycDefinitionalPredicate
#$RuleMacroPredicate
#$TernaryPredicate #$InterArgIsaPredicate
Copyright© 1996-2002. All rights reserved. See Terms of Usage.