00001
00002
00003 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_RULE_H
00004 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_RULE_H
00005
00006 #include "config.h"
00007 #include "TripleSource.h"
00008 #include "InMemoryPool.h"
00009
00013 class Rule {
00014
00015 public:
00016
00017
00018 Rule(const TripleSource& premIn, const TripleSource& concIn,
00019 const char* varPattern = 0);
00020 Rule(const Rule& other);
00021 const Rule& operator=(const Rule& other);
00022 bool operator==(const Rule& other) const;
00023 bool operator<(const Rule& other) const;
00024 size_t hash() const;
00025 friend std::ostream& operator<<(std::ostream& s, const Rule& me);
00026 std::ostream& print_to(std::ostream& stream) const;
00027 ~Rule();
00028
00029
00030
00031
00032
00033
00034 private:
00035 InMemoryPool premise;
00036 InMemoryPool conclusion;
00037 int premExiVars;
00038 int concExiVars;
00039
00040
00041
00042
00043
00044 };
00045
00046 STANDARD_EXTERNAL(Rule)
00047
00048 #endif