This first - then the rest Representations 2 Wednesday, March 28, 2012 4:51 PM WB: The inference system is a collection of functions that we've assembled in a variety of ways to explore different test cases. At the low level, there's a believe function that takes a literal like (fu bar) or (goal BOB (fu bar)), an agent to treat as the root for determining where to place the nested literal, and an optional list of sources that can be used to identify where the belief came from (e.g., a particular conversation, some sensor, or whatever's helpful). There's also an infer function that takes the system's working memory structure and its knowledge base, which stores the rules. You can also tell it which agent model that will provide the focus of attention. One believe--infer cycle results in a single act of inference. Either a rule is fired or an existing, instantiated rule is co-opted to account for the focus of attention. Does that help? More notes below. The notes beow were more helpful - we can talk tomorrow morn. ------------------------------------------- (action ?time (inform ?l1 ?s1 (that ?x))) <= (action ?time (say ?s1 (that ?x))) (belief ?l1 ?x) (belief ?l1 (belief ?s1 ?x)) I suppose you can interpret "X <= Y" symbol to mean "X identifies a pattern comprising itself and Y." RWW: You haven't actually written "X <= Y" you wrote X <= A B C Can I assume you meant X <= A B C or is it some other grouping WB: X <= A & B & C Should be more parentheses. I left them out, but shouldn't have. ((X) <= (A B C)) OK I understand the syntax ------------------------------------- This I understand better Is this (mod the exact words used) the kind of thing we will use to define rules? In any event I will update the dialog annotation to definr rules in this style. I like the use of (that ?x) as opposed to my * I assume the following (which is likely still 'wrong') 1) (action ?time ?thing) is a triple meaning that ?thing appeared in my-belief at time ?time (is ?time just a number? - ie what's its data type) The closer-to-real way at the moment is to write (create-rules (:antecedent ((action ?time (say ?s1 (that ?x))) (belief ?l1 ?x) (belief ?l1 (belief ?s1 ?x))) :consequent ((action ?time (inform ?l1 ?s1 (that ?x))))) ...... ) The symbols 'create-rules, ':antecedent, and ':consequent will likely change in the future once we have a better idea of the language that we want to use. I could imagine 'create-pattern, ':head, and ':body, but it's pretty arbitrary at the moment. I don't think createrule :antecedent and :consequent are particularly bad, What's the problem. What about create-rule :before :after (but I can live with whatever - let's just choose) Example 1/ (Assume the content of the utterance is expressed as "(fu bar)"). I hear you say (fu bar) at time t1. RWW: inform is the kind of speech act? Where does it come from? I have spent some time this weekend thinking about this and I have a suggestion. I have not yet written it up but we can discuss this tomorrow, RWW: Inform is not a triple? What kind of expression is this? Do you imagine something like this in the informal description language? (action t1 (inform me you (that (fu bar)))) (action t1 (say you (that (fu bar)))) (belief me (fu bar)) (belief me (belief you (fu bar))) RWW: I'm begining to understand how you manage this Because there is an implied belief modality for the current agent (me), the system interprets these as the following. (belief me (action t1 (inform me you (that (fu bar))))) (belief me (action t1 (say you (that (fu bar))))) (belief me (belief me (fu bar))) (belief me (belief me (belief you (fu bar)))) The modal representation (belief me (belief me X)) resolves to (belief me X) and eventually just X in the system's model of itself. RWW: this is clear RWW: I still worry about the idea that (action ?time (say ?Y (that ?X))) justifies (belief me ?x) or even (belief me (belief ?Y ?X)) It must rely on 1) my 'trusting' Y (he's not a lier) 2) my beleiving that he know about the 'subject matter' of ?X 3) that it is still true and has the strange consequenses 1) since the belief is not time stamped it means that for me its always was and will forever be true? 4) talking to oneself not what I believe but what I say to myself is de facto true!!!!! (action ?t (say me (that ?X))) results in (belief me ?X) WB: Mostly legitimate concerns. I was attempting to stay faithful to what you wrote, at least in this rule. Evaluations of trust and expertise are implicit at the moment, however I'm working on static and dynamic models of deception and ignorance to get a sense for how to handle these issues. RWW: We need to seperate the reasonong about beliefs an xxxx Your number (3) seems like a standard concern for any act of communication, even network protocols. All beliefs have internal timestamps that indicate when they were held. If ?X above were about time, as in "Bob was at the train station at 5pm" then the relation would have a temporal argument. If it's "Bob is at the train station," then I believe it from the point that I start believing it until I have evidence or inference otherwise. I agree that time is a hard problem. I think we can make some headway without solving temporal reasoning. As for (4), I mentioned that variables referring to time could appear in a set of constraints on the pattern/rule. That's true of any variable. We could, for instance, require that (not (eq ?s ?l)). If necessary, to manage soliloquy and/or internal dialog, we could have a separate rule built specifically for self-dialog. RWW: this subtifuge does not work. I can simply ask p1 to ask p2 to inform me of something. Also I might uverhea a 'disagreement' between two creditable persons eg (say p1 (that (scientific-fact global-warming))) and (say p2 (that (not (scinntific-fact global-warming)) in which case my beliefs wuld be contradiary an I could happily believe anything. (particuliarly if I have no eveidence one way or the other about the issue) If I do have a belief about the issue do I 'downgrade' my opinion of the trustworthyness of one (or both) of the sayers? ... ??? ... ======================================================= Reference 1 Hi Richard, We might need to iterate over my suggestions, especially since I changed the character of most of the rules that you sent. Let me know if you have any questions, or if anything looks like a misinterpretation of what you had intended. Also, I think I was consistent, but if some of the variables (which are prepended with a ?) look odd, let me know. Best, Will Omitted Example 2/ I tell you (fu bar) with an attempt to inform. (action t1 (inform you me (that (fu bar)))) (action t1 (say me (that (fu bar)))) (belief you (fu bar)) (belief you (belief me (fu bar))) Both actions are stuffed into my model of myself. The explicit beliefs are stored in my-model-of-you and my-model-of-your-model-of-me respectively. Example 3/ I hear Bob tell Sally (fu bar). (action t1 (inform sally bob (that (fu bar)))) (action t1 (say bob (that (fu bar)))) (belief sally (fu bar)) (belief sally (belief bob (fu bar))) Both actions are stuffed into my model of myself. The explicit beliefs are stored in my-model-of-sally and my-model-of-sally's-model-of-bob respectively. Now I might also opt to believe (fu bar) because I overheard the conversation, but I don't have to. I might have to fire a rule that says that Bob was also informing me, or I might fire a rule that deals with how eavesdropping affects my beliefs about the content of statement. In triples, we get (action ?time (inform ?l1 ?s1 (that ?x))) <= (action ?time (say ?s1 (that ?x))) (belief ?l1 ?x) (belief ?l1 (belief ?s1 ?x)) (isAct ?a1 inform) (listener ?a1 ?l1) (speaker ?a1 ?s1) (content ?a1 ?c1) (thatRel ?c1 ?r1) (time ?a1 ?time) (isAct ?a2 say) (speaker ?a2 ?s1) (content ?a2 ?c1) (time ?a2 ?time) ;; notice that modal operators are still nestable. (belief ?l1 (isRel ?c1 ?r1)) (belief ?l1 (belief ?s1 (isRel ?c1 ?r1))) RWW: yes (where-is (listener speaker where-is-loc entity) (before (isA speaker [speaker]) (isA listener [listener]) (isA where-is-loc Enum['Geography,On-His-Body,On-Issue, ...]) (isA amount [amount]) ) (do (say speaker *(where-is ,where-is-type ,entity)) ) (then (goal listener (do (answer-question speaker *(where-is ,where-is-loc ,entity)))) ) ) This case is difficult because we haven't talked about questions in any level of detail, and we never got a reply from the natural language side when we asked how they were going to represent questions. As a result, I'm making this up based entirely on what you wrote. RWW: do we need to determine whether this is a question In my view the speech act is not question but (where-is ...) The ?type is because there are may different ANSWERS ti where is eg 'Afghanistan' could be a 'true' answer to the where is question BUT he wants the location 'on the patients body' (action ?time1 (question ?l1 ?s1 (where-is ?type ?entity))) <= (action ?time1 (say ?s1 (that (where-is ?type ?entity)))) (goal ?l1 (action ?time2 (answer-question ?l1 ?s1 (where-is ?type ?entity)))) We may not represent the process involved in answering the question. That might be carried out through a "primitive action" which is a code word for an executable, non-declarative process that interacts with the environment. Also known as "magic". We can also store constraints on the rules that will let us state (< ?time1 ?time2), but let's ignore those for the time being. (reply-to-question (listener speaker question) (before (isA speaker [speaker]) (isA listener [listener]) (isA question [question]) ) (do (if (isAnswer ?answer question) (say speaker *(reply-to-question ,question ,answer)) (say speaker *(reply-to-question ,question 'I-dont-know-the-answer)) ) ) (then (belief listener (heard speaker request)) ) ) Listener asked a question and is now hearing the reply from the speaker. (action ?time1 (reply-to ?l1 (question ?s1 ?l1 ?q))) <= (action ?time2 (say ?s1 (that ?x))) (belief ?l1 (belief ?s1 (action ?time0 (question ?s1 ?l1 ?q)))) RWW: My concern in the 'do' section was that the decision of what to say depends whether ?speaker has found an answer to the ?listener question. We need to be able to coordinate questions with answers. Also the then should have been (belief listener (heard speaker Request)) ? am I the only one who 'has' actions There are may different reply-to (not all of which are questions) I've altered this one quite a bit. I'm not satisified with this pattern because there's more to "reply-to" than captured in either case. It may be necessary to process the content of the statement ?x to know whether it's a reply. Before we can determine how to better express reply-to we might need to know what the other options are. For instance, a request to repeat a la, "What was that?" or if you're in Cincinnati, "Pardon?" might also occur. RWW: Other options - ie more options in 'do' ; acknowledge the latest speech act (acknowledge (listener speaker speech-act-name) (before (isA speaker [speaker]) (isA listener [listener]) (isA speech-act-name [speech-act-name]) (the-last-speech-act-called ?speech-act speech-act-name) ) (do (say speaker *(acknowledge ,speech-act-name)) ) (then (belief listener (heard speaker ?speech-act)) ) ) Speaker acknowledges a previous speech act by the listener. (action ?time1 (acknowledge ?l1 ?s1 (action ?time0 (say ?l1 (that ?x))))) <= (action ?time1 (say ?s1 (acknowledge ?l1 ?time0))) (belief ?l1 (belief ?s1 (action ?time0 (say ?l1 (that ?x))))) RWW: We need to talk about time can more than one person talk at the 'same' time why isn't time a 'property' of an action (event?) Okay, I did my best here. I think we can connect the acknowledgement to a specific statement through the time stamp. I realize that the agent might be acknowledging something other than what was just said---for instance, a friend in the distance, the nervous tick of the other agent, that time is passing. However, this acknowledge implicitly ranges over speech acts. So there. RWW: yes - but in triples this is even wierder I have lots more to say and lots unwritten. See you tomorrow. Richard