diff --git a/classifier/README.txt b/classifier/README.txt index 33925f5..b4a2f24 100644 --- a/classifier/README.txt +++ b/classifier/README.txt @@ -131,11 +131,13 @@ that may be identified as being candidates for classification. So we are now ready to have the whole stuff run in one call. >>> classifier.process(r1) + Classifier fileclassifier: Assigning: ... >>> list(sorted([c.title for c in r1.getConcepts()])) [u'Collection One', u'Contract', u'External File', u'Gerald Webb', u'im Editors'] >>> for name in rnames[1:]: ... classifier.process(resources[name]) + Classifier fileclassifier: Assigning: ... >>> len(webbg.getResources()) 4 >>> len(webbg.getResources((concepts['ownedby'],))) @@ -145,6 +147,7 @@ We can repeat the process without getting additional assignments. >>> for name in rnames[1:]: ... classifier.process(resources[name]) + Classifier fileclassifier: Already assigned: ... >>> len(webbg.getResources()) 4 diff --git a/classifier/base.py b/classifier/base.py index 4cd95b4..32c5b17 100644 --- a/classifier/base.py +++ b/classifier/base.py @@ -94,15 +94,16 @@ class Classifier(AdapterBase): statement.subject = resource if statement.predicate is None: statement.predicate = self.defaultPredicate - self.log('Assigning: %s %s %s' % (statement.subject.title, - statement.predicate.title, object.title), 5) - self.assignConcept(statement.subject, object, - statement.predicate) + self.assignConcept(statement.subject, object, statement.predicate) def assignConcept(self, resource, concept, predicate): resources = concept.getResources([predicate]) if resource not in resources: concept.assignResource(resource, predicate) + message = 'Assigning: %s %s %s' + else: + message = 'Already assigned: %s %s %s' + self.log(message % (resource.title, predicate.title, concept.title), 5) def log(self, message, level=5): if level >= self.logLevel: