Character knowledge bases

Is there any way to make “instances of relationships” into a type, so that they can be the targets of relationships as well? Mainly for tracking knowledge for multiple characters. For example:

Knowledge relates various people to various relationship-instances.
Now foo is related to bar by qux.
Now Andy knows that (foo is related to bar by qux).

“Relation of X to Y” is a type. So you could say

Knowledge relates various people to various relations of person to person.

Note however that this refers to the relation as a whole (“knowledge”), not a particular tuple from it (“foo knows bar”). Inform doesn’t currently support three-way relations because of the crazy memory requirements authors could accidentally create.

The extension Threaded Conversation by Chris Conley handles knowable facts nicely, allowing them to be introduced as text tokens and allowing characters to “think” (make decisions based upon facts known). You could simply create a table of knowable facts (not all of which need be mutually true) and allow characters to know them as needed.

Table of All Known Facts (continued)
fact summary
bar-qux “Bar is related to qux.”
bar-not-qux “Bar is not related to qux.”

Now Foo knows bar-qux.[/code]