misc/aqe: thinking about inference
This commit is contained in:
		
							parent
							
								
									c87bbfdb93
								
							
						
					
					
						commit
						e7c4c5ba49
					
				| 
						 | 
					@ -0,0 +1,61 @@
 | 
				
			||||||
 | 
					Inference example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Given
 | 
				
			||||||
 | 
					airport_kb = kb.from_facts([
 | 
				
			||||||
 | 
					    ('is', 'N29EO', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N29EO', 'dia'),
 | 
				
			||||||
 | 
					    ('is', 'N10IV', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N10IV', 'oak'),
 | 
				
			||||||
 | 
					    ('is', 'N33FR', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N33FR', 'lga'),
 | 
				
			||||||
 | 
					    ('is', 'dia', 'Airport'),
 | 
				
			||||||
 | 
					    ('is', 'lga', 'Airport'),
 | 
				
			||||||
 | 
					    ('is', 'oak', 'Airport'),
 | 
				
			||||||
 | 
					])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fly = actions.Action(
 | 
				
			||||||
 | 
					    [('is', '?subject', 'Plane'), ('is', '?object', 'Airport')],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?object'),],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?current'),],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?object')])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Should be able to do something like:
 | 
				
			||||||
 | 
					> infer(airport_kb, [fly], ('at', 'N10IV', 'lga'))
 | 
				
			||||||
 | 
					('fly', 'N10IV', 'lga')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Inference search example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					airport_kb = [
 | 
				
			||||||
 | 
					    ('is', 'N29EO', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N29EO', 'dia'),
 | 
				
			||||||
 | 
					    ('is', 'N10IV', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N10IV', 'oak'),
 | 
				
			||||||
 | 
					    ('is', 'N33FR', 'Plane'),
 | 
				
			||||||
 | 
					    ('at', 'N33FR', 'lga'),
 | 
				
			||||||
 | 
					    ('is', '1Z12345E0205271688', 'Package'),
 | 
				
			||||||
 | 
					    ('at', '1Z12345E0205271688', 'dia'),
 | 
				
			||||||
 | 
					    ('is', '1Z12345E6605272234', 'Package'),
 | 
				
			||||||
 | 
					    ('at', '1Z12345E6605272234', 'dia'),
 | 
				
			||||||
 | 
					    ('is', '1Z12345E0305271640', 'Package'),
 | 
				
			||||||
 | 
					    ('at', '1Z12345E0305271640', 'oak'),
 | 
				
			||||||
 | 
					    ('is', '1Z12345E1305277940', 'Package'),
 | 
				
			||||||
 | 
					    ('at', '1Z12345E1305277940', 'lga'),
 | 
				
			||||||
 | 
					    ('is', '1Z12345E6205277936', 'Package'),
 | 
				
			||||||
 | 
					    ('at', '1Z12345E6205277936', 'lga'),
 | 
				
			||||||
 | 
					    ('is', 'dia', 'Airport'),
 | 
				
			||||||
 | 
					    ('is', 'lga', 'Airport'),
 | 
				
			||||||
 | 
					    ('is', 'oak', 'Airport'),
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fly = actions.Action(
 | 
				
			||||||
 | 
					    [('is', '?subject', 'Plane'), ('is', '?object', 'Airport')],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?object'),],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?current'),],
 | 
				
			||||||
 | 
					    [('at', '?subject', '?object')])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Trying to define load which requires that both package and airplane are
 | 
				
			||||||
 | 
					at the same place: how can this be expressed?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue