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
; Create a SimpleTruthValue with a non-trivial formula:
; It will be the TV := (1-sA*sB, cA*cB) where sA and sB are strenghts
; and cA, cB are confidence values. The PredicateFormulaLink assembles
; two floating-point values, and create a SimpleTruthValue out of them.
;
(cog-evaluate!
(PredicateFormula
(Minus
(Number 1)
(Times (StrengthOf (Concept "A")) (StrengthOf (Concept "B"))))
(Times (ConfidenceOf (Concept "A")) (ConfidenceOf (Concept "B")))))
; The values do not need to be formulas; they can be hard-coded numbers.
(cog-evaluate!
(PredicateFormula (Number 0.7) (Number 0.314)))
; The below computes a truth value, and attaches it to the
; EvaluationLink. Let's demo this in three parts: first define it,
; then evaluate it, then look at it.
;
(define my-ev-link
(Evaluation
(PredicateFormula (Number 0.7) (Number 0.314))
(List
(Concept "A")
(Concept "B"))))
; Evaluate ...
(cog-evaluate! my-ev-link)
; Print.
(display my-ev-link)
; More typically, one wishes to have a formula in the abstract,
; with variables in it, so that one can apply it in any one of
; a number of different situations. In the below, the variables
; are automatically reduced with the Atoms in the ListLink, and
; then the formula is evaluated to obtain a TruthValue.
(cog-evaluate!
(Evaluation
; Compute TV = (1-sA*sB, cA*cB)
(PredicateFormula
(Minus
(Number 1)
(Times
(StrengthOf (Variable "$X"))
(StrengthOf (Variable "$Y"))))
(Times
(ConfidenceOf (Variable "$X"))
(ConfidenceOf (Variable "$Y"))))
(List
(Concept "A")
(Concept "B"))))
and so on. The example gives even more details that make it even more PLN-useful.
The text was updated successfully, but these errors were encountered:
Friendly reminder, because I think it has fallen off the TODO-list. The new atomese formula support is likely to be a lot faster than using
(GroundedPredicateNode "scm:foo-formula")
See https://github.com/opencog/atomspace/blob/master/examples/atomspace/formulas.scm for a working example; I copy part of it below to give a flavor of it:and so on. The example gives even more details that make it even more PLN-useful.
The text was updated successfully, but these errors were encountered: