Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000632Core InformPhrases and functional programmingpublic2011-03-31 13:022014-05-07 07:33
Reportercapmikee 
Assigned Tograham 
PrioritynormalSeveritymildReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSMac OS XOS Version10.5
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0000632: Description of objects involving two relations is parsed in a nonsensical way
DescriptionThe description of objects given as the "long version" in the example resolves to the rope, and not the chain. I can't find any English interpretation of the phrase, even allowing for the verb "that connect to" to refer to the chain (i.e. "a chain that connects to"), that could possibly resolve to the rope.
Minimal Source Text To Reproduce
Cohesion relates a thing (called the first item) to a thing (called the second item) when the first 
item is the second item or the first item incorporates the second item or the second item incorporates 
the first item.

The verb to be stuck with implies the cohesion relation.

Connection relates various things to various things.

The verb to connect to (he connects to, they connect to, he connected to, it is connected to, he is connecting 
to) implies the connection relation.

test is a room.

The rope is a thing.

The chain is a thing.

The chain connects to the rope.

When play begins: say "Long version: [the list of things stuck with the chain that connect to something 
stuck with the rope]. Short version: [the list of things stuck with the chain that connect to the rope]."
Additional Informationfrom auto.inf:

The long version is determined by the routine Prop_0:

! True or false?
! [ thing(x) & Exists y : thing(y) & cohesion(y, 'rope') & connection('chain', y) & cohesion(x, y) ]
[ Prop_0 x x_ix y y_ix ;
    if ((x ofclass K2_thing)){
        for (y=IK2_First: y: y=y.IK2_Link){
            if (((Relation_67(y,I89_rope))) && ((Relation_TestVtoV(I90_chain,Rel_Record_69,y,false))) && ((Relation_67(x,y)))){
                rtrue;
            }
        }
    }
    rfalse;
];

I can't find any justification in the source for the cohesion(x, y) condition.
TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships
related to 0000645closedemshort Scope Problem Listing Scenery Things 

-  Notes
(0001120)
EmacsUser (manager)
2011-03-31 15:50
edited on: 2011-03-31 16:28

Possibly a simpler test case:

- - - -
There is a room.
When play begins:
    showme the list of things enclosing the player that encloses something;
    showme the list of things that enclose something enclosed by the player.
- - - -

The two showme lines unexpectedly generate identical I6.

(0002479)
graham (administrator)
2014-02-11 16:28

A bug to do with renumbering variables in the middle of logical deductions. For the record, the meaning of:

(1) things enclosing the player that encloses something
(2) things that enclose something enclosed by the player

is that (1) chooses the x such that x -> player -> (a thing), whereas (2) chooses the x such that player -> x -> (a thing).

- Issue History
Date Modified Username Field Change
2011-03-31 13:02 capmikee New Issue
2011-03-31 15:50 EmacsUser Note Added: 0001120
2011-03-31 16:28 EmacsUser Note Edited: 0001120 View Revisions
2011-04-11 20:55 jmcgrew Status new => acknowledged
2011-04-12 09:12 EmacsUser Status acknowledged => confirmed
2011-04-26 00:05 jmcgrew Relationship added related to 0000645
2014-02-11 16:28 graham Note Added: 0002479
2014-02-11 16:28 graham Status confirmed => resolved
2014-02-11 16:28 graham Resolution open => fixed
2014-02-11 16:28 graham Assigned To => graham
2014-05-07 07:32 jmcgrew Fixed in Version => 6L02
2014-05-07 07:33 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker