predicates: placement on top of underneath beside around inside center of corner of against negative predicates spacing: padding around an object when it gets placed "arm's length" "body width" "near" "far' some predicates carry notion of spacing like against, on top of while others do not like around. concepts to know about: weapon -> sword, axe, club, staff, spear armor -> curiass, gauntlet, helmet, shield, pauldroon, greaves, boots clothing -> shirt, pant, skirt, hat, belt, dress, shoes jewelry -> ring, amulet, locket books furniture -> dresser, desk, table, shelf, chair, stool, cabinet containers -> chest, box, barrel ingrediants -> edible, chemical, mineral so we start with an empty room which has walls, a floor, a ceiling, and doors (not stairs for now). for each object get the [IsA] relationship from concept net loop through the objects trying to place them from their [IsA] mappings depending on what's already been placed. possibly try to place large objects first -> generally dominate room, and most constrained in general, AI problem of constraint propagation; choose most constrained object to place first constraint is measured by placement predicates, and possible spacing predicates as well --------------------------------------------------------------------------------------------------------- xml file: want to include a negative flag? like or maybe this is better other tags like perhaps positive will be enough? place from most constrained to least constrained as measured by the number of tuples object is in try to subject in order of specificity (how far from root of graph) applying multiple constraints? for now just start with one and make assumptions about them. data structures/objects and modules: Room representation that knows where the walls, floors, ceilings, doors are. The room also keeps track of what's been placed in it and where. The room should also handle placement of objects. Move those functions here. Determines whether an object can be placed at the requested location. GameObject that represents a specific named instance of an object. AI/Common Sense placement module that keeps all the mappings and tries to place the objects in the room according to mappings. Mapping of subjects to list of predicate object pairs Mapping of predicates to appropriate function(s) Mapping of object to list of subjects ordered from most to least specific