Another Snag

Well, I’ve done it again, and once again I’ve got to figure out how to get out of this mess I’ve made. I have written a complex method that processes the statement:

Subject tells DirObject that 3Actor perceives 4Actor to possess 5ActorTrait in the amount 6Quantifier with uncertainty of 7Quantifier.

That’s a mouthful, isn’t it? But zero in on the core content: Subject conveys his P3[5ActorTrait, 4Actor, 3Actor, Subject] to DirObject. What should DirObject do with this information? I have already put in all sorts of code that modifies DirObject’s P2[5ActorTrait, 4Actor, DirObject] in response to this, but here’s a question: should I accept the reported P3 directly? After all, I already have a version of that P3 value — I shouldn’t simply replace my existing version with the new version. If I wanted to do this properly, I’d set up and use P4 values, but that’s going too damn far.

I must therefore figure out how to merge Subject’s P3 value with my existing P3 value. That entails several steps:

1. Figuring out how much weight to assign to Subject’s P3 value, based on P2Honest[Subject, DirObject].
2. Combining the two P3 values — that’s straightforward
3. Altering P2Honest[Subject, DirObject] in proportion to the deviance between old and reported values.

This is really just another version of the main problem of adjusting P2Honest values for all actors based on the new P2 I derive from the newly reported P3. Arg, this is getting very messy!

The next day
I have gone round and round over this and I think that the only solution is to limit all gossip verbs to 3rd person statements. In other words, we can’t have the sentence structure shown at the beginning of this essay. Instead, the best we can do is this:

Subject tells DirObject that Subject perceives 3Actor to possess 4ActorTrait in the amount 5Quantifier with uncertainty of 6Quantifier.

In other words, you can only talk about your own feelings. This means that the datum is automatically entered into the DirObject’s P3[3Actor, Subject] slot. There’s no need to worry about the possibility that Subject is lying. Subject may indeed be lying, but that can be handled by checking the statement with the existing value. 

This greatly simplifies the problem and permits me to get back to work.