## Rule Macro Predicates

E-Mail Comments to: opencyc-doc@cyc.com
Last Update: 12/13/02
Copyright© 1996-2002. All rights reserved. See Terms of Usage.

Return to Documentation Contents
Return to Vocabulary Contents

#$RuleMacroPredicate rule macro predicates

> 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 #$AtemporalNecessarilyEssentialCollectionType
> direct specialization of: #$MacroRelation #$Predicate
> direct generalization of: #$GeneralizedQuantifierRelation #$TypeTypeTernaryRuleMacroPredicate #$TypeInstanceTernaryRuleMacroPredicate #$InstanceTypeTernaryRuleMacroPredicate

#$expansionAxiom expansion axiom **COMMENT NOT REVIEWED** **GAFs NOT REVIEWED**

> (#$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 PRED COL1 COL2) means that for every instance INS2 of COL2, there is some instance INS1 of COL1, such that (PRED INS1 INS2) holds. Thus it is equivalent to the more complex form (#$implies (isa ?INS2 COL2) (#$thereExists ?INS1 (#$and (#$isa ?INS1 COL1) (PRED ?INS1 ?INS2)))). #$relationExistsAll is thus redundant with a very large set of commonly-occurring axioms. So a ground atomic formula (or GAF ) built upon relationInstanceExists is in effect shorthand (i.e. a macro ) for an equivalent rule with the more complex form. For example, (#$relationExistsAll #$adjacentTo #$Harbor #$PortCity) means that for every port city there exists a harbor to which the city is adjacent. See the shared #$NoteAboutUseOfRuleMacroPredicates.
> 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 <X2, ..., Xn> 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 #$MetaPredicate #$RuleMacroPredicate #$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 <X1, X3, ..., Xn> 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 #$MetaPredicate #$RuleMacroPredicate #$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. Use #$interArgCondIsa1-2 to conclude that arg2 is an instance of DEPENDENT-ARG-COL instead of having that as a constraint.
> guid: bd5c548a-9c29-11b1-9dad-c379636f7270
> direct instance of: #$OpenCycDefinitionalPredicate #$IntangibleObjectRelatingPredicate #$InterArgIsaPredicate #$RuleMacroPredicate #$TernaryPredicate

#$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 #$IntangibleObjectRelatingPredicate #$InterArgIsaPredicate #$RuleMacroPredicate #$TernaryPredicate

Copyright© 1996-2002. All rights reserved. See Terms of Usage.