How can we express modalities in OpenCog? New types of nodes and links?

32 views
Skip to first unread message

alexande...@gmail.com

unread,
Mar 11, 2017, 3:31:36 PM3/11/17
to opencog
Hi!

There can be modalities (which are usually expressed as diamonds or boxes (operators) in modal logic):
DUTY_TO_PERFORM_ACTION(agent, action, time horizone) - agent should perform action within time horizon
BELIEF(agent, statement, time instant) - agent believes in statement at the time instant

Such modalities are important in robotics (e.g. AGI safety - what duties and permissions robots have) and in communication (modelling other agent believes, knowledge and reasoning styles).

Important point is, that by introducing modalities we also introduce additional axioms/meta-rules that connect modal statements (statements under modal operator) with the nonmodal statements and with the statements of other modalities (modal conversion). Example list of such metarules are available in https://en.wikipedia.org/wiki/Modal_logic. Such metarules sometimes are debatable, e.g. rule in deontic logic: DUTY_TO_PERORM_ACTION(agent, action)->PERMISSION_TO_PERFORM_ACTION(agent, action) and such metarules sometimes lead to paradoxes (classical deontic logic is full of them), nevertheless, such metarules expresses additional knowledge about reality. And such metarules can be mined and used for constraining inference process (inference control)!

I have two questions regarding expression of modalities in OpenCog?:
1) how we can express modalities in Scheme/atomspace?
-- One solution is to introduce new link types. Is such introduction possible? Maybe OpenCog have GenericLink for which the user can form derivation and for the derivation the user can define syntax (how many Nodes and of what Type are allowed in the new Link) and semantics (what processes are done, what is output and strenght values of the output)? I have not heard about such option;
-- Another solution is to use PredicateNode, e.g. belief can be expressed:
   PredicateNode "agent_believe"
      ConceptNode "Erving"
      ConceptNode "Door is open"
The question is - can we use other Node, Link, result of SatisfyingSetLink etc. in place of the literal "agent_believes"? Or we are bounded for using literal constants in the PredicateNode? If former is true, then the system is open for the arbitrary set of modalities and the system can generate new modalities!

2) how we can express metarules for modalities in OpenCog?:
My proposal is to use rules that accepts some patterns of predicates and that generates new predicates:
   rule_body(obligation_predicate_type_nodes)->rule_head(new_permission_predicate_type_nodes)
Again - the question is about flexibility of the system: if the system allows generation of new link types or new predicate then the system can mine/generate the relevant rules for the newly generate modalities!

Of course, I am studying literature, experimenting, thinking about this, but maybe someone also has thought about those questions and has already something done - it would be nice to hear thoughts, proposals and experience!

Thanks!

p.s. I am sorry for sending this from new account, I don't know why Google groups do not show message from my regular account?

Ben Goertzel

unread,
Mar 11, 2017, 10:45:18 PM3/11/17
to opencog
When to write

BlahBlahLink
A
B

or

EvaluationLink
PredicateNode "BlahBlah"
ListLink
A
B

is something that we don't have a clear policy for at this point.
The OpenCog architecture lets you do either one, and they basically
have the same semantics...

One position would be: This should just be a back-end under-the-hood
optimization issue, and the external "cognitive API" should just refer
to either one via something like

BlahBlah(A,B)

So far we have generally taken the BlahBlahLink approach only (well,
pretty much only) when BlahBlah is both conceptually fundamental, and
frequently occurring in the Atomspace...

-- Ben
> --
> 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 opencog+u...@googlegroups.com.
> To post to this group, send email to ope...@googlegroups.com.
> Visit this group at https://groups.google.com/group/opencog.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/opencog/7a0255ac-5d6c-41a8-aa7f-a967c9534381%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.



--
Ben Goertzel, PhD
http://goertzel.org

“Our first mothers and fathers … were endowed with intelligence; they
saw and instantly they could see far … they succeeded in knowing all
that there is in the world. When they looked, instantly they saw all
around them, and they contemplated in turn the arch of heaven and the
round face of the earth. … Great was their wisdom …. They were able to
know all....

But the Creator and the Maker did not hear this with pleasure. … ‘Are
they not by nature simple creatures of our making? Must they also be
gods? … What if they do not reproduce and multiply?’

Then the Heart of Heaven blew mist into their eyes, which clouded
their sight as when a mirror is breathed upon. Their eyes were covered
and they could see only what was close, only that was clear to them.”

— Popol Vuh (holy book of the ancient Mayas)

Linas Vepstas

unread,
Mar 12, 2017, 7:44:17 AM3/12/17
to opencog
What Ben said. And some other remarks

On Sun, Mar 12, 2017 at 4:31 AM, <alexande...@gmail.com> wrote:
Hi!

There can be modalities (which are usually expressed as diamonds or boxes (operators) in modal logic):
DUTY_TO_PERFORM_ACTION(agent, action, time horizone) - agent should perform action within time horizon
BELIEF(agent, statement, time instant) - agent believes in statement at the time instant

Such modalities are important in robotics (e.g. AGI safety - what duties and permissions robots have) and in communication (modelling other agent believes, knowledge and reasoning styles).

Important point is, that by introducing modalities we also introduce additional axioms/meta-rules that connect modal statements (statements under modal operator) with the nonmodal statements and with the statements of other modalities (modal conversion). Example list of such metarules are available in https://en.wikipedia.org/wiki/Modal_logic. Such metarules sometimes are debatable, e.g. rule in deontic logic: DUTY_TO_PERORM_ACTION(agent, action)->PERMISSION_TO_PERFORM_ACTION(agent, action) and such metarules sometimes lead to paradoxes (classical deontic logic is full of them), nevertheless, such metarules expresses additional knowledge about reality. And such metarules can be mined and used for constraining inference process (inference control)!

we don't distinguish between metarules and rules. The point of the hypergraph is to allow rules can act on rules can act on rules, ad infinitum, 

we want to mine rules, but in practice have very limited experience in this.

I have two questions regarding expression of modalities in OpenCog?:
1) how we can express modalities in Scheme/atomspace?
-- One solution is to introduce new link types. Is such introduction possible?

yes but strongly discouraged, mostly because the C++ infrastructure has trouble with this.  As Ben points out, new link types are (conceptually) equivalent to new PredicateNodes; we only create new link types to simplify and compactify certain types of processing.   Unless you plan to also create special-purpose C++ code, adding new link types is a bad idea.
 
Maybe OpenCog have GenericLink for which the user can form derivation and for the derivation the user can define syntax (how many Nodes and of what Type are allowed in the new Link) and semantics (what processes are done, what is output and strenght values of the output)? I have not heard about such option;
-- Another solution is to use PredicateNode, e.g. belief can be expressed:
   PredicateNode "agent_believe"
      ConceptNode "Erving"
      ConceptNode "Door is open"

Actually its this:
 
EvaluationLink 
    PredicateNode "agent_believe"
    ListLink

         ConceptNode "Erving"
         ConceptNode "Door is open"

The question is - can we use other Node, Link, result of SatisfyingSetLink etc. in place of the literal "agent_believes"?

Its not a literal.  The string "agent believes" is just some random string which has no meaning except in relation to other Nodes and Links.  It could have been the string "pqwerqwer" and that would not change anything.
 
Or we are bounded for using literal constants in the PredicateNode? If former is true, then the system is open for the arbitrary set of modalities and the system can generate new modalities!

There's no bound on modalities. 

2) how we can express metarules for modalities in OpenCog?:
My proposal is to use rules that accepts some patterns of predicates and that generates new predicates:
   rule_body(obligation_predicate_type_nodes)->rule_head(new_permission_predicate_type_nodes)

At the lowest level, we use BindLink for this.  The syntax for BindLink is not very compact, but then, it was not intended to be hand-authored by humans. 

The psi-rules infrastructure offers a higher-level API for rules, but it... has certain other complexities; its not yet fully defined.
 
Again - the question is about flexibility of the system: if the system allows generation of new link types or new predicate then the system can mine/generate the relevant rules for the newly generate modalities!

It allows for this, to arbitrary depth. Due to the equivalence of Predicates and link types, it is programmatically just easier to create new predicates instead of new links.

--linas


Of course, I am studying literature, experimenting, thinking about this, but maybe someone also has thought about those questions and has already something done - it would be nice to hear thoughts, proposals and experience!

Thanks!

p.s. I am sorry for sending this from new account, I don't know why Google groups do not show message from my regular account?

--
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 opencog+unsubscribe@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages