;;;; -*- Mode: LISP; Syntax: Common-Lisp; Base: 10 -*- ;;;; --------------------------------------------------------------------------- ;;;; File name: qr-bote-examples.lsp ;;;; System: ;;;; Author: Praveen Paritosh ;;;; Created: April 16, 2004 13:31:39 ;;;; Purpose: ;;;; --------------------------------------------------------------------------- ;;;; Modified: Friday, April 16, 2004 at 15:35:12 by paritosh ;;;; --------------------------------------------------------------------------- (in-package :common-lisp-user) ;; To Run the example ;; (fire::setup-solve-test-case *news-suggestions* *news-facts* :KB) ;; (multiple-value-setq (ans tree) (fire::solve *news-query* :response :bindings)) ;; For more solutions ;; (fire::get-solution tree) ;; How much money is spent on Newspapers in the US? ;; (annualSales NewspaperCopy UnitedStatesOfAmerica (YearFn 2003) ?money) (defparameter *news-suggestions* '((defSuggestion PerBuyerStrategy (annualSales ?obj ?place ?time ?money) :subgoals ((annualExpensePerBuyer ?obj ?place ?time ?money-per-buyer) (numberOfBuyers ?obj ?place ?time ?number)) :result-step (evaluate ?money (TimesFn ?money-per-buyer ?number))) (defSuggestion UnitaryStrategyForCost (annualExpensePerBuyer ?obj ?place ?time ?money-per-buyer) :subgoals ((annualUnitsBoughtPerBuyer ?obj ?place ?time ?units) (cost ?obj ?unit-cost)) :result-step (evaluate ?money-per-buyer (TimesFn ?units ?unit-cost))) ;;; (defSuggestion FrequencyStrategy ;;; (annualUnitsBoughtPerBuyer ?obj ?place ?time ?units) ;;; :subgoals (( (defSuggestion FractionOfTotalStrategy (numberOfBuyers ?obj ?place ?time ?number) :subgoals ((populationDuring ?place ?any-time ?total) ;; This is bad, it should be more clever than this (percentOfBuyers ?obj ?place ?percent)) :result-step (evaluate ?number (QuotientFn (TimesFn ?total ?percent) 100))) )) (defparameter *news-facts* '((cost NewspaperCopy 0.75) (percentOfBuyers NewspaperCopy UnitedStatesOfAmerica 30) (annualUnitsBoughtPerBuyer NewspaperCopy UnitedStatesOfAmerica (YearFn 2003) 365))) (defparameter *news-query* '(annualSales NewspaperCopy UnitedStatesOfAmerica (YearFn 2003) ?money)) ;; How Many K-8 Teachers are there in the US? ;; (cardinality K-8SchoolTeacher ?numteachers) ;; (fire::setup-solve-test-case *teacher-suggestions* *teacher-facts* :KB) ;; (multiple-value-setq (ans tree) (fire::solve *teacher-query* :response :bindings)) ;; For more solutions ;; (fire::get-solution tree) (defparameter *teacher-suggestions* '((defSuggestion StudentsPerTeacherStrategy (cardinality K-8SchoolTeacher ?numteachers) :subgoals ((cardinality K-8SchoolStudent ?numstudents) (studentsPerTeacher K-8School ?perteacher)) :result-step (evaluate ?numteachers (TimesFun ?numstudents ?perteacher))) (defSuggestion UniformAgeDistributionStrategy (cardinality K-8SchoolStudent ?numstudents) :subgoals ((populationDuring UnitedStatesOfAmerica (YearFn 1997) ?population) (minimumAge K-8SchoolStudent ?min) (maximumAge K-8SchoolStudent ?max) (lifeExpectancyForGroupInRegion UnitedStatesOfAmerica Person (YearsDuration ?life))) :result-step (evaluate ?numstudents (TimesFn (QuotientFn (DifferenceFn ?max ?min) ?life) ?population))) )) (defparameter *teacher-facts* '((minimumAge K-8SchoolStudent 5) (maximumAge K-8SchoolStudent 14) (studentsPerTeacher K-8School 30))) (defparameter *teacher-query* '(cardinality K-8SchoolTeacher ?numteachers)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; End of Code