Esempio n. 1
0
 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))
Esempio n. 2
0
 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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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()
Esempio n. 5
0
 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)