Dear Seamus!
Sorry for my late reply, I somehow missed this email.
"If I input the following Narsese:
<({daisy} * mouse) --> eat>. :|:
then the Narsese below gets derived:
<{daisy} --> (eat /1 mouse)>. :|:
<mouse --> (eat /2 {daisy})>. :|:
But why not this one?
<{daisy} --> (eat \1 mouse)>. :|:
<mouse --> (eat \2 {daisy})>. :|:
Because in this case it's extensional image {daisy} and mouse are on extensional side / within the left side of the inheritance in the first input statement.
If the product would be on the right side it would transform into intensional images instead.
I presume this is because /1 and /2 are instances, rather than properties?
No they are just extensional image copulas, please see following answer:
I also assume the '1' and '2' here refer to where the variable value sits in the argument list for the term - is this correct?"
Yes, for instance <(a * b) --> R> can be transformed to <a --> (R /1 b)>. / because a is on left side of --> in the statement <(a * b) --> R>., and 1 because it's the first argument of the product (a * b).
It can thus also be transformed to <b --> (R /2 a)>., / because b is on the left side of the --> in the statement <(a * b) --> R>. and 2 because it's the second argument of the product (a * b).
"(2) independent vs dependent variables
I also have some problems with the independent and dependent variables, when should I be using '$' or '#' ?
I think this also comes back to the extensional (instances) vs intensional (properties) thing, but again I cannot be sure.
For example, if I want to ask what daisy eats, which is the correct choice?
<{daisy} --> (eat /1 #?)>?
<{daisy} --> (eat /2 $?)>?
<{daisy} --> (eat /1 #?)>?
<{daisy} --> (eat /2 ?1)>?"
<{daisy} --> (eat /1 ?1)>? usually, but to avoid confusion with images you can also ask directly in the product form, the system can transform it anyway:
<({daisy} * ?1) --> eat>? "daisy eats what?"
Dependent variables serve a different purpose, they are like existentially-quantified variables in FOPL.
(<#1 --> bird> && <#1 --> [dive]>). "there is a bird which can dive"
(<#1 --> bird> && <#1 --> [dive]>)? "is there a bird which can dive?" (yes/no question)
And independent vars are like all-quantified vars:
<<$1 --> bird> ==> <$1 --> [dive]>>? "can all birds dive?"
<<$1 --> cat> ==> <($1 * mouse) --> eat>>. "all cats eat mice"
"(3) extensional vs intensional difference operators
The operators '-' and '~' are quite mysterious - I presume I can use these to create a set of things not in another set?
Would these be use like this?
Daisy is not an instance of a canine:
({daisy} - [canine]).
Daisy does not have wings:
({daisy} ~ [wings])."
They have to be part of inheritance statements.
Example, "being able to fly is what distinguishes a magpie from a penguin":
<(magpie ~ penguin) --> [flying]>.
"A penguin is a bird which cannot fly":
<penguin --> (bird - [flying])>.
"(3) negating a term
The ONA NAL BNF seems to suggest that I can negate a NAL statement by prepending a '!'.
So how could I say that Daisy does not eat mice, for instance?
<!({daisy} * mouse) --> eat>. :|:"
Almost right, this works:
(! <({daisy} * mouse) --> eat>). :|:
Please let me know if you have further questions!
Best regards,
Patrick