You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since AbsentLink requests that a certain pattern be absent from the atomspace, NotLink AbsentLink should have the semantics that the pattern is present. However, this currently fails. This is marked as an enhancement/feature-request, since it dates back over five years, to the original introduction of optional links in the pattern matcher.
(cog-bind fnd) ;;; prints nothing, returns empty set.
(cog-bind abs) ;;; prints 'ola', returns 'trigger'
(cog-bind nabs) ;; throws C++ exception
Now, define the following, and run again:
(EvaluationLink (PredicateNode "room status") (ConceptNode "occupied"))
(cog-bind fnd) ;;; prints 'ola', returns 'trigger'
(cog-bind abs) ;;; prints nothing, returns empty set
(cog-bind nabs) ;; throws c++ exception.
Hint: use cog-delete to delete the EvaluationLink, if you want to run this again.
This issue is closely related to issue #217 which says that AbsentLink is the same as NotLink-ChocieLink. It will probably be hard to implement, because the concept of absence can only be proved in the affirmative, not the negative: AbsentLinks are usual virtual links, that are evaluated only after all of thier arguments are already grounded.
This is marked "enhancement" because it is low-priority, it is not needed for any current projects; it is not blocking any work. It also has a reasonable work-around: just use an arity-1 ChoiceLink!
The text was updated successfully, but these errors were encountered:
Since AbsentLink requests that a certain pattern be absent from the atomspace, NotLink AbsentLink should have the semantics that the pattern is present. However, this currently fails. This is marked as an enhancement/feature-request, since it dates back over five years, to the original introduction of optional links in the pattern matcher.
Some examples:
If one runs this, one gets
Now, define the following, and run again:
Hint: use cog-delete to delete the EvaluationLink, if you want to run this again.
This issue is closely related to issue #217 which says that AbsentLink is the same as NotLink-ChocieLink. It will probably be hard to implement, because the concept of absence can only be proved in the affirmative, not the negative: AbsentLinks are usual virtual links, that are evaluated only after all of thier arguments are already grounded.
This is marked "enhancement" because it is low-priority, it is not needed for any current projects; it is not blocking any work. It also has a reasonable work-around: just use an arity-1 ChoiceLink!
The text was updated successfully, but these errors were encountered: