コード例 #1
0
ファイル: interpreter.py プロジェクト: BHX2/BottlenoseDB
 def assertTaxonomyAssignment(self, taxonomyAssignmentJSON):
   parents = list()
   children = list()
   def extractConcept(JSON):
     return JSON['concept']
   if 'component' in taxonomyAssignmentJSON['taxonomy_assignment']['parent']:
     raise Exception('assertTaxonomyAssignment: Cannot use /= to assert taxonomy of a component')
   elif isinstance(taxonomyAssignmentJSON['taxonomy_assignment']['parent'], list): 
     parents.extend(map(extractConcept, taxonomyAssignmentJSON['taxonomy_assignment']['parent']))
   else:
     parents.append(taxonomyAssignmentJSON['taxonomy_assignment']['parent']['concept'])
   if isinstance(taxonomyAssignmentJSON['taxonomy_assignment']['child'], list): 
     children.extend(map(extractConcept, taxonomyAssignmentJSON['taxonomy_assignment']['child']))
   else:
     children.append(taxonomyAssignmentJSON['taxonomy_assignment']['child']['concept'])
   self.context.recentlyMentionedPhrases |= set(parents)
   self.context.recentlyMentionedPhrases |= set(children)
   c = Concept()
   for parent in parents:
     for child in children:
       c.classify(child, parent)
   for child in children:
     examples = self.context.queryNounPhrases(child)
     if not examples:
       self.context.newNounPhrase(child)