Compiler generating two objects where one would suffice

Suppose you have the following setup:


Place is a room.

Exemplification relates one thing to various people. The verb to bemuse means the exemplification relation.

A mystery is a thing that bemuses somebody. [problem line]

Test me with "relations / tree".

For some reason, there are two generic people created by the compiler in response to the problem line (even in 10.1.2). Other variations in the declaration (such as There is a rock. The rock bemuses somebody.) result in one person.

Is this a bug, or is there some nuance to the declarations such that there being two people makes sense?

1 Like

Are you trying to set up a generic kind called mystery, where anything that bemuses somebody is one? If so, try:

Definition: a thing is a mystery if it bemuses somebody.

If you’re trying to make it so that the thing can be referred to as someone’s mystery, try:

Exemplification relates one thing (called the mystery) to various people.

(I haven’t tested these, but they should work or be fairly close based on what I remember about this syntax.)

No, that scenario has no intended purpose. It is set up only as a minimal example to demonstrate what may be a bug.

The >TEST ME commands illustrates what happens: Two objects of type person (with different object IDs) are created. Only one such object is sufficient to satisfy the declaration.

1 Like

Looks like a bug to me.