from __future__ import generators import Triple as t class RDFDB: def __init__(self): # a RDF db is a list of triples. self.db = [] self.infDB = None self.varPred = [] def addTriple(self, triple): self.db = self.db + [triple] def addTriples(self, tripleset): self.db = self.db + tripleset def genTriples(self): for counter in self.db: yield self.db[counter] def toString(self): out = "\nTriples in store:\n\n" for triple in self.db: out = out + triple.toString() + "\n" if self.infDB <> None: out = out + "\nPredicate dictionary:\n\n" out = out + predDicToString(self.infDB) out = out + "\nVariable predicates:\n\n" out = out + varPredToString(self.varPred) return out def toN3(self): out = "\nTriples in store:\n\n" out = out + Triple.tsToString(self.db) return out def predDicToString(predDic): out = "" for key in predDic.keys(): out = out + "\nkey: " + str(key) + " content:\n" + t.tsToStringVar(predDic[key]) return out def varPredToString(varPred): out = "" for triple in varPred: out = out + "\n" + triple.toStringVar() return out