def add_sniffed(self, href, label, sniffed_from): if not self.ignore(href): uri = resource(href) label = literal(label) if not self.exists(uri, None, None): print "ADDED:", href, label self.add(uri, LABEL, label) self.add(uri, TYPE, SNIFFED) timestamp = literal(date_time()) self.add(uri, SNIFFED_ON, timestamp) self.add(uri, SNIFFED_FROM, resource(sniffed_from))
def add_statement(self, subject, predicate, object, literal_object=None, anonymous_subject=None, anonymous_object=None): s = resource(subject, anonymous_subject) p = resource(predicate) if literal_object: o = literal(object) else: o = resource(object, anonymous_object) self.add(s, p, o)
def __check(self, url): every = int(self.get_first_value(url, SNIFF_EVERY, str(SECONDS_IN_DAY))) # TODO: take the oldest value last = self.get_first_value(url, SNIFF_LAST, None) if not last or time() - parse_date_time(last) > every: self.remove(url, SNIFF_LAST, None) self.add(url, SNIFF_LAST, literal(date_time())) self.sniff(url)
def __init__(self, host, username, password): self.store = TripleStore() M = poplib.POP3(host) M.user(username) M.pass_(password) numMessages = len(M.list()[1]) self.messages = {} for i in range(numMessages): uidl = string.split(M.uidl(i+1))[2] msg = M.retr(i+1)[1] lineFile = LineFile(msg) message = rfc822.Message(lineFile) bodyStartLine = lineFile.count headers = message.dict body = string.join(msg[bodyStartLine:], "\n") subject = resource(POP_URI + uidl) for header in headers.keys(): predicate = resource(RFC_822_URI + header) object = literal(headers[header]) self.store.add(subject, predicate, object) self.store.add(subject, BODY, literal(body)) self.store.add(subject, TYPE, MESSAGE) M.quit()
def get_triple(self, text): parts = text.split(" ", 2) subject = self.process_resource(parts[0]) if subject == -1: return None # error property = self.process_resource(parts[1]) if property == -1: return None # error if parts[2][0] == '"' and parts[2][-1] == '"': value = literal(parts[2][1:-1]) else: value = self.process_resource(parts[2]) if value == -1: return None # error return (subject, property, value)