This is an old revision of the document!


Commonsense knowledge about object locations

Commonsense knowledge about typical object locations was acquired by the Open Mind Indoor Common Sense (OMICS http://openmind.hri-us.com/) project. We processed the natural language database entries and translated them to well-defined concepts within the KnowRob ontology as described in Putting People's Common Sense into Knowledge Bases of Household Robots. In Searching Objects in Large-scale Indoor Environments: A Decision-thereotic Approach we applied this knowledge in object search tasks.

Getting Started

First you have to build the rospackage knowrob_omics and then run it using rosprolog.

 rosmake knowrob_omics
 rosrun rosprolog rosprolog knowrob_omics

Queries about object locations

To query the probability of finding an object in a given room type you can use the following query:

 ?- probability_given(knowrob:'OmicsLocations', Obj, knowrob:'Kitchen', Pr).
 Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#CitrusFruit',
 Pr = 0.003865979381443299 ;
 Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#Bowl-Eating',
 Pr = 0.006443298969072165

If you are interested in what type of room you could find a given object use the following query:

 ?- bayes_probability_given(knowrob:'OmicsLocations', Room,
 knowrob:'Sandwich',Pr).
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen',
 Pr = 0.21657432923639094 ;
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#OfficeRoom',
 Pr = 0.05065150074968034 ;
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Hallway',
 Pr = 0.07410126961527308 ;
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Classroom',
 Pr = 0.08278900467361545 ;
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#ConferenceRoom',
 Pr = 0.08394689285086883 ;
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#RestaurantSpace',
 Pr = 0.24008811355348483 

You can see the processed database table entries with:

 
 ?- rdf_has(Entry, rdf:type, knowrob:'OmicsLocations'),
 rdf_has(Entry,knowrob:subject,Obj),
 rdf_has(Entry,knowrob:object,Room).
 Entry = 'http://ias.cs.tum.edu/kb/knowrob.owl#OmicsLocations-0',
 Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#CitrusFruit',
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen' ;
 Entry = 'http://ias.cs.tum.edu/kb/knowrob.owl#OmicsLocations-1',
 Obj = 'http://ias.cs.tum.edu/kb/knowrob.owl#Bowl-Eating',
 Room = 'http://ias.cs.tum.edu/kb/knowrob.owl#Kitchen' ;

Get the list of Room types:

 ?- findall(Room, (rdf_has(Entry, rdf:type, knowrob:'OmicsLocations'),
 rdf_has(Entry,knowrob:object,Room)), Rooms),
 list_to_set(Rooms,RoomSet).