diff --git a/.gitignore b/.gitignore index 67e5ebe175bb71854266e7cc49bdb33775d098e3..7428db16766ac5e2720c8f1e2615ae919bceff64 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ input/unlDocuments/dev/* *catalog-v001.xml tests/output/* tenet/tenet.log +tests/main_tests/test_odrl_output/* +tests/main_tests/test_owl_output/* diff --git a/tenet/scheme/amr_master_rule/owl_generation/owl_class_generator.py b/tenet/scheme/amr_master_rule/owl_generation/owl_class_generator.py index d68df63ce26101619f8fd1234dc9891e7c726850..944efcfdea5025e228305326198a85ec19a9d226 100644 --- a/tenet/scheme/amr_master_rule/owl_generation/owl_class_generator.py +++ b/tenet/scheme/amr_master_rule/owl_generation/owl_class_generator.py @@ -140,7 +140,7 @@ def __get_mother_class_net_list(atom_class_net_list, composite_class_net_list): def __is_class_to_generate(class_net): check_1 = class_net.is_deprecated() - if is_instance(class_net.mother_class_net, list): + if isinstance(class_net.mother_class_net, list): check_2 = len(class_net.mother_class_net) > 0 else: check_2 = False diff --git a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py index cb3bba46a69e49fcb45b9d04b300ba510e556a25..c16dbee563eeece59af21d05b86d6d49bde956ad 100644 --- a/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py +++ b/tenet/scheme/amr_master_rule/transduction/extractor/composite_class_extractor_1.py @@ -22,15 +22,15 @@ from transduction.naming_computer import define_composite_naming_1, define_restr def __search_pattern(graph): select_data_list = ['?property_net', '?class_net_0', '?class_net_1'] - clause_list = [f'?property_net a [rdfs:subClassOf* net:Property_Net].', - f'FILTER NOT EXISTS {{ ?property_net a net:Deprecated_Net. }}', - f'FILTER NOT EXISTS {{ ?property_net a net:Action_Property_Net. }}', - f'?class_net_0 a [rdfs:subClassOf* net:Class_Net].', - f'FILTER NOT EXISTS {{ ?class_net_0 a net:Deprecated_Net. }}', - f'?class_net_1 a [rdfs:subClassOf* net:Class_Net].', - f'FILTER NOT EXISTS {{ ?class_net_1 a net:Deprecated_Net. }}', - f'?property_net amr:role_ARG0 ?class_net_0.', - f'?property_net amr:role_ARG1 ?class_net_1.'] + clause_list = ['?property_net a [rdfs:subClassOf* net:Property_Net].', + 'FILTER NOT EXISTS {{ ?property_net a net:Deprecated_Net. }}', + 'FILTER NOT EXISTS {{ ?property_net a net:Action_Property_Net. }}', + '?class_net_0 a [rdfs:subClassOf* net:Class_Net].', + 'FILTER NOT EXISTS {{ ?class_net_0 a net:Deprecated_Net. }}', + '?class_net_1 a [rdfs:subClassOf* net:Class_Net].', + 'FILTER NOT EXISTS {{ ?class_net_1 a net:Deprecated_Net. }}', + '?property_net amr:role_ARG0 ?class_net_0.', + '?property_net amr:role_ARG1 ?class_net_1.'] query_code = generate_select_query(graph, select_data_list, clause_list) result_set = graph.query(query_code) return query_code, result_set @@ -74,20 +74,20 @@ def __propagate_relation(target_net, base_net): # Construct Method(s) #============================================================================== -def __construct_restriction_net(graph, property_net_1, property_net_2): +def __construct_restriction_net(graph, property_net, target_class_net): # -- Net Composition restriction_net = net.RestrictionNet(graph) - restriction_net.compose(property_net_1, property_net_2) + restriction_net.compose(property_net, target_class_net) # -- Data Computation - restriction_net.restriction_property = property_net_1.uri - restriction_net.restriction_net_value = property_net_2.uri + restriction_net.restriction_property = property_net.uri + restriction_net.restriction_net_value = target_class_net.uri # -- Relation Propagation: None # -- Net Naming - restriction_net.naming = define_restriction_naming(property_net_1, property_net_2) + restriction_net.naming = define_restriction_naming(property_net, target_class_net) # -- Finalization restriction_net.finalize() diff --git a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py new file mode 100644 index 0000000000000000000000000000000000000000..e1aaa7d18ea892edda60b99f6c378059a1a248b9 --- /dev/null +++ b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/refine_restriction_1.py @@ -0,0 +1,174 @@ +#!/usr/bin/python3.10 +# -*-coding:Utf-8 -* + +#============================================================================== +# refine_restriction_1: Rule for heuristic deduction +#------------------------------------------------------------------------------ +# Heuristic deduction rule to refine restriction net value +#============================================================================== + +from transduction import net +from transduction.query_builder import generate_select_query +from transduction.naming_computer import define_composite_naming_1, define_restriction_naming + + +#============================================================================== +# Pattern Search: +# restriction(compositeClass, restrictionNet) +#============================================================================== + +def __search_pattern(graph): + select_data_list = ['?composite_class_net', + '?restriction_net', + '?predicate_property_net', + '?new_net_value'] + clause_list = [ + '?composite_class_net a net:Composite_Class_Net.', + '?composite_class_net net:hasRestriction ?restriction_net.', + '?restriction_net a net:Restriction_Net.', + '?restriction_net net:hasRestrictionNetValue ?origin_net_value.', + '?restriction_net net:hasRestrictionOnProperty ?predicate_property_net.' + '?new_net_value net:hasMotherClassNet* ?origin_net_value.' + ] + query_code = generate_select_query(graph, select_data_list, clause_list) + result_set = graph.query(query_code) + return query_code, result_set + + + +#============================================================================== +# Net Checking +#============================================================================== + +def __verify_disjoint_cover(class_net_0, class_net_1): + check = True + for node in class_net_0.node: + if node in class_net_1.node: check = False + return check + + + +#============================================================================== +# Useful Computation Method(s) +#============================================================================== + +def __filter_relation(relation_list): + result_list = [] + for relation in relation_list: + check = True + (s, p, o) = relation + if s == o: check = False + if check: result_list.append(relation) + return result_list + + +def __propagate_relation(target_net, base_net): + # -- target_net.input_relation_list = base_net.input_relation_list + out_relation_list = __filter_relation(base_net.output_relation_list) + target_net.output_relation_list = out_relation_list + + + +#============================================================================== +# Construct Method(s) +#============================================================================== + +def __construct_restriction_net(graph, property_net, target_class_net): + + # -- Net Composition + restriction_net = net.RestrictionNet(graph) + restriction_net.compose(property_net, target_class_net) + + # -- Data Computation + restriction_net.restriction_property = property_net.uri + restriction_net.restriction_net_value = target_class_net.uri + + # -- Relation Propagation: None + + # -- Net Naming + restriction_net.naming = define_restriction_naming(property_net, target_class_net) + + # -- Finalization + restriction_net.finalize() + triple_list = restriction_net.generate_triple_definition() + + return restriction_net, triple_list + + + +def __construct_composite_class_net( + graph, base_class_net, core_property_net, target_class_net): + + # -- Net Composition + composite_class_net = net.CompositeClassNet(graph) + composite_class_net.compose(base_class_net, core_property_net, target_class_net) + + # -- Data Computation + composite_class_net.mother_class_net = base_class_net.uri + + # -- Restriction Computation + restriction_net, triple_list_1 = __construct_restriction_net(graph, core_property_net, target_class_net) + composite_class_net.restriction = restriction_net.uri + + # -- Relation Propagation + __propagate_relation(composite_class_net, base_class_net) + + # -- Net Naming + composite_class_net.naming = define_composite_naming_1( + base_class_net, core_property_net, target_class_net) + + # -- Finalization + composite_class_net.finalize() + triple_list_2 = composite_class_net.generate_triple_definition() + result_triple_list = triple_list_1 + triple_list_2 + + return composite_class_net, result_triple_list + + +#============================================================================== +# Main Method +#============================================================================== + +def refine_composite_class(graph): + + # -- Rule Initialization + rule_label = 'refine composite classes' + + # -- Search for patterns + _, pattern_set = __search_pattern(graph) + + # -- Selection Analyzing (1) + rule_triple_list = [] + for pattern in pattern_set: + + # -- Net Selection + origin_composite_net = net.ClassNet(graph, uri=pattern.composite_class_net) + core_property_net = net.PropertyNet(graph, uri=pattern.predicate_property_net) + target_class_net = net.ClassNet(graph, uri=pattern.new_net_value) + + # -- Base class net of the composite class + assert isinstance(origin_composite_net.mother_class_net, list), 'Houston, we have a problem: incorrect net attribute' + assert len(origin_composite_net.mother_class_net) > 0, 'Houston, we have a problem: attribute is an empty list' + base_class_net_uri = origin_composite_net.mother_class_net[0] + base_class_net = net.ClassNet(graph, uri=base_class_net_uri) + + # -- Condition: disjoint cover + if __verify_disjoint_cover(base_class_net, target_class_net): + # print(f' *** DEVTEST *** {selection_2.class_net}') + + # -- New Net Construction (from 3 nets) + new_class, triple_list = __construct_composite_class_net( + graph, base_class_net, core_property_net, target_class_net) + + # -- Resulting List Update + # class_net_list.append(new_class) + rule_triple_list += triple_list + + # -- Deprecation: Origin Composte Net and Origin Restriction Net + rule_triple_list += origin_composite_net.deprecate() + origin_retriction_net = net.RestrictionNet(graph, uri=pattern.restriction_net) + rule_triple_list += origin_retriction_net.deprecate() + + return rule_label, rule_triple_list + + diff --git a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py index 106aebe6561e2d05cbdde965df799ae624293858..aafb2cad705168b7a44934d56313e6ed455f2c94 100644 --- a/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py +++ b/tenet/scheme/amr_master_rule/transduction/heuristic_deducer/relation_deducer_1.py @@ -16,7 +16,6 @@ from transduction.naming_computer import define_individual_naming, define_relati #============================================================================== # Pattern Search: -# motherClass(individualNet, compositeClass), # restriction(compositeClass, restrictionNet) #============================================================================== @@ -84,18 +83,10 @@ def __define_individual_label(net): class_label = 'thing' naming_list = net.naming if len(naming_list) > 0: - assert len(naming_list) == 1, f'Houston, we have a problem: too many naming' + assert len(naming_list) == 1, 'Houston, we have a problem: too many naming' class_label = naming_list[0] return f'any {class_label}' - -def __propagate_relation(graph, target_net, base_leaf): - _, in_relation_set = __search_leaf_in_relation(graph, base_leaf) - for row in in_relation_set: - target_net.input_relation_list += [(row.inNet, row.inRelationRole, _)] - _, out_relation_set = __search_leaf_out_relation(graph, base_leaf) - for row in out_relation_set: - target_net.output_relation_list += [(_, row.outRelationRole, row.outNet)] #============================================================================== @@ -129,9 +120,6 @@ def __construct_individual_net(graph, mother_class_net): # -- Net Naming individual_net.naming = define_individual_naming(main_mother_class_net, structure_ref) - # -- Relation Propagation - # __propagate_relation(graph, individual_net, base_leaf) - # -- Finalization individual_net.finalize() triple_definition = individual_net.generate_triple_definition() diff --git a/tests/main_tests/test_main_owl_extraction.py b/tests/main_tests/test_main_owl_extraction.py index 9a32ea7b050852683466e7ec34d70f676eaa1279..7ee428d0bf8dd44763aaeda6e0830d959f639988 100644 --- a/tests/main_tests/test_main_owl_extraction.py +++ b/tests/main_tests/test_main_owl_extraction.py @@ -56,16 +56,16 @@ test_data_dir = f'{INPUT_DIR_PATH}amrDocuments/' # onto_prefix = f'SimpleTest' # base_output_name = f'SimpleTest' -# uuid_num = '01' -# amrld_dir_path = f'{test_data_dir}dev/solar-system-{uuid_num}/' -# amrld_file_path = f'{amrld_dir_path}SSC-{uuid_num}-01.stog.amr.ttl' -# base_output_name = f'SolarSystemDev{uuid_num}' -# onto_prefix = f"https://tenet.tetras-libre.fr/demo/{uuid_num}/" - -amrld_dir_path = f'{test_data_dir}prod/SolarSystem-20230731/' -onto_prefix = 'SolarSystemProd' -base_output_name = 'SolarSystemProd' -onto_prefix = f"https://tenet.tetras-libre.fr/demo/{base_output_name}/" +uuid_num = '01' +amrld_dir_path = f'{test_data_dir}dev/solar-system-{uuid_num}/' +amrld_file_path = f'{amrld_dir_path}SSC-{uuid_num}-01.stog.amr.ttl' +base_output_name = f'SolarSystemDev{uuid_num}' +onto_prefix = f"https://tenet.tetras-libre.fr/demo/{uuid_num}/" + +# amrld_dir_path = f'{test_data_dir}prod/SolarSystem-20230731/' +# onto_prefix = 'SolarSystemProd' +# base_output_name = 'SolarSystemProd' +# onto_prefix = f"https://tenet.tetras-libre.fr/demo/{base_output_name}/" # uuid_num = '03' # amrld_dir_path = f'{test_data_dir}dev/cc-sentence-examples/' diff --git a/tests/main_tests/test_owl_output/SolarSystemDev01-20230911/technical-data/tenet.log b/tests/main_tests/test_owl_output/SolarSystemDev01-20230911/technical-data/tenet.log index ee4d1f002c06e49c9f17c8b8b0903e2fcc6094b3..57f4128b59bde7f8016a05d0207b7d6e70c0272b 100644 --- a/tests/main_tests/test_owl_output/SolarSystemDev01-20230911/technical-data/tenet.log +++ b/tests/main_tests/test_owl_output/SolarSystemDev01-20230911/technical-data/tenet.log @@ -76,25 +76,25 @@ - DEBUG - [P-1] ----- Total rule number: 0 - INFO - [P-1] -- Step 1: Preprocessing - INFO - [P-1] --- Sequence: Bug fixing for some known anomalies of AMR-LD data -- INFO - [P-1] ----- fix AMR bug (1): 5/5 new triples (605, 0:00:00.016651) +- INFO - [P-1] ----- fix AMR bug (1): 5/5 new triples (605, 0:00:00.015769) - INFO - [P-1] --- Sequence: AMR reification from AMR-Linked-Data to AMR (tenet) structure -- INFO - [P-1] ----- reclassify AMR-LD concept (1): 10/10 new triples (615, 0:00:00.088058) -- DEBUG - [P-1] ----- reclassify AMR-LD concept (2): 0/0 new triple (615, 0:00:00.050809) -- INFO - [P-1] ----- reclassify AMR-LD concept (3): 12/12 new triples (627, 0:00:00.028966) -- INFO - [P-1] ----- reclassify AMR-LD concept (4): 16/16 new triples (643, 0:00:00.051800) -- INFO - [P-1] ----- reclassify AMR-LD concept (5): 2/4 new triples (645, 0:00:00.031016) -- INFO - [P-1] ----- reify roles as concept: 10/10 new triples (655, 0:00:00.038658) -- INFO - [P-1] ----- reclassify existing variable: 45/45 new triples (700, 0:00:00.071070) -- INFO - [P-1] ----- add new variable for reified concept: 8/8 new triples (708, 0:00:00.060560) -- INFO - [P-1] ----- add AMR leaf for reclassified concept: 33/33 new triples (741, 0:00:00.022385) -- INFO - [P-1] ----- add AMR leaf for reified concept: 8/8 new triples (749, 0:00:00.012266) -- INFO - [P-1] ----- add AMR edge for core relation: 27/27 new triples (776, 0:00:00.096893) -- INFO - [P-1] ----- add AMR edge for reified concept: 12/12 new triples (788, 0:00:00.062170) -- INFO - [P-1] ----- add AMR edge for name relation: 5/5 new triples (793, 0:00:00.021788) -- DEBUG - [P-1] ----- add AMR edge for quant relation: 0/0 new triple (793, 0:00:00.020574) -- INFO - [P-1] ----- add AMR edge for polarity relation: 5/5 new triples (798, 0:00:00.028750) -- INFO - [P-1] ----- update AMR edge role 1: 15/15 new triples (813, 0:00:00.072798) -- INFO - [P-1] ----- add AMR root: 5/5 new triples (818, 0:00:00.009705) +- INFO - [P-1] ----- reclassify AMR-LD concept (1): 10/10 new triples (615, 0:00:00.084424) +- DEBUG - [P-1] ----- reclassify AMR-LD concept (2): 0/0 new triple (615, 0:00:00.047048) +- INFO - [P-1] ----- reclassify AMR-LD concept (3): 12/12 new triples (627, 0:00:00.028867) +- INFO - [P-1] ----- reclassify AMR-LD concept (4): 16/16 new triples (643, 0:00:00.047621) +- INFO - [P-1] ----- reclassify AMR-LD concept (5): 2/4 new triples (645, 0:00:00.030833) +- INFO - [P-1] ----- reify roles as concept: 10/10 new triples (655, 0:00:00.036819) +- INFO - [P-1] ----- reclassify existing variable: 45/45 new triples (700, 0:00:00.019286) +- INFO - [P-1] ----- add new variable for reified concept: 8/8 new triples (708, 0:00:00.046260) +- INFO - [P-1] ----- add AMR leaf for reclassified concept: 33/33 new triples (741, 0:00:00.019183) +- INFO - [P-1] ----- add AMR leaf for reified concept: 8/8 new triples (749, 0:00:00.013246) +- INFO - [P-1] ----- add AMR edge for core relation: 27/27 new triples (776, 0:00:00.084235) +- INFO - [P-1] ----- add AMR edge for reified concept: 12/12 new triples (788, 0:00:00.061447) +- INFO - [P-1] ----- add AMR edge for name relation: 5/5 new triples (793, 0:00:00.018551) +- DEBUG - [P-1] ----- add AMR edge for quant relation: 0/0 new triple (793, 0:00:00.021481) +- INFO - [P-1] ----- add AMR edge for polarity relation: 5/5 new triples (798, 0:00:00.028579) +- INFO - [P-1] ----- update AMR edge role 1: 15/15 new triples (813, 0:00:00.070092) +- INFO - [P-1] ----- add AMR root: 5/5 new triples (818, 0:00:00.009257) - DEBUG - [P-1] --- Serializing graph to tenet.tetras-libre.fr_demo_01_Preprocessing - DEBUG - [P-1] ----- step: Preprocessing - DEBUG - [P-1] ----- id: https://tenet.tetras-libre.fr/demo/01/ @@ -103,40 +103,41 @@ - INFO - [P-1] ----- 218 triples extracted during Preprocessing step - INFO - [P-1] -- Step 2: Transduction - INFO - [P-1] --- Sequence: atomic extraction sequence -- INFO - [P-1] ----- extract atom classes: 30/30 new triples (848, 0:00:00.157451) -- INFO - [P-1] ----- extract atom individuals: 8/8 new triples (856, 0:00:00.045260) -- INFO - [P-1] ----- extract atomic properties: 75/75 new triples (931, 0:00:00.240807) -- INFO - [P-1] ----- extract atom values: 10/10 new triples (941, 0:00:00.055005) -- INFO - [P-1] ----- extract atom phenomena: 14/14 new triples (955, 0:00:00.066652) -- INFO - [P-1] ----- propagate atom relations: 24/68 new triples (979, 0:00:01.011709) +- INFO - [P-1] ----- extract atom classes: 30/30 new triples (848, 0:00:00.147780) +- INFO - [P-1] ----- extract atom individuals: 8/8 new triples (856, 0:00:00.044693) +- INFO - [P-1] ----- extract atomic properties: 75/75 new triples (931, 0:00:00.205208) +- INFO - [P-1] ----- extract atom values: 10/10 new triples (941, 0:00:00.126885) +- INFO - [P-1] ----- extract atom phenomena: 14/14 new triples (955, 0:00:00.069580) +- INFO - [P-1] ----- propagate atom relations: 24/68 new triples (979, 0:00:00.917698) - INFO - [P-1] --- Sequence: classification sequence (1) -- DEBUG - [P-1] ----- classify modality phenomena: 0/0 new triple (979, 0:00:00.040453) -- INFO - [P-1] ----- reclassify argument property to class: 11/14 new triples (990, 0:00:00.086995) +- DEBUG - [P-1] ----- classify modality phenomena: 0/0 new triple (979, 0:00:00.019872) +- INFO - [P-1] ----- reclassify argument property to class: 11/14 new triples (990, 0:00:00.065699) - INFO - [P-1] --- Sequence: phenomena analyze sequence (1) -- INFO - [P-1] ----- analyze "polarity" phenomena (1): 32/36 new triples (1022, 0:00:00.101186) -- DEBUG - [P-1] ----- analyze "polarity" phenomena (2): 0/0 new triple (1022, 0:00:00.017516) -- DEBUG - [P-1] ----- analyze "polarity" phenomena (3): 0/0 new triple (1022, 0:00:00.017212) -- DEBUG - [P-1] ----- analyze "polarity" phenomena (4): 0/0 new triple (1022, 0:00:00.042949) -- DEBUG - [P-1] ----- analyze "polarity" phenomena (5): 0/0 new triple (1022, 0:00:00.052423) -- DEBUG - [P-1] ----- analyze modifier phenomena (mod): 0/0 new triple (1022, 0:00:00.009406) -- DEBUG - [P-1] ----- classify modality phenomena: 0/0 new triple (1022, 0:00:00.020954) +- INFO - [P-1] ----- analyze "polarity" phenomena (1): 32/36 new triples (1022, 0:00:00.094312) +- DEBUG - [P-1] ----- analyze "polarity" phenomena (2): 0/0 new triple (1022, 0:00:00.020470) +- DEBUG - [P-1] ----- analyze "polarity" phenomena (3): 0/0 new triple (1022, 0:00:00.016336) +- DEBUG - [P-1] ----- analyze "polarity" phenomena (4): 0/0 new triple (1022, 0:00:00.037595) +- DEBUG - [P-1] ----- analyze "polarity" phenomena (5): 0/0 new triple (1022, 0:00:00.039551) +- DEBUG - [P-1] ----- analyze modifier phenomena (mod): 0/0 new triple (1022, 0:00:00.008422) +- DEBUG - [P-1] ----- classify modality phenomena: 0/0 new triple (1022, 0:00:00.019989) - INFO - [P-1] --- Sequence: phenomena analyze sequence (2) -- INFO - [P-1] ----- analyze "or" phenomena (1): 1/1 new triple (1023, 0:00:00.079492) -- INFO - [P-1] ----- analyze "or" phenomena (2): 55/82 new triples (1078, 0:00:00.267365) -- INFO - [P-1] ----- analyze "and" phenomena (1): 2/14 new triples (1080, 0:00:00.214602) -- DEBUG - [P-1] ----- analyze "and" phenomena (2): 0/0 new triple (1080, 0:00:00.012602) +- INFO - [P-1] ----- analyze "or" phenomena (1): 1/1 new triple (1023, 0:00:00.071583) +- INFO - [P-1] ----- analyze "or" phenomena (2): 55/82 new triples (1078, 0:00:00.254645) +- INFO - [P-1] ----- analyze "and" phenomena (1): 2/14 new triples (1080, 0:00:00.139627) +- DEBUG - [P-1] ----- analyze "and" phenomena (2): 0/0 new triple (1080, 0:00:00.010826) - INFO - [P-1] --- Sequence: composite class extraction sequence -- INFO - [P-1] ----- extract composite classes (1): 127/138 new triples (1207, 0:00:00.508525) -- DEBUG - [P-1] ----- extract composite classes (2): 0/0 new triple (1207, 0:00:00.030480) +- INFO - [P-1] ----- extract composite classes (1): 127/138 new triples (1207, 0:00:00.490377) +- DEBUG - [P-1] ----- extract composite classes (1): 0/0 new triple (1207, 0:00:00.038514) +- DEBUG - [P-1] ----- extract composite classes (2): 0/0 new triple (1207, 0:00:00.029406) - INFO - [P-1] --- Sequence: classification sequence (2) -- INFO - [P-1] ----- classify class net as entity from core arguments: 10/181 new triples (1217, 0:00:00.254828) -- DEBUG - [P-1] ----- classify class net as entity from :part relation: 0/0 new triple (1217, 0:00:00.009716) -- DEBUG - [P-1] ----- classify class net as entity from degree arguments: 0/0 new triple (1217, 0:00:00.020562) -- INFO - [P-1] ----- Associate mother to class net from :domain relation: 7/78 new triples (1224, 0:00:00.146401) -- DEBUG - [P-1] ----- Propagate individuals to net with same base node: 0/20 new triple (1224, 0:00:00.042257) -- INFO - [P-1] ----- Propagate individuals to net with domain link: 3/60 new triples (1227, 0:00:00.113569) +- INFO - [P-1] ----- classify class net as entity from core arguments: 10/181 new triples (1217, 0:00:00.249169) +- DEBUG - [P-1] ----- classify class net as entity from :part relation: 0/0 new triple (1217, 0:00:00.009327) +- DEBUG - [P-1] ----- classify class net as entity from degree arguments: 0/0 new triple (1217, 0:00:00.016451) +- INFO - [P-1] ----- Associate mother to class net from :domain relation: 7/78 new triples (1224, 0:00:00.138371) +- DEBUG - [P-1] ----- Propagate individuals to net with same base node: 0/20 new triple (1224, 0:00:00.042207) +- INFO - [P-1] ----- Propagate individuals to net with domain link: 3/60 new triples (1227, 0:00:00.108527) - INFO - [P-1] --- Sequence: heuristic deduction sequence -- INFO - [P-1] ----- deduce individual and relation from restriction (recursively): 96/72 new triples (1323, 0:00:01.124770) +- INFO - [P-1] ----- deduce individual and relation from restriction (recursively): 96/72 new triples (1323, 0:00:01.140917) - DEBUG - [P-1] --- Serializing graph to tenet.tetras-libre.fr_demo_01_Transduction - DEBUG - [P-1] ----- step: Transduction - DEBUG - [P-1] ----- id: https://tenet.tetras-libre.fr/demo/01/ @@ -145,10 +146,10 @@ - INFO - [P-1] ----- 505 triples extracted during Transduction step - INFO - [P-1] -- Step 3: Generation - INFO - [P-1] --- Sequence: OWL Generation Sequence -- INFO - [P-1] ----- generate OWL class: 51/55 new triples (1374, 0:00:00.555340) -- INFO - [P-1] ----- generate OWL property: 29/29 new triples (1403, 0:00:00.320895) -- INFO - [P-1] ----- generate OWL individual: 20/21 new triples (1423, 0:00:00.232342) -- INFO - [P-1] ----- generate OWL relation (property): 5/5 new triples (1428, 0:00:00.220619) +- INFO - [P-1] ----- generate OWL class: 51/55 new triples (1374, 0:00:00.546193) +- INFO - [P-1] ----- generate OWL property: 29/29 new triples (1403, 0:00:00.277973) +- INFO - [P-1] ----- generate OWL individual: 20/21 new triples (1423, 0:00:00.208283) +- INFO - [P-1] ----- generate OWL relation (property): 5/5 new triples (1428, 0:00:00.191913) - DEBUG - [P-1] --- Serializing graph to tenet.tetras-libre.fr_demo_01_Generation - DEBUG - [P-1] ----- step: Generation - DEBUG - [P-1] ----- id: https://tenet.tetras-libre.fr/demo/01/