Hi,
> So -- after using OpenPsi in practice, I have some comments questions and
> critiques. I'd like to have Nil pay attention and make comments, as his name
> came up next to the words "perform reasoning on OpenPsi rules using PLN".
> I'm also thinking of applying moses-like mutations and genetic crossovers,
> as well, and so, for all this to work well, the OpenPsi rule format should
> be firmed up a bit more. So ...
Makes sense...
> Currently, all of the clauses that make up the context are duped into the
> same AndLink as the action to be performed. This is kind-of annoying, as
> there is no direct way of picking out the action from the jumble of clauses.
> Can we fix that?
We could just write the first part of the Psi Implication as
AND
AND
context-pred1
context-pred2
...
SequentialAND
schema-1
schema-2
...
I guess... or are you thinking of something fancier?
> Currently, all of the context clauses have to be
> EvaluationLinks/PredicateNodes of some kind, so that their conjunction can
> be easily obtained from the truth values. If these are not crisp truth
> values, do we have some formula for merging these? I am interested in doing
> some "fuzzy" matching on the contexts.
PLN has a heuristic rule for this, yeah... eventually it will be
replaced with a more sophisticated rule that tries to account for all
the various k-ary dependencies among the conjuncts, but we don't need
that right now...
> The action is currently defined as a Schema of some kind -- this causes two
> problems: first, everything else in the AndLink is a predicate, as
> menntioned above, whereas if the action is a schema, then ... it doesn't
> fit, like the rest.
>
> Second problem with Schemas -- most actions need to be a sequence of steps
> to take, and thus are naturally expressed as steps in a SequentialAnd ...
> which means that most "actions" are naturally predicates. There seem to be
> several klunky ways of converting a sequence of steps into a schema-valued
> action, but these all seem klunky. So ... ??
It seems there is a semantic subtlety here. When we apply
SequentialAnd to a sequence of ExecutionOutputLinks, we are really
doing something imperative, but making it look like something
logic-based.... I don't think there is any inconsistency here, but
some subtleties (familiar from functional programming) would be needed
to formally model what's going on...
As your above comments indirectly suggest, a SequentialAND of a series
of ExecutionOutputLinks isn't really a predicate in the
straightforward sense; I think it's got to be treated as effectively a
"macro execution output link" right?
>(Also, think about trying to
> apply mutations or genetic cross-overs to sequences of actions, and/or
> learning new sequences of actions based on what went well, before --
> learning "habits", or learning "skills" or "techniques" as semi-rigid
> sequences of actions applied to fairly sophisticated contexts ...
cool ;D
> Next, I am interested in splitting the context into two parts: one part that
> specifies where to look for context, and a second part that actually checks
> to see if the context part of a rule applies.
>
> This is best explained by example. Consider, for example, rules that are
> used to apply to input sentences. To find out if a rule applies to the
> current input sentence, I don't search the entire atomspace to find the
> "current input sentence" -- I already know what it is -- it just came in
> from the auditory and speech-to-text subsystem. Thus it is straight-forward
> to see which rules apply to the input sentence, because I already know what
> it is.
Hmmm... but can't you just pack this into the Atoms defining the context...
I.e., is this a suggestion for an extension of the Psi-Implication
format, or a suggestion for what kinds of contexts we should
habitually be using in our Psi Implications?
If you want the rule to look in a certain place for a certain Atom,
can't you just specify the Atom's location explicitly in the predicate
constructs used in the context part of the Psi Implication rule?
Or are you looking for some sort of Atomese "library function" that
makes this concise and elegant, since it has to be done over and over
again... I guess? ...
> Thus, I'm thinking that every part of a Psi rule context should have
> associated with it some method, some means of localizing where this context
> is stored, or provide some way of fetching it -- this can then be used to
> cut down on the search for applicable Psi rules.
I see the need, but I wonder if the localization can just be done
explicitly within the context predicates .. so that the PM will then
take account of it automatically...
> (How this could interact with PLN and/or moses is unclear)
>
Hmm, well if the localization is just some logical Atoms, then PLN can
leverage it explicitly...
ben