Skip to content
Snippets Groups Projects
Commit f16885b6 authored by Aurélien Lamercerie's avatar Aurélien Lamercerie
Browse files

Fix bugs in and phenomena analyzers

parent 30abbf68
No related branches found
No related tags found
No related merge requests found
Showing
with 15625 additions and 109 deletions
......@@ -23,11 +23,12 @@ from transduction.rdfterm_computer import produce_uriref, produce_literal
CONJUNCTION_PHENOMENA_URI = 'amr:phenomena_conjunction_and'
def __search_pattern(graph):
select_data_list = ['?property_net', '?relation_role', '?phenomena_net']
select_data_list = ['?property_net', '?net_relation', '?phenomena_net']
clause_list = [f'?property_net a [rdfs:subClassOf* net:Property_Net].',
f'?phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].',
f'?phenomena_net net:hasPhenomenaType {CONJUNCTION_PHENOMENA_URI}.',
f'?property_net ?relation_role ?phenomena_net.']
f'?net_relation a [rdfs:subClassOf* net:Relation].',
f'?property_net ?net_relation ?phenomena_net.']
query_code = generate_select_query(graph, select_data_list, clause_list)
result_set = graph.query(query_code)
return query_code, result_set
......@@ -116,7 +117,7 @@ def analyze_phenomena_and_1(graph):
# -- Relation Propagation for Operator Class Net
_, operator_class_set = __search_phenomena_operator_class(graph, phenomena_net.uri)
for operator in operator_class_set:
amr_relation_uri = produce_uriref(graph, pattern.relation_role)
amr_relation_uri = produce_uriref(graph, pattern.net_relation)
right_net_uri = produce_uriref(graph, operator.class_net)
__propagate_relation(property_net, amr_relation_uri, right_net_uri)
rule_triple_list += property_net.generate_net_relation_triples()
......@@ -124,7 +125,7 @@ def analyze_phenomena_and_1(graph):
# -- Relation Propagation for Operator Class Net
_, operator_property_set = __search_phenomena_operator_property(graph, phenomena_net.uri)
for operator in operator_property_set:
amr_relation_uri = produce_uriref(graph, pattern.relation_role)
amr_relation_uri = produce_uriref(graph, pattern.net_relation)
right_net_uri = produce_uriref(graph, operator.property_net)
__propagate_relation(property_net, amr_relation_uri, right_net_uri)
rule_triple_list += property_net.generate_net_relation_triples()
......
......@@ -23,11 +23,12 @@ from transduction.rdfterm_computer import produce_uriref, produce_literal
CONJUNCTION_PHENOMENA_URI = 'amr:phenomena_conjunction_and'
def __search_pattern(graph):
select_data_list = ['?left_phenomena_net', '?relation_role', '?right_phenomena_net']
select_data_list = ['?left_phenomena_net', '?net_relation', '?right_phenomena_net']
clause_list = [f'?left_phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].',
f'?right_phenomena_net a [rdfs:subClassOf* net:Phenomena_Net].',
f'?right_phenomena_net net:hasPhenomenaType {CONJUNCTION_PHENOMENA_URI}.',
f'?left_phenomena_net ?relation_role ?phenomena_net.']
f'?net_relation a [rdfs:subClassOf* net:Relation].',
f'?left_phenomena_net ?net_relation ?right_phenomena_net.']
query_code = generate_select_query(graph, select_data_list, clause_list)
result_set = graph.query(query_code)
return query_code, result_set
......@@ -116,7 +117,7 @@ def analyze_phenomena_and_2(graph):
# -- Relation Propagation for Operator Class Net
_, operator_class_set = __search_phenomena_operator_class(graph, phenomena_net.uri)
for operator in operator_class_set:
amr_relation_uri = produce_uriref(graph, pattern.relation_role)
amr_relation_uri = produce_uriref(graph, pattern.net_relation)
right_net_uri = produce_uriref(graph, operator.class_net)
__propagate_relation(property_net, amr_relation_uri, right_net_uri)
rule_triple_list += property_net.generate_net_relation_triples()
......@@ -124,7 +125,7 @@ def analyze_phenomena_and_2(graph):
# -- Relation Propagation for Operator Class Net
_, operator_property_set = __search_phenomena_operator_property(graph, phenomena_net.uri)
for operator in operator_property_set:
amr_relation_uri = produce_uriref(graph, pattern.relation_role)
amr_relation_uri = produce_uriref(graph, pattern.net_relation)
right_net_uri = produce_uriref(graph, operator.property_net)
__propagate_relation(property_net, amr_relation_uri, right_net_uri)
rule_triple_list += property_net.generate_net_relation_triples()
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -19,6 +19,7 @@ OUTPUT_DIR_PATH = f'{FILE_PATH}/test_data/'
TEST_FILE_NAME_1 = 'odrl-rule-devGraph-1'
TEST_FILE_NAME_2 = 'odrl-rule-devGraph-2'
TEST_FILE_NAME_3 = 'odrl-rule-devGraph-3'
TEST_FILE_NAME_4 = 'odrl-rule-devGraph-4'
from context import tenet
from tenet.scheme.amr_clara_rule.transduction import odrl_rule_extractor as rule_1
......@@ -125,6 +126,7 @@ if __name__ == '__main__':
graph_1 = load_test_graph(TEST_FILE_NAME_1)
graph_2 = load_test_graph(TEST_FILE_NAME_2)
graph_3 = load_test_graph(TEST_FILE_NAME_3)
graph_4 = load_test_graph(TEST_FILE_NAME_4)
print('\n \n')
......@@ -134,14 +136,14 @@ if __name__ == '__main__':
print('\n -- Step 1: Search Pattern')
for (rule_relation, phenomena_uri) in rule_1.MODALITY_TABLE:
pattern_set = test_search_pattern_1(graph_1, phenomena_uri)
pattern_set = test_search_pattern_1(graph_4, phenomena_uri)
print('\n \n')
print('\n *** Unit Test ***')
test_rule_application(TEST_FILE_NAME_1, graph_1, rule.extract_odrl_rule)
test_rule_application(TEST_FILE_NAME_2, graph_2, rule.extract_odrl_rule)
test_rule_application(TEST_FILE_NAME_3, graph_3, rule.extract_odrl_rule)
# test_rule_application(TEST_FILE_NAME_1, graph_1, rule.extract_odrl_rule)
# test_rule_application(TEST_FILE_NAME_2, graph_2, rule.extract_odrl_rule)
# test_rule_application(TEST_FILE_NAME_3, graph_3, rule.extract_odrl_rule)
test_rule_application(TEST_FILE_NAME_4, graph_4, rule.extract_odrl_rule)
print('\n \n')
......
......@@ -16,8 +16,8 @@ FILE_PATH = f'{os.path.dirname(os.path.abspath(__file__))}'
INPUT_DIR_PATH = f'{FILE_PATH}/test_data/'
OUTPUT_DIR_PATH = f'{FILE_PATH}/test_data/'
TEST_FILE_NAME_1 = 'negation-devGraph-1'
TEST_FILE_NAME_2 = 'negation-devGraph-2'
TEST_FILE_NAME_1 = 'and-devGraph-1'
TEST_FILE_NAME_2 = 'and-devGraph-2'
from context import tenet
from tenet.scheme.amr_clara_rule.transduction import phenomena_and_analyzer_1 as rule_1
......@@ -92,7 +92,7 @@ def test_search_pattern_1(graph):
for selection in pattern_set:
result_str = f'>>> '
result_str += f'{selection.property_net.n3(graph.namespace_manager)}'
result_str += f' {selection.relation_role.n3(graph.namespace_manager)}'
result_str += f' {selection.net_relation.n3(graph.namespace_manager)}'
result_str += f' {selection.phenomena_net.n3(graph.namespace_manager)}'
print(result_str)
return pattern_set
......@@ -104,9 +104,9 @@ def test_search_pattern_2(graph):
print(f'\n ----- number of selection found: {len(pattern_set)}')
for selection in pattern_set:
result_str = f'>>> '
result_str += f'{selection.property_net_core.n3(graph.namespace_manager)}'
result_str += f' {selection.property_net_arg0.n3(graph.namespace_manager)}'
result_str += f' {selection.phenomena_net.n3(graph.namespace_manager)}'
result_str += f'{selection.left_phenomena_net.n3(graph.namespace_manager)}'
result_str += f' {selection.net_relation.n3(graph.namespace_manager)}'
result_str += f' {selection.right_phenomena_net.n3(graph.namespace_manager)}'
print(result_str)
return pattern_set
......@@ -174,7 +174,7 @@ if __name__ == '__main__':
print('\n ///////////////////// Extraction Rule 1')
print('\n *** Step Test ***')
# print('\n *** Step Test ***')
print('\n -- Step 1: Search Pattern')
pattern_set = test_search_pattern_1(graph_1)
......@@ -189,16 +189,17 @@ if __name__ == '__main__':
# print('\n ///////////////////// Extraction Rule 2')
# print('\n *** Step Test ***')
print('\n *** Step Test ***')
# print('\n -- Step 1: Search Pattern')
# pattern_set = test_search_pattern_2(graph_2)
# test_search_operators(graph_2, phenomena_net_uri)
# print('\n \n')
print('\n -- Step 1: Search Pattern')
pattern_set = test_search_pattern_2(graph_2)
test_search_operators_1(graph_2, phenomena_net_uri)
test_search_operators_2(graph_2, phenomena_net_uri)
print('\n \n')
# print('\n *** Unit Test ***')
# test_rule_application(TEST_FILE_NAME_2, graph_2, rule.analyze_phenomena_and_2)
# print('\n \n')
print('\n *** Unit Test ***')
test_rule_application(TEST_FILE_NAME_2, graph_2, rule.analyze_phenomena_and_2)
print('\n \n')
print('\n *** - ***')
\ No newline at end of file
......@@ -29,7 +29,7 @@ from context import tenet
# -- Input Data
test_data_dir = f'{INPUT_DIR_PATH}amrDocuments/'
uuid_num = '06'
uuid_num = '10'
amrld_dir_path = f'{test_data_dir}dev/asail_odrl_sentences/'
amrld_file_path = f'{amrld_dir_path}s{uuid_num}.stog.amr.ttl'
base_output_name = f'aos{uuid_num}'
......@@ -51,18 +51,18 @@ technical_dir_path = f'{out_dir_path}technical-data/'
os.chdir('..')
# -- Extraction from a file
# factoids = tenet.create_ontology_from_amrld_file(amrld_file_path,
# onto_prefix=onto_prefix,
# out_file_path=out_file_path,
# technical_dir_path=technical_dir_path)
# -- Extraction from a directory (all files in a directory)
factoids = tenet.create_ontology_from_amrld_dir(amrld_dir_path,
factoids = tenet.create_ontology_from_amrld_file(amrld_file_path,
onto_prefix=onto_prefix,
out_file_path=out_file_path,
technical_dir_path=technical_dir_path)
# -- Extraction from a directory (all files in a directory)
# factoids = tenet.create_ontology_from_amrld_dir(amrld_dir_path,
# onto_prefix=onto_prefix,
# out_file_path=out_file_path,
# technical_dir_path=technical_dir_path)
print(factoids)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment