00001
00002
00003
00004 #ifndef DEV_W3_ORG__2001_BLINDFOLD_SRC_TRIPLESINKREIFIER_H
00005 #define DEV_W3_ORG__2001_BLINDFOLD_SRC_TRIPLESINKREIFIER_H
00006 #include "config.h"
00007
00008 #include "TripleAdder.h"
00009 #include "Symbol.h"
00010
00025 class TripleSinkReifier : public TripleAdder {
00026
00027 public:
00028
00029
00030 TripleSinkReifier();
00031 TripleSinkReifier(const TripleSinkReifier& other);
00032 const TripleSinkReifier& operator=(const TripleSinkReifier& other);
00033 bool operator==(const TripleSinkReifier& other) const;
00034 bool operator<(const TripleSinkReifier& other) const;
00035 size_t hash() const;
00036 friend std::ostream& operator<<(std::ostream& s, const TripleSinkReifier& me);
00037 std::ostream& print_to(std::ostream& stream) const;
00038 ~TripleSinkReifier();
00039
00040
00041
00042
00043
00048 TripleSinkReifier(TripleSink* sink);
00049
00063 virtual void addTo(Symbol statementSet, Symbol subject,
00064 Symbol predicate, Symbol object);
00065
00066
00078 virtual void includeIn(Symbol superset, Symbol subset);
00079
00090 virtual void include(Symbol subset);
00091
00092 #if 0
00093
00098 struct Vocab {
00099 Vocab(SymbolSpace* space) :
00100 subject(space, "http://www.w3.org/1999/02/22-rdf-syntax-ns#subject"),
00101 predicate(space, "http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate"),
00102 object(space, "http://www.w3.org/1999/02/22-rdf-syntax-ns#object"),
00103 type(space, "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"),
00104 in(space, "foo#in"),
00105 subset(space, "foo#subset"),
00106 includedSet(space, "foo#includedSet")
00107 {
00108 }
00109 Symbol subject, predicate, object, type, in, subset, includedSet;
00110 } *vocab;
00111
00112 #endif
00113
00114 virtual void setSink(TripleSink* sink);
00115
00116 private:
00117
00118
00119 };
00120
00121
00122 STANDARD_EXTERNAL(TripleSinkReifier)
00123
00124 #endif