Go to the documentation of this file.00001 #ifndef actasp_AspKR_h__guard
00002 #define actasp_AspKR_h__guard
00003 
00004 #include <actasp/AspAtom.h>
00005 #include <actasp/AnswerSet.h>
00006 #include <actasp/MultiPlanner.h>
00007 
00008 #include <vector>
00009 #include <list>
00010 
00011 namespace actasp {
00012 
00013 class Action;
00014 
00015 struct AspKR : public actasp::MultiPlanner {
00016   
00017   
00018   virtual ActionSet availableActions() const throw() = 0;
00019 
00020         virtual AnswerSet currentStateQuery(const std::vector<actasp::AspRule>& query) const throw() = 0;
00021         
00022         
00023         virtual bool updateFluents(const std::vector<actasp::AspFluent> &observations) throw() = 0;
00024   
00025   
00026   virtual std::list< std::list<AspAtom> > query(const std::string &queryString, unsigned int initialTimeStep,
00027                                    unsigned int finalTimeStep) const throw() = 0;
00028         
00029         virtual bool isPlanValid(const AnswerSet& plan, const std::vector<actasp::AspRule>& goal)  const throw() = 0;
00030   
00031   virtual void reset() throw() = 0;
00032         
00033         virtual ~AspKR() {}
00034 };
00035         
00036 }
00037 #endif