Heh.

Nil gives credit to the divine which I would ascribe to plain-old
bumbling around. The definitions for these new link types were in the
definitions file for almost a decade, but stubbed out ... because no
one needed them, asked for them.

Some history: In "boolean algebra" (which deals with infinite sets),
the set-or is the same thing as set-union.  Which makes sense, when
you look at it a bit. In comp-sci and logic, we are used to thinking
that logical-or operates only on "boolean" true/false, (and no one
ever calls it "logical-union")

In practice, we need both: PLN deals with named sets (for example:
Concept "animals") while low-level systems, like robot control, need
logical true/false (for example: if(block-on-table) then
pick-up-block)

The second system is very particular about what it allows. You can
write programs in Atomese, and run them.  For example:  (SequentialAnd
(Predicate "block-on-table") (Predicate "gripper-is-free") (Predicate
"pick-up-block")) will run these three actions in order, and stop at
the first one that fails. So if (Predicate "gripper-is-free") returns
false, then (Predicate "pick-up-block") will never run.

Because Atomese programs need to be, well, runnable without errors,
they need to be well-formed. That means that everything in a
SequentialAnd block *must* be evaluatable, i.e. *must* return
true/false when evaluated.  Thus the idea of a type checker was born.
The code in Checkers.cc actually looks to make sure that everything in
a SequentialAnd block is evaluatable, and throws an error if not.

In practice, this prevented you from writing expressions like (OrLink
(Concept "sticky") (Concept "slimy")) because Concepts are not
evaluatable; they're sets.  Predicates are evaluatable: (OrLink
(Predicate "sticky") (Predicate "slimy")) is acceptable.  To keep the
peace with those who need to work with sets, UnionLink was invented.
This allows OrLink to continue onwards with strict type-checking,
while allowing UnionLink express ideas about set-unions.

Nil, BTW: we could arrange the type checker to check that UnionLink
only ever works with Sets and Concepts, and throw an error in all
other cases. This is probably stricter than you need it to be, right
now, but still, type-checking can be a useful thing for debugging.
----
As to divine intervention vs. bumbling around: I'm still working on
unsupervised learning, which I hope will someday be able to learn the
rules of (common-sense) inference. I think I know how to apply it to
audio and video data, and am looking for anyone who is willing to get
neck-deep in both code and theory.  In particular, for audio and
video, I need someone who knows GPU audio/video processing libraries,
and is willing to learn how to wrap them in Atomese. For starters.
After that comes the painful slog of actually mangling data.

-- linas

On Fri, Sep 10, 2021 at 2:52 AM 'Nil Geisweiller' via opencog
<[email protected]> wrote:
>
> Everybody,
>
> Linas and I (and a mathematical divine entity, I'm sure) decided to
> introduce
>
> https://wiki.opencog.org/w/UnionLink
> https://wiki.opencog.org/w/IntersectionLink
> https://wiki.opencog.org/w/ComplementLink
>
> to be used instead of OrLink, AndLink and NotLink when dealing with
> concepts/sets instead of predicates.
>
> Sorry for making such an important decision without much outside
> consultation, but it happened "naturally" while dealing with the atom
> type checker, it makes the code simpler, and I believe it will also
> makes things simpler for human use.  After all we already have
> Inheritance vs Implication, so why not go all the way.
>
> We're obviously open to revert that change if it turns out to be a bad
> idea, but I don't expect it will be.
>
> Nil
>
> --
> You received this message because you are subscribed to the Google Groups 
> "opencog" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/opencog/fcf938c8-5055-13af-d828-2782005b8839%40gmail.com.



-- 
Patrick: Are they laughing at us?
Sponge Bob: No, Patrick, they are laughing next to us.

-- 
You received this message because you are subscribed to the Google Groups 
"opencog" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/opencog/CAHrUA37VyGMpKr50xKAcf22q_%3DcVxO5AHhavPdtDbb6UxhxUqg%40mail.gmail.com.

Reply via email to