@@ -120,10 +120,10 @@ def to_dict(self):
120
120
}
121
121
122
122
class ConceptAbstractSyntaxTreeBuilder :
123
- def __init__ (self , knowledge_base_path : str , max_length : Optional [int ] = None ):
124
- assert isinstance (knowledge_base_path , str ) and knowledge_base_path . strip (), "Knowledge base path is required"
123
+ def __init__ (self , knowledge_base : KnowledgeBase , max_length : Optional [int ] = None ):
124
+ assert isinstance (knowledge_base , KnowledgeBase ) and "A knowledge base instance is required"
125
125
126
- self .knowledge_base = KnowledgeBase ( path = knowledge_base_path )
126
+ self .knowledge_base = knowledge_base
127
127
self .max_length = max_length
128
128
129
129
ontology = self .knowledge_base .ontology
@@ -971,7 +971,7 @@ def _enforce(self, max_length:Optional[int]=None, replace_with_negation:bool=Fal
971
971
indx += 1
972
972
return corrected_tokens
973
973
974
- def generate_class_expression (kb_path : str , leaners_prediction = None , save_as_json : bool = False , relax_parentheses = False ):
974
+ def generate_class_expression (kb : KnowledgeBase , leaners_prediction = None , save_as_json : bool = False , relax_parentheses = False ):
975
975
if not leaners_prediction :
976
976
# token_sequence = ['¬', 'hasSibling', '.', '(', 'Thing', '⊓', '∃', 'hasChild', '.', 'Female', '⊓', 'Grandfather']
977
977
# token_sequence =['¬', ' Brother ', ' ) ']
@@ -996,11 +996,11 @@ def generate_class_expression(kb_path:str, leaners_prediction = None, save_as_js
996
996
# token_sequence = ['Person', '⊓', '(', 'Grandmother', '⊔', '(', '∃', 'married', '.', 'Grandfather', ')', ')', ')', ')', ')']
997
997
# token_sequence = ['Grandparent', '⊔', '(', '∃', 'married', '.', '(', ')', ')']
998
998
# token_sequence = ['(', '⊓', '(', '∀', 'married', '.', '(', '(', ')', ')', '(', '¬', ')', '(', ')', ')', ')']
999
- token_sequence = ['Person' , '⊓' , '(' , '(' , '⊔' , '(' , '∀' , 'hasChild' , '.' , 'Grandfather' , ')' , ')' , '⊓' , '(' , ')' , ')' , ')' , ')' ]
1000
- # ['∀', 'married', '.', '(', 'Brother', '⊔', 'Sister']
999
+ # token_sequence = ['Person', '⊓', '(', '(', '⊔', '(', '∀', 'hasChild', '.', 'Grandfather', ')', ')', '⊓', '(', ')', ')', ')', ')']
1000
+ token_sequence = ['∀' , 'married' , '.' , '(' , 'Brother' , '⊔' , 'Sister' ]
1001
1001
1002
1002
try :
1003
- builder = ConceptAbstractSyntaxTreeBuilder (knowledge_base_path = kb_path )
1003
+ builder = ConceptAbstractSyntaxTreeBuilder (knowledge_base = kb )
1004
1004
concept , result = builder .parse (token_sequence = token_sequence , relax_parentheses = relax_parentheses , enforce_validity = True , replace_with_negation = False )
1005
1005
1006
1006
if concept is not None :
@@ -1019,7 +1019,8 @@ def generate_class_expression(kb_path:str, leaners_prediction = None, save_as_js
1019
1019
1020
1020
if __name__ == "__main__" :
1021
1021
knowledge_base_path = pathlib .Path (__file__ ).parent .parent .parent .resolve ()._str + "/data/KGs/Family/family-benchmark_rich_background.owl"
1022
- generate_class_expression (knowledge_base_path )
1022
+ kb = KnowledgeBase (path = knowledge_base_path )
1023
+ generate_class_expression (kb )
1023
1024
1024
1025
1025
1026
'''
0 commit comments