From 16cca79aa5e5a75d16866ccd46469d73091cac17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?= <aurelien.lamercerie@tetras-libre.fr> Date: Thu, 13 Apr 2023 23:50:07 +0200 Subject: [PATCH] Minimal AMR Rule: generation.odrl_rule_generator --- .../odrl_generation/odrl_rule_generator.py | 32 +- tenet/tenet.log | 84 +- .../odrl-generation-devGraph-1.result.ttl | 897 ++++++++++++++++ .../test_data/odrl-generation-devGraph-1.ttl | 893 ++++++++++++++++ .../test_data/odrl-generation-devGraph-2.ttl | 956 +++++++++++++++++ .../test_data/odrl-generation-devGraph-3.ttl | 986 ++++++++++++++++++ tests/dev_tests/test_rule_odrl_generator.py | 143 +++ 7 files changed, 3937 insertions(+), 54 deletions(-) create mode 100644 tests/dev_tests/test_data/odrl-generation-devGraph-1.result.ttl create mode 100644 tests/dev_tests/test_data/odrl-generation-devGraph-1.ttl create mode 100644 tests/dev_tests/test_data/odrl-generation-devGraph-2.ttl create mode 100644 tests/dev_tests/test_data/odrl-generation-devGraph-3.ttl create mode 100644 tests/dev_tests/test_rule_odrl_generator.py diff --git a/tenet/scheme/amr_clara_rule/odrl_generation/odrl_rule_generator.py b/tenet/scheme/amr_clara_rule/odrl_generation/odrl_rule_generator.py index b86851d8..4fc6e2b2 100644 --- a/tenet/scheme/amr_clara_rule/odrl_generation/odrl_rule_generator.py +++ b/tenet/scheme/amr_clara_rule/odrl_generation/odrl_rule_generator.py @@ -26,7 +26,7 @@ from transduction.naming_computer import define_composite_naming_2 def __search_pattern_1(graph): select_data_list = ['?rule_net'] - clause_list = [(f'?rule_net a net:Rule_Net.')] + clause_list = [f'?rule_net a net:Rule_Net.'] query_code = generate_select_query(graph, select_data_list, clause_list) result_set = graph.query(query_code) return query_code, result_set @@ -59,20 +59,31 @@ def __is_property_to_generate(property_net): # Generator Methods #============================================================================== -def __compute_policy_uri(graph, net): - return produce_uriref(graph, f'ext-out:policy_{net.structure}') +def __compute_policy_uri(graph, net): + structure_name = net.get_attribute_first_value(net.structure) + return produce_uriref(graph, f'ext-out:policy_{structure_name}') def __compute_odrl_rule_type_uri(graph, net): - odrl_rule_type_uri = f'odrl:permission' - # TODO: odrl:permission, odrl;obligation, odrl:prohibition + naming = net.get_attribute_first_value(net.rule_relation_name) + odrl_rule_type_uri = f'odrl:{naming}' return produce_uriref(graph, odrl_rule_type_uri) -def __generate_odrl_triple_definition(graph, net): - policy_uri = __compute_policy_uri(graph, net) - odrl_rule_type_uri = __compute_odrl_rule_type_uri(graph, net) - action_definition = produce_literal(graph, 'net:x') +def __compute_odrl_action_code(graph, rule_net): + action_net_uri = rule_net.get_attribute_first_value(rule_net.rule_action_net) + if action_net_uri is not None: + print(action_net_uri) + action_net_uri = produce_uriref(graph, action_net_uri) + print(action_net_uri) + action_net = net.ActionNet(graph, action_net_uri) + return produce_literal(graph, 'net:x') + + +def __generate_odrl_triple_definition(graph, rule_net): + policy_uri = __compute_policy_uri(graph, rule_net) + odrl_rule_type_uri = __compute_odrl_rule_type_uri(graph, rule_net) + action_definition = __compute_odrl_action_code(graph, rule_net) # print(f'{policy_uri}, {odrl_rule_type_uri}, {action_definition}') return [(policy_uri, odrl_rule_type_uri, action_definition)] @@ -91,8 +102,9 @@ def generate_odrl_rule(graph): # -- Get property net listings _, pattern_set = __search_pattern_1(graph) - # # -- Triple Definition for 'not deprecated property net' + # -- Triple Definition for 'not deprecated property net' for pattern in pattern_set: + print(pattern.rule_net) rule_net = net.RuleNet(graph, pattern.rule_net) if not rule_net.is_deprecated(): rule_triple_list += __generate_odrl_triple_definition(graph, rule_net) diff --git a/tenet/tenet.log b/tenet/tenet.log index 826e43a3..57aa8e28 100644 --- a/tenet/tenet.log +++ b/tenet/tenet.log @@ -1,11 +1,6 @@ -- INFO - [TENET] Extraction Processing -- INFO - - === Process Initialization === -- INFO - -- Process Setting -- INFO - ----- Corpus source: /home/lamenji/Workspace/Tetras/tenet/tests/input/amrDocuments/dev/asail_odrl_sentences/s03.stog.amr.ttl (amr) -- INFO - ----- Base output dir: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos03-20230413/aos03_factoid.ttl -- INFO - ----- technical dir path: /home/lamenji/Workspace/Tetras/tenet/tests/output/aos03-20230413/technical-data/ -- INFO - ----- Ontology target (id): https://tenet.tetras-libre.fr/demo/clara/03/ +- DEBUG - handle_close[ddbf9d58da4311edb5fe14abc581ea52]({'header': {'msg_id': '31fe189f-aad39126dac2f71a0a08fe6f_50868_88', 'msg_type': 'comm_close', 'username': 'lamenji', 'session': '31fe189f-aad39126dac2f71a0a08fe6f', 'date': datetime.datetime(2023, 4, 13, 21, 48, 47, 997618, tzinfo=tzutc()), 'version': '5.3'}, 'msg_id': '31fe189f-aad39126dac2f71a0a08fe6f_50868_88', 'msg_type': 'comm_close', 'parent_header': {}, 'metadata': {}, 'content': {'comm_id': 'ddbf9d58da4311edb5fe14abc581ea52', 'data': {}}, 'buffers': []}) +) +/tenet.tetras-libre.fr/demo/clara/03/ - INFO - ----- Current path: /home/lamenji/Workspace/Tetras/tenet/tenet - DEBUG - ----- Config file: /home/lamenji/Workspace/Tetras/tenet/tenet/config.xml - DEBUG - @@ -72,25 +67,25 @@ - DEBUG - ----- Total rule number: 87 - INFO - -- Applying extraction step: preprocessing - INFO - --- *** November Transduction *** Sequence: amrld-correcting-sequence -- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (551, 0:00:00.026522) +- DEBUG - ----- fix-amr-bug-about-system-solar-planet: 0/0 new triple (551, 0:00:00.027755) - INFO - --- *** November Transduction *** Sequence: amr-reification-sequence -- INFO - ----- reclassify-concept-1: 5/5 new triples (556, 0:00:00.105608) -- DEBUG - ----- reclassify-concept-2: 0/0 new triple (556, 0:00:00.064289) -- INFO - ----- reclassify-concept-3: 4/4 new triples (560, 0:00:00.048410) -- INFO - ----- reclassify-concept-4: 4/4 new triples (564, 0:00:00.058512) -- INFO - ----- reclassify-concept-5: 4/4 new triples (568, 0:00:00.041019) -- DEBUG - ----- reify-roles-as-concept: 0/0 new triple (568, 0:00:00.043750) -- INFO - ----- reclassify-existing-variable: 17/17 new triples (585, 0:00:00.031118) -- DEBUG - ----- add-new-variable-for-reified-concept: 0/0 new triple (585, 0:00:00.042439) -- INFO - ----- add-amr-leaf-for-reclassified-concept: 12/12 new triples (597, 0:00:00.040535) -- DEBUG - ----- add-amr-leaf-for-reified-concept: 0/0 new triple (597, 0:00:00.039820) -- INFO - ----- add-amr-edge-for-core-relation: 9/9 new triples (606, 0:00:00.092282) -- DEBUG - ----- add-amr-edge-for-reified-concept: 0/0 new triple (606, 0:00:00.083474) -- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (611, 0:00:00.080671) -- DEBUG - ----- add-value-for-quant-relation: 0/0 new triple (611, 0:00:00.079411) -- INFO - ----- add-amr-edge-for-polarity-relation: 5/5 new triples (616, 0:00:00.081605) -- INFO - ----- update-amr-edge-role-1: 5/5 new triples (621, 0:00:00.050274) -- INFO - ----- add-amr-root: 5/5 new triples (626, 0:00:00.032472) +- INFO - ----- reclassify-concept-1: 5/5 new triples (556, 0:00:00.096391) +- DEBUG - ----- reclassify-concept-2: 0/0 new triple (556, 0:00:00.052021) +- INFO - ----- reclassify-concept-3: 4/4 new triples (560, 0:00:00.046134) +- INFO - ----- reclassify-concept-4: 4/4 new triples (564, 0:00:00.056738) +- INFO - ----- reclassify-concept-5: 4/4 new triples (568, 0:00:00.042466) +- DEBUG - ----- reify-roles-as-concept: 0/0 new triple (568, 0:00:00.039816) +- INFO - ----- reclassify-existing-variable: 17/17 new triples (585, 0:00:00.028319) +- DEBUG - ----- add-new-variable-for-reified-concept: 0/0 new triple (585, 0:00:00.059122) +- INFO - ----- add-amr-leaf-for-reclassified-concept: 12/12 new triples (597, 0:00:00.041588) +- DEBUG - ----- add-amr-leaf-for-reified-concept: 0/0 new triple (597, 0:00:00.034341) +- INFO - ----- add-amr-edge-for-core-relation: 9/9 new triples (606, 0:00:00.095954) +- DEBUG - ----- add-amr-edge-for-reified-concept: 0/0 new triple (606, 0:00:00.079685) +- INFO - ----- add-amr-edge-for-name-relation: 5/5 new triples (611, 0:00:00.101049) +- DEBUG - ----- add-value-for-quant-relation: 0/0 new triple (611, 0:00:00.078799) +- INFO - ----- add-amr-edge-for-polarity-relation: 5/5 new triples (616, 0:00:00.084544) +- INFO - ----- update-amr-edge-role-1: 5/5 new triples (621, 0:00:00.045121) +- INFO - ----- add-amr-root: 5/5 new triples (626, 0:00:00.030758) - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_03_preprocessing - DEBUG - ----- step: preprocessing - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/03/ @@ -99,25 +94,25 @@ - INFO - ----- 75 triples extracted during preprocessing step - INFO - -- Applying extraction step: transduction - INFO - --- *** February Transduction *** Sequence: atomic extraction sequence -- INFO - ----- extract atom classes: 12/12 new triples (638, 0:00:00.069749) -- INFO - ----- extract atom individuals: 7/7 new triples (645, 0:00:00.050061) -- INFO - ----- extract atomic properties: 13/13 new triples (658, 0:00:00.127397) -- INFO - ----- extract atom values: 10/10 new triples (668, 0:00:00.050948) -- INFO - ----- extract atom phenomena: 7/7 new triples (675, 0:00:00.041708) -- INFO - ----- propagate atom relations: 11/22 new triples (686, 0:00:00.311171) +- INFO - ----- extract atom classes: 12/12 new triples (638, 0:00:00.067803) +- INFO - ----- extract atom individuals: 7/7 new triples (645, 0:00:00.047774) +- INFO - ----- extract atomic properties: 13/13 new triples (658, 0:00:00.049456) +- INFO - ----- extract atom values: 10/10 new triples (668, 0:00:00.062454) +- INFO - ----- extract atom phenomena: 7/7 new triples (675, 0:00:00.038464) +- INFO - ----- propagate atom relations: 11/22 new triples (686, 0:00:00.419121) - INFO - --- *** February Transduction *** Sequence: phenomena analyze sequence (1) -- DEBUG - ----- analyze "polarity" phenomena (1): 0/0 new triple (686, 0:00:00.009125) -- INFO - ----- analyze "polarity" phenomena (2): 12/14 new triples (698, 0:00:00.076581) -- DEBUG - ----- analyze modifier phenomena (mod): 0/0 new triple (698, 0:00:00.009838) +- DEBUG - ----- analyze "polarity" phenomena (1): 0/0 new triple (686, 0:00:00.009006) +- INFO - ----- analyze "polarity" phenomena (2): 12/14 new triples (698, 0:00:00.052621) +- DEBUG - ----- analyze modifier phenomena (mod): 0/0 new triple (698, 0:00:00.006898) - INFO - --- *** February Transduction *** Sequence: phenomena analyze sequence (2) -- DEBUG - ----- analyze "or" phenomena (1): 0/0 new triple (698, 0:00:00.010714) -- DEBUG - ----- analyze "or" phenomena (2): 0/0 new triple (698, 0:00:00.014737) +- DEBUG - ----- analyze "or" phenomena (1): 0/0 new triple (698, 0:00:00.009443) +- DEBUG - ----- analyze "or" phenomena (2): 0/0 new triple (698, 0:00:00.014862) - INFO - --- *** February Transduction *** Sequence: composite class extraction sequence -- INFO - ----- extract composite classes (1): 23/24 new triples (721, 0:00:00.126944) -- DEBUG - ----- extract composite classes (2): 0/0 new triple (721, 0:00:00.025372) +- INFO - ----- extract composite classes (1): 23/24 new triples (721, 0:00:00.138688) +- DEBUG - ----- extract composite classes (2): 0/0 new triple (721, 0:00:00.018134) - INFO - --- *** February Transduction *** Sequence: ODRL extraction sequence -- INFO - ----- extract ODRL actions: 12/14 new triples (733, 0:00:00.093927) -- INFO - ----- extract ODRL rules: 11/11 new triples (744, 0:00:00.116949) +- INFO - ----- extract ODRL actions: 12/14 new triples (733, 0:00:00.095729) +- INFO - ----- extract ODRL rules: 11/11 new triples (744, 0:00:00.115878) - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_03_transduction - DEBUG - ----- step: transduction - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/03/ @@ -126,7 +121,7 @@ - INFO - ----- 118 triples extracted during transduction step - INFO - -- Applying extraction step: generation - INFO - --- *** February Transduction *** Sequence: ODRL Rule Generation Sequence -- INFO - ----- generate ODRL rule: 1/1 new triple (745, 0:00:00.016414) +- INFO - ----- generate ODRL rule: 1/1 new triple (745, 0:00:00.039938) - DEBUG - --- Serializing graph to tenet.tetras-libre.fr_demo_clara_03_generation - DEBUG - ----- step: generation - DEBUG - ----- id: https://tenet.tetras-libre.fr/demo/clara/03/ @@ -149,6 +144,7 @@ - INFO - *** Execution Time *** ----- Function: create_ontology_from_amrld_file (tenet.main) ------ Total Time: 0:00:02.567053 ------ Process Time: 0:00:02.538713 +----- Total Time: 0:00:02.715752 +----- Process Time: 0:00:02.630108 *** - *** +- DEBUG - handle_close[c12677ced9db11edb5fe14abc581ea52]({'header': {'msg_id': 'ffab3b95-4abbba292202b266c50ed0- DEBUG - handle_close[dd509a52da2511edb5fe14abc581ea52]({'header': {'msg_id': 'd976c9c2-b0931d003eee38a633805abf_50868_28', 'msg_type': 'comm_close', 'username': 'lamenji', 'session': 'd976c9c2-b0931d003eee38a633805abf', 'date': datetime.datetime(2023, 4, 13, 21, 48, 47, 54497, tzinfo=tzutc()), 'version': '5.3'}, 'msg_id': 'd976c9c2-b0931d003eee38a633805abf_50868_28', 'msg_type': 'comm_close', 'parent_header': {}, 'metadata': {}, 'content': {'comm_id': 'dd509a52da2511edb5fe14abc581ea52', 'data': {}}, 'buffers': []}) diff --git a/tests/dev_tests/test_data/odrl-generation-devGraph-1.result.ttl b/tests/dev_tests/test_data/odrl-generation-devGraph-1.result.ttl new file mode 100644 index 00000000..2a6c7a76 --- /dev/null +++ b/tests/dev_tests/test_data/odrl-generation-devGraph-1.result.ttl @@ -0,0 +1,897 @@ +@base <https://amr.tetras-libre.fr/rdf/odrl-generation-devGraph-1/result> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix ext-out: <https://tenet.tetras-libre.fr/extract-result#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns1: <odrl:> . +@prefix ns11: <http://amr.isi.edu/rdf/core-amr#> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns21: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns11:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns11:hasID "test-1" ; + ns11:hasSentence "The sun is a star." ; + ns11:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns11:hasID "test-2" ; + ns11:hasSentence "Earth is a planet." ; + ns11:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns21:possible-01.ARG1 a ns21:FrameRole . + +ns21:use-01.ARG1 a ns21:FrameRole . + +ns2:domain a ns11:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns11:NamedEntity a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:hasID a owl:AnnotationProperty . + +ns11:hasSentence a owl:AnnotationProperty . + +ns11:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_m_name_9898 a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:edge_p_ARG1_u a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_u_ARG1_m a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:phenomena_modality_obligation a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "obligate-01" ; + :label "obligation-modality" . + +:phenomena_modality_prohibition a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :label "prohibition-modality" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG0 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:root_document-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#root01> ; + :hasRootLeaf :leaf_possible-01_p ; + :hasSentenceID "document-01" ; + :hasSentenceStatement "Movie9898 can be used." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +ext-out:policy_document-01 ns1:permission "net:x" . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:rule_permission_p a net:Rule_Net ; + net:composeFrom net:action_use_u, + net:phenomena_possible-modality_p ; + net:coverBaseNode :leaf_possible-01_p ; + net:coverNode :leaf_movie_m, + :leaf_possible-01_p, + :leaf_use-01_u ; + net:hasNaming "permission" ; + net:hasRuleActionURI net:action_use_u ; + net:hasRuleRelationName "permission" ; + net:hasStructure "document-01" . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/document-01#root01> a ns11:AMR ; + ns11:has-id "document-01" ; + ns11:has-sentence "Movie9898 can be used." ; + ns11:root <http://amr.isi.edu/amr_data/document-01#p> . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns11:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_movie rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:movie ; + :label "movie" . + +:concept_possible-01 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns21:possible-01 ; + :hasPhenomenaLink :phenomena_modality_possible ; + :label "possible-01" . + +:concept_use-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns21:use-01 ; + :label "use-01" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#m> ; + :label "m" ; + :name "9898" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#p> ; + :label "p" . + +:variable_u a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#u> ; + :label "u" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Action_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Rule_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_9898_m a net:Individual_Net ; + :role_name net:value_9898_blankNode ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasIndividualLabel "9898" ; + net:hasMotherClassNet net:atomClass_movie_m ; + net:hasNaming "9898" ; + net:hasStructure "document-01" . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_possible-modality_p a net:Phenomena_Net ; + :role_ARG1 net:action_use_u, + net:atomProperty_use_u ; + net:coverBaseNode :leaf_possible-01_p ; + net:coverNode :leaf_possible-01_p ; + net:hasNaming "possible-modality" ; + net:hasPhenomenaRef "possible-01" ; + net:hasPhenomenaType :phenomena_modality_possible ; + net:hasStructure "document-01" . + +<http://amr.isi.edu/amr_data/document-01#m> a ns2:movie ; + rdfs:label "9898" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-01#p> a ns21:possible-01 ; + ns21:possible-01.ARG1 <http://amr.isi.edu/amr_data/document-01#u> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-01#u> a ns21:use-01 ; + ns21:use-01.ARG1 <http://amr.isi.edu/amr_data/document-01#m> ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:FrameRole a ns11:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:possible-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:use-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:movie a ns11:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Frame a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:phenomena_modality_possible a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "allow-01", + "grant-01", + "likely-01", + "permit-01", + "possible-01" ; + :label "possible-modality" . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +:value_9898 a :AMR_Value ; + rdfs:label "9898" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:atomProperty_use_u a net:Atom_Property_Net ; + :role_ARG1 net:atomClass_movie_m, + net:individual_9898_m ; + net:coverBaseNode :leaf_use-01_u ; + net:coverNode :leaf_use-01_u ; + net:hasNaming "use" ; + net:hasPropertyName "use" ; + net:hasPropertyName01 "useing" ; + net:hasPropertyName10 "use-by" ; + net:hasPropertyName12 "use-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "document-01" ; + net:isCoreRoleLinked "true" ; + net:targetArgumentNode :leaf_movie_m . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +net:value_9898_blankNode a net:Value_Net ; + net:coverAmrValue :value_9898 ; + net:hasNaming "9898" ; + net:hasStructure "document-01" ; + net:hasValueLabel "9898" . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_modality a owl:Class ; + rdfs:subClassOf :AMR_Phenomena . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:action_use_u a net:Action_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_use_u ; + net:coverBaseNode :leaf_use-01_u ; + net:coverNode :leaf_movie_m, + :leaf_use-01_u ; + net:hasActionName "use" ; + net:hasNaming "use" ; + net:hasStructure "document-01" ; + net:hasTargetNet net:atomClass_movie_m . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:atomClass_movie_m a net:Atom_Class_Net ; + :role_name net:value_9898_blankNode ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasClassName "movie" ; + net:hasNaming "movie" ; + net:hasStructure "document-01" . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_possible-01_p a :AMR_Leaf ; + :edge_p_ARG1_u :leaf_use-01_u ; + :hasConcept :concept_possible-01 ; + :hasVariable :variable_p . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +:leaf_use-01_u a :AMR_Leaf ; + :edge_u_ARG1_m :leaf_movie_m ; + :hasConcept :concept_use-01 ; + :hasVariable :variable_u . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_movie_m a :AMR_Leaf ; + :edge_m_name_9898 :value_9898 ; + :hasConcept :concept_movie ; + :hasVariable :variable_m . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Linked_Data a owl:Class . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/tests/dev_tests/test_data/odrl-generation-devGraph-1.ttl b/tests/dev_tests/test_data/odrl-generation-devGraph-1.ttl new file mode 100644 index 00000000..bbf66742 --- /dev/null +++ b/tests/dev_tests/test_data/odrl-generation-devGraph-1.ttl @@ -0,0 +1,893 @@ +@base <https://amr.tetras-libre.fr/rdf/odrl-rule-devGraph-1/result> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/rdf/core-amr#> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns21: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns11:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns11:hasID "test-1" ; + ns11:hasSentence "The sun is a star." ; + ns11:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns11:hasID "test-2" ; + ns11:hasSentence "Earth is a planet." ; + ns11:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns21:possible-01.ARG1 a ns21:FrameRole . + +ns21:use-01.ARG1 a ns21:FrameRole . + +ns2:domain a ns11:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns11:NamedEntity a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:hasID a owl:AnnotationProperty . + +ns11:hasSentence a owl:AnnotationProperty . + +ns11:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_m_name_9898 a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:edge_p_ARG1_u a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_u_ARG1_m a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:phenomena_modality_obligation a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "obligate-01" ; + :label "obligation-modality" . + +:phenomena_modality_prohibition a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :label "prohibition-modality" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG0 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:root_document-01 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#root01> ; + :hasRootLeaf :leaf_possible-01_p ; + :hasSentenceID "document-01" ; + :hasSentenceStatement "Movie9898 can be used." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:rule_permission_p a net:Rule_Net ; + net:composeFrom net:action_use_u, + net:phenomena_possible-modality_p ; + net:coverBaseNode :leaf_possible-01_p ; + net:coverNode :leaf_movie_m, + :leaf_possible-01_p, + :leaf_use-01_u ; + net:hasNaming "permission" ; + net:hasRuleActionURI net:action_use_u ; + net:hasRuleRelationName "permission" ; + net:hasStructure "document-01" . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/document-01#root01> a ns11:AMR ; + ns11:has-id "document-01" ; + ns11:has-sentence "Movie9898 can be used." ; + ns11:root <http://amr.isi.edu/amr_data/document-01#p> . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns11:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_movie rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:movie ; + :label "movie" . + +:concept_possible-01 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns21:possible-01 ; + :hasPhenomenaLink :phenomena_modality_possible ; + :label "possible-01" . + +:concept_use-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns21:use-01 ; + :label "use-01" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#m> ; + :label "m" ; + :name "9898" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#p> ; + :label "p" . + +:variable_u a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-01#u> ; + :label "u" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Action_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Rule_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_9898_m a net:Individual_Net ; + :role_name net:value_9898_blankNode ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasIndividualLabel "9898" ; + net:hasMotherClassNet net:atomClass_movie_m ; + net:hasNaming "9898" ; + net:hasStructure "document-01" . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_possible-modality_p a net:Phenomena_Net ; + :role_ARG1 net:action_use_u, + net:atomProperty_use_u ; + net:coverBaseNode :leaf_possible-01_p ; + net:coverNode :leaf_possible-01_p ; + net:hasNaming "possible-modality" ; + net:hasPhenomenaRef "possible-01" ; + net:hasPhenomenaType :phenomena_modality_possible ; + net:hasStructure "document-01" . + +<http://amr.isi.edu/amr_data/document-01#m> a ns2:movie ; + rdfs:label "9898" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-01#p> a ns21:possible-01 ; + ns21:possible-01.ARG1 <http://amr.isi.edu/amr_data/document-01#u> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-01#u> a ns21:use-01 ; + ns21:use-01.ARG1 <http://amr.isi.edu/amr_data/document-01#m> ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:FrameRole a ns11:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:possible-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:use-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:movie a ns11:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Frame a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:phenomena_modality_possible a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "allow-01", + "grant-01", + "likely-01", + "permit-01", + "possible-01" ; + :label "possible-modality" . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +:value_9898 a :AMR_Value ; + rdfs:label "9898" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:atomProperty_use_u a net:Atom_Property_Net ; + :role_ARG1 net:atomClass_movie_m, + net:individual_9898_m ; + net:coverBaseNode :leaf_use-01_u ; + net:coverNode :leaf_use-01_u ; + net:hasNaming "use" ; + net:hasPropertyName "use" ; + net:hasPropertyName01 "useing" ; + net:hasPropertyName10 "use-by" ; + net:hasPropertyName12 "use-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "document-01" ; + net:isCoreRoleLinked "true" ; + net:targetArgumentNode :leaf_movie_m . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +net:value_9898_blankNode a net:Value_Net ; + net:coverAmrValue :value_9898 ; + net:hasNaming "9898" ; + net:hasStructure "document-01" ; + net:hasValueLabel "9898" . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_modality a owl:Class ; + rdfs:subClassOf :AMR_Phenomena . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:action_use_u a net:Action_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_use_u ; + net:coverBaseNode :leaf_use-01_u ; + net:coverNode :leaf_movie_m, + :leaf_use-01_u ; + net:hasActionName "use" ; + net:hasNaming "use" ; + net:hasStructure "document-01" ; + net:hasTargetNet net:atomClass_movie_m . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +net:atomClass_movie_m a net:Atom_Class_Net ; + :role_name net:value_9898_blankNode ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasClassName "movie" ; + net:hasNaming "movie" ; + net:hasStructure "document-01" . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_possible-01_p a :AMR_Leaf ; + :edge_p_ARG1_u :leaf_use-01_u ; + :hasConcept :concept_possible-01 ; + :hasVariable :variable_p . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +:leaf_use-01_u a :AMR_Leaf ; + :edge_u_ARG1_m :leaf_movie_m ; + :hasConcept :concept_use-01 ; + :hasVariable :variable_u . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_movie_m a :AMR_Leaf ; + :edge_m_name_9898 :value_9898 ; + :hasConcept :concept_movie ; + :hasVariable :variable_m . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Linked_Data a owl:Class . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/tests/dev_tests/test_data/odrl-generation-devGraph-2.ttl b/tests/dev_tests/test_data/odrl-generation-devGraph-2.ttl new file mode 100644 index 00000000..80a9bb0a --- /dev/null +++ b/tests/dev_tests/test_data/odrl-generation-devGraph-2.ttl @@ -0,0 +1,956 @@ +@base <https://amr.tetras-libre.fr/rdf/odrl-rule-devGraph-2/result> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns21: <http://amr.isi.edu/rdf/core-amr#> . +@prefix ns4: <http://amr.isi.edu/entity-types#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns21:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns21:hasID "test-1" ; + ns21:hasSentence "The sun is a star." ; + ns21:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns21:hasID "test-2" ; + ns21:hasSentence "Earth is a planet." ; + ns21:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns11:obligate-01.ARG2 a ns11:FrameRole . + +ns11:play-02.ARG0 a ns11:FrameRole . + +ns11:play-02.ARG1 a ns11:FrameRole . + +ns2:domain a ns21:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns21:hasID a owl:AnnotationProperty . + +ns21:hasSentence a owl:AnnotationProperty . + +ns21:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_o_ARG2_p a :AMR_Edge ; + :hasAmrRole :role_ARG2 ; + :hasRoleID "ARG2" . + +:edge_p2_name_John a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:edge_p_ARG0_p2 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p_ARG1_m a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:phenomena_modality_possible a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "allow-01", + "grant-01", + "likely-01", + "permit-01", + "possible-01" ; + :label "possible-modality" . + +:phenomena_modality_prohibition a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :label "prohibition-modality" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_polarity a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:root_document-02 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-02#root01> ; + :hasRootLeaf :leaf_obligate-01_o ; + :hasSentenceID "document-02" ; + :hasSentenceStatement "John must play the movie." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:compositeProperty_person-play-movie_p2 a net:Composite_Property_Net ; + :role_name net:value_John_blankNode ; + net:composeFrom net:atomClass_movie_m, + net:atomClass_person_p2, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_movie_m, + :leaf_person_p2, + :leaf_play-02_p ; + net:hasNaming "person-play-movie" ; + net:hasRestriction net:restriction_play-movie_p ; + net:hasStructure "document-02" . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:rule_obligation_o a net:Rule_Net ; + net:composeFrom net:action_play_p, + net:phenomena_obligation-modality_o ; + net:coverBaseNode :leaf_obligate-01_o ; + net:coverNode :leaf_movie_m, + :leaf_obligate-01_o, + :leaf_play-02_p ; + net:hasNaming "obligation" ; + net:hasRuleActionURI net:action_play_p ; + net:hasRuleRelationName "obligation" ; + net:hasStructure "document-02" . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/document-02#root01> a ns21:AMR ; + ns21:has-id "document-02" ; + ns21:has-sentence "John must play the movie." ; + ns21:root <http://amr.isi.edu/amr_data/document-02#o> . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns21:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:NamedEntity a ns21:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:concept_movie rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:movie ; + :label "movie" . + +:concept_obligate-01 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns11:obligate-01 ; + :hasPhenomenaLink :phenomena_modality_obligation ; + :label "obligate-01" . + +:concept_person rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns4:person ; + :label "person" . + +:concept_play-02 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns11:play-02 ; + :label "play-02" . + +:role_ARG0 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +:role_ARG2 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-02#m> ; + :label "m" . + +:variable_o a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-02#o> ; + :label "o" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-02#p> ; + :label "p" . + +:variable_p2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-02#p2> ; + :label "p2" ; + :name "John" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Action_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Rule_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_John_p2 a net:Individual_Net ; + :role_name net:value_John_blankNode ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_person_p2 ; + net:hasIndividualLabel "John" ; + net:hasMotherClassNet net:atomClass_person_p2 ; + net:hasNaming "John" ; + net:hasStructure "document-02" . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_obligation-modality_o a net:Phenomena_Net ; + :role_ARG2 net:action_play_p, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_obligate-01_o ; + net:coverNode :leaf_obligate-01_o ; + net:hasNaming "obligation-modality" ; + net:hasPhenomenaRef "obligate-01" ; + net:hasPhenomenaType :phenomena_modality_obligation ; + net:hasStructure "document-02" . + +net:restriction_play-movie_p a net:Restriction_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_play-02_p ; + net:coverNode :leaf_movie_m, + :leaf_play-02_p ; + net:hasNaming "play-movie" ; + net:hasRestrictionNetValue net:atomClass_movie_m ; + net:hasRestrictionOnProperty net:atomProperty_play_p ; + net:hasStructure "document-02" . + +<http://amr.isi.edu/amr_data/document-02#m> a ns2:movie ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-02#o> a ns11:obligate-01 ; + ns11:obligate-01.ARG2 <http://amr.isi.edu/amr_data/document-02#p> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-02#p> a ns11:play-02 ; + ns11:play-02.ARG0 <http://amr.isi.edu/amr_data/document-02#p2> ; + ns11:play-02.ARG1 <http://amr.isi.edu/amr_data/document-02#m> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-02#p2> a ns4:person ; + rdfs:label "John" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns4:person a ns21:NamedEntity ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:obligate-01 a ns21:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:play-02 a ns21:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:movie a ns21:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns21:Frame a ns21:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:phenomena_modality_obligation a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "obligate-01" ; + :label "obligation-modality" . + +:value_John a :AMR_Value ; + rdfs:label "John" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +ns11:FrameRole a ns21:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_modality a owl:Class ; + rdfs:subClassOf :AMR_Phenomena . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:action_play_p a net:Action_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_play-02_p ; + net:coverNode :leaf_movie_m, + :leaf_play-02_p ; + net:hasActionName "play" ; + net:hasNaming "play" ; + net:hasStructure "document-02" ; + net:hasTargetNet net:atomClass_movie_m . + +net:atomClass_person_p2 a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_name net:value_John_blankNode ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_person_p2 ; + net:hasClassName "person" ; + net:hasNaming "person" ; + net:hasStructure "document-02" . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:value_John_blankNode a net:Value_Net ; + net:coverAmrValue :value_John ; + net:hasNaming "John" ; + net:hasStructure "document-02" ; + net:hasValueLabel "John" . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:leaf_obligate-01_o a :AMR_Leaf ; + :edge_o_ARG2_p :leaf_play-02_p ; + :hasConcept :concept_obligate-01 ; + :hasVariable :variable_o . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:atomProperty_play_p a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_person_p2, + net:individual_John_p2 ; + :role_ARG1 net:atomClass_movie_m ; + net:coverBaseNode :leaf_play-02_p ; + net:coverNode :leaf_play-02_p ; + net:hasNaming "play" ; + net:hasPropertyName "play" ; + net:hasPropertyName01 "playing" ; + net:hasPropertyName10 "play-by" ; + net:hasPropertyName12 "play-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "document-02" ; + net:isCoreRoleLinked "true" ; + net:targetArgumentNode :leaf_movie_m, + :leaf_person_p2 . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:atomClass_movie_m a net:Atom_Class_Net ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasClassName "movie" ; + net:hasNaming "movie" ; + net:hasStructure "document-02" . + +rdf:Property a owl:Class . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_movie_m a :AMR_Leaf ; + :hasConcept :concept_movie ; + :hasVariable :variable_m . + +:leaf_person_p2 a :AMR_Leaf ; + :edge_p2_name_John :value_John ; + :hasConcept :concept_person ; + :hasVariable :variable_p2 . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_play-02_p a :AMR_Leaf ; + :edge_p_ARG0_p2 :leaf_person_p2 ; + :edge_p_ARG1_m :leaf_movie_m ; + :hasConcept :concept_play-02 ; + :hasVariable :variable_p . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Linked_Data a owl:Class . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/tests/dev_tests/test_data/odrl-generation-devGraph-3.ttl b/tests/dev_tests/test_data/odrl-generation-devGraph-3.ttl new file mode 100644 index 00000000..64383f89 --- /dev/null +++ b/tests/dev_tests/test_data/odrl-generation-devGraph-3.ttl @@ -0,0 +1,986 @@ +@base <https://amr.tetras-libre.fr/rdf/odrl-rule-devGraph-3/result> . +@prefix : <https://amr.tetras-libre.fr/rdf/schema#> . +@prefix cprm: <https://tenet.tetras-libre.fr/config/parameters#> . +@prefix net: <https://tenet.tetras-libre.fr/semantic-net#> . +@prefix ns11: <http://amr.isi.edu/rdf/core-amr#> . +@prefix ns2: <http://amr.isi.edu/rdf/amr-terms#> . +@prefix ns3: <http://amr.isi.edu/frames/ld/v1.2.2/> . +@prefix ns4: <http://amr.isi.edu/entity-types#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sys: <https://tenet.tetras-libre.fr/base-ontology#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +ns11:Concept a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Concept" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Role a rdfs:Class, + owl:Class ; + rdfs:label "AMR-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/test-1#root01> ns11:hasID "test-1" ; + ns11:hasSentence "The sun is a star." ; + ns11:root <http://amr.isi.edu/amr_data/test-1#s> . + +<http://amr.isi.edu/amr_data/test-2#root01> ns11:hasID "test-2" ; + ns11:hasSentence "Earth is a planet." ; + ns11:root <http://amr.isi.edu/amr_data/test-2#p> . + +ns3:allow-01.ARG1 a ns3:FrameRole . + +ns3:play-01.ARG0 a ns3:FrameRole . + +ns3:play-01.ARG1 a ns3:FrameRole . + +ns2:domain a ns11:Role, + owl:AnnotationProperty, + owl:NamedIndividual . + +ns11:hasID a owl:AnnotationProperty . + +ns11:hasSentence a owl:AnnotationProperty . + +ns11:root a owl:AnnotationProperty . + +<https://amr.tetras-libre.fr/rdf/schema> a owl:Ontology ; + owl:versionIRI :0.1 . + +:AMR_DataProperty a owl:DatatypeProperty . + +:AMR_Prep_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:edge_a_ARG1_p a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:edge_a_polarity_negative a :AMR_Edge ; + :hasAmrRole :role_polarity ; + :hasRoleID "polarity" . + +:edge_p2_name_John a :AMR_Edge ; + :hasAmrRole :role_name ; + :hasRoleID "name" . + +:edge_p_ARG0_p2 a :AMR_Edge ; + :hasAmrRole :role_ARG0 ; + :hasRoleID "ARG0" . + +:edge_p_ARG1_m a :AMR_Edge ; + :hasAmrRole :role_ARG1 ; + :hasRoleID "ARG1" . + +:fromAmrLkFramerole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRole a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:fromAmrLkRoot a owl:AnnotationProperty ; + rdfs:subPropertyOf :fromAmrLk . + +:getDirectPropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getInversePropertyName a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:getPropertyType a owl:AnnotationProperty ; + rdfs:subPropertyOf :getProperty . + +:hasConcept a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasConceptLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasEdgeLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasLink . + +:hasReification a owl:AnnotationProperty ; + rdfs:range xsd:boolean ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationDomain a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasReificationRange a owl:AnnotationProperty ; + rdfs:subPropertyOf :hasReificationDefinition . + +:hasRelationName a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasRoleID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRoleTag a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRolesetID a owl:ObjectProperty ; + rdfs:domain :AMR_Edge ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasRootLeaf a owl:ObjectProperty ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:hasSentenceID a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasSentenceStatement a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasVariable a owl:ObjectProperty ; + rdfs:domain :AMR_Leaf ; + rdfs:subPropertyOf :AMR_ObjectProperty . + +:label a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction_and a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "and" ; + :label "conjunction-AND" . + +:phenomena_conjunction_or a owl:Class ; + rdfs:subClassOf :phenomena_conjunction ; + :hasConceptLink "or" ; + :label "conjunction-OR" . + +:phenomena_degree a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "have-degree-91" ; + :label "degree" . + +:phenomena_modality_obligation a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "obligate-01" ; + :label "obligation-modality" . + +:relation_domain a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "domain" . + +:relation_manner a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasManner" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "manner" . + +:relation_mod a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "mod" . + +:relation_name a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "name" . + +:relation_part a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification true ; + :hasReificationConcept "hasPart" ; + :hasReificationDomain "ARG1" ; + :hasReificationRange "ARG2" ; + :hasRelationName "part" . + +:relation_polarity a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "polarity" . + +:relation_quant a owl:Class ; + rdfs:subClassOf :AMR_Relation ; + :hasReification false ; + :hasRelationName "quant" . + +:role_ARG2 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG2" . + +:role_ARG3 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG3" . + +:role_ARG4 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG4" . + +:role_ARG5 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG5" . + +:role_ARG6 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG6" . + +:role_ARG7 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG7" . + +:role_ARG8 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG8" . + +:role_ARG9 a owl:Class ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG9" . + +:role_domain a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :hasRelationName "domain" ; + :label "domain" ; + :toReifyAsConcept "domain" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_have-degree-91 a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :getPropertyType <net:specificProperty> . + +:role_manner a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "manner" ; + :getPropertyType owl:DataProperty ; + :label "manner" ; + :toReifyAsConcept "manner" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_mod a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasFeature"^^xsd:string ; + :getPropertyType rdfs:subClassOf, + owl:ObjectProperty ; + :label "mod" ; + :toReifyAsConcept "mod" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_op1 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op1" . + +:role_op2 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op2" . + +:role_op3 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op3" . + +:role_op4 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op4" . + +:role_op5 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op5" . + +:role_op6 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op6" . + +:role_op7 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op7" . + +:role_op8 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op8" . + +:role_op9 a owl:Class ; + rdfs:subClassOf :AMR_Op_Role ; + :label "op9" . + +:role_part a owl:Class ; + rdfs:subClassOf :AMR_NonCore_Role ; + :getDirectPropertyName "hasPart"^^xsd:string ; + :getInversePropertyName "partOf"^^xsd:string ; + :getPropertyType owl:ObjectProperty ; + :toReifyAsConcept "part" ; + :toReifyWithBaseEdge "ARG0" ; + :toReifyWithHeadEdge "ARG1" . + +:role_quant a owl:Class ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "quant" . + +:root_document-03 a :AMR_Root ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-03#root01> ; + :hasRootLeaf :leaf_allow-01_a ; + :hasSentenceID "document-03" ; + :hasSentenceStatement "John is not allowed to play the movie.." . + +:toReifyAsConcept a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithBaseEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +:toReifyWithHeadEdge a owl:AnnotationProperty ; + rdfs:subPropertyOf :toReify . + +<https://tenet.tetras-libre.fr/base-ontology> a owl:Ontology . + +sys:Event a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Undetermined_Thing a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:fromStructure a owl:AnnotationProperty ; + rdfs:subPropertyOf sys:Out_AnnotationProperty . + +sys:hasDegree a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +sys:hasFeature a owl:ObjectProperty ; + rdfs:subPropertyOf sys:Out_ObjectProperty . + +<https://tenet.tetras-libre.fr/config/parameters> a owl:Ontology . + +cprm:Config_Parameters a owl:Class ; + cprm:baseURI "https://tenet.tetras-libre.fr/" ; + cprm:netURI "https://tenet.tetras-libre.fr/semantic-net#" ; + cprm:newClassRef "new-class#" ; + cprm:newPropertyRef "new-relation#" ; + cprm:objectRef "object_" ; + cprm:targetOntologyURI "https://tenet.tetras-libre.fr/base-ontology/" . + +cprm:baseURI a rdf:Property ; + rdfs:label "Base URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:netURI a rdf:Property ; + rdfs:label "Net URI" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newClassRef a rdf:Property ; + rdfs:label "Reference for a new class" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:newPropertyRef a rdf:Property ; + rdfs:label "Reference for a new property" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:objectRef a rdf:Property ; + rdfs:label "Object Reference" ; + rdfs:subPropertyOf cprm:configParamProperty . + +cprm:targetOntologyURI a rdf:Property ; + rdfs:label "URI of classes in target ontology" ; + rdfs:domain cprm:Frame ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty . + +<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . + +net:Composite_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Feature a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:abstractionClass a owl:AnnotationProperty ; + rdfs:label "abstraction class" ; + rdfs:subPropertyOf net:objectValue . + +net:atomType a owl:AnnotationProperty ; + rdfs:label "atom type" ; + rdfs:subPropertyOf net:objectType . + +net:compositeProperty_person-play-movie_p2 a net:Composite_Property_Net ; + :role_name net:value_John_blankNode ; + net:composeFrom net:atomClass_movie_m, + net:atomClass_person_p2, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_movie_m, + :leaf_person_p2, + :leaf_play-01_p ; + net:hasNaming "person-play-movie" ; + net:hasRestriction net:restriction_play-movie_p ; + net:hasStructure "document-03" . + +net:entityClass a owl:AnnotationProperty ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:objectValue . + +net:featureClass a owl:AnnotationProperty ; + rdfs:label "feature class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_atom a owl:AnnotationProperty ; + rdfs:label "has atom" ; + rdfs:subPropertyOf net:has_object . + +net:has_class a owl:AnnotationProperty ; + rdfs:label "is class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_class_name a owl:AnnotationProperty ; + rdfs:subPropertyOf net:has_value . + +net:has_class_uri a owl:AnnotationProperty ; + rdfs:label "class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_concept a owl:AnnotationProperty ; + rdfs:label "concept "@fr ; + rdfs:subPropertyOf net:objectValue . + +net:has_entity a owl:AnnotationProperty ; + rdfs:label "has entity" ; + rdfs:subPropertyOf net:has_object . + +net:has_feature a owl:AnnotationProperty ; + rdfs:label "has feature" ; + rdfs:subPropertyOf net:has_object . + +net:has_instance a owl:AnnotationProperty ; + rdfs:label "entity instance" ; + rdfs:subPropertyOf net:objectValue . + +net:has_instance_uri a owl:AnnotationProperty ; + rdfs:label "instance uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_item a owl:AnnotationProperty ; + rdfs:label "has item" ; + rdfs:subPropertyOf net:has_object . + +net:has_mother_class a owl:AnnotationProperty ; + rdfs:label "has mother class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_mother_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_node a owl:AnnotationProperty ; + rdfs:label "UNL Node" ; + rdfs:subPropertyOf net:netProperty . + +net:has_parent a owl:AnnotationProperty ; + rdfs:label "has parent" ; + rdfs:subPropertyOf net:has_object . + +net:has_parent_class a owl:AnnotationProperty ; + rdfs:label "parent class" ; + rdfs:subPropertyOf net:objectValue . + +net:has_parent_class_uri a owl:AnnotationProperty ; + rdfs:label "parent class uri" ; + rdfs:subPropertyOf net:objectValue . + +net:has_possible_domain a owl:AnnotationProperty ; + rdfs:label "has possible domain" ; + rdfs:subPropertyOf net:has_object . + +net:has_possible_range a owl:AnnotationProperty ; + rdfs:label "has possible range" ; + rdfs:subPropertyOf net:has_object . + +net:has_relation a owl:AnnotationProperty ; + rdfs:label "has relation" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_source a owl:AnnotationProperty ; + rdfs:label "has source" ; + rdfs:subPropertyOf net:has_relation_value . + +net:has_structure a owl:AnnotationProperty ; + rdfs:label "Linguistic Structure (in UNL Document)" ; + rdfs:subPropertyOf net:netProperty . + +net:has_target a owl:AnnotationProperty ; + rdfs:label "has target" ; + rdfs:subPropertyOf net:has_relation_value . + +net:inverse_direction a owl:NamedIndividual . + +net:listGuiding a owl:AnnotationProperty ; + rdfs:label "Guiding connector of a list (or, and)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat1 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 1)" ; + rdfs:subPropertyOf net:objectValue . + +net:modCat2 a owl:AnnotationProperty ; + rdfs:label "Modality Category (level 2)" ; + rdfs:subPropertyOf net:objectValue . + +net:normal_direction a owl:NamedIndividual . + +net:rule_prohibition_a a net:Rule_Net ; + net:composeFrom net:action_play_p, + net:phenomena_prohibition-modality_a ; + net:coverBaseNode :leaf_allow-01_a ; + net:coverNode :leaf_allow-01_a, + :leaf_movie_m, + :leaf_play-01_p ; + net:hasNaming "prohibition" ; + net:hasRuleActionURI net:action_play_p ; + net:hasRuleRelationName "prohibition" ; + net:hasStructure "document-03" . + +net:type a owl:AnnotationProperty ; + rdfs:label "type "@fr ; + rdfs:subPropertyOf net:netProperty . + +net:verbClass a owl:AnnotationProperty ; + rdfs:label "verb class" ; + rdfs:subPropertyOf net:objectValue . + +<http://amr.isi.edu/amr_data/document-03#root01> a ns11:AMR ; + ns11:has-id "document-03" ; + ns11:has-sentence "John is not allowed to play the movie.." ; + ns11:root <http://amr.isi.edu/amr_data/document-03#a> . + +<http://amr.isi.edu/amr_data/test-1#s> ns2:domain <http://amr.isi.edu/amr_data/test-1#s2> . + +<http://amr.isi.edu/amr_data/test-2#p> rdfs:label "Earth" . + +ns11:AMR a owl:Class ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:NamedEntity a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-EntityType", + "AMR-Term" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Predicat_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Relation_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Root a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:concept_allow-01 rdfs:subClassOf :AMR_Relation_Concept ; + :fromAmrLk ns3:allow-01 ; + :hasPhenomenaLink :phenomena_modality_possible ; + :label "allow-01" . + +:concept_movie rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns2:movie ; + :label "movie" . + +:concept_person rdfs:subClassOf :AMR_Term_Concept ; + :fromAmrLk ns4:person ; + :label "person" . + +:concept_play-01 rdfs:subClassOf :AMR_Predicat_Concept ; + :fromAmrLk ns3:play-01 ; + :label "play-01" . + +:phenomena_modality_prohibition a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :label "prohibition-modality" . + +:role_ARG0 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG0" . + +:role_name a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_NonCore_Role ; + :label "name" . + +:role_polarity a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Specific_Role ; + :label "polarity" . + +:variable_a a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-03#a> ; + :label "a" . + +:variable_m a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-03#m> ; + :label "m" . + +:variable_p a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-03#p> ; + :label "p" . + +:variable_p2 a :AMR_Variable ; + :fromAmrLk <http://amr.isi.edu/amr_data/document-03#p2> ; + :label "p2" ; + :name "John" . + +sys:Degree a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Entity a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Feature a owl:Class ; + rdfs:subClassOf sys:Out_Structure . + +sys:Out_AnnotationProperty a owl:AnnotationProperty . + +net:Action_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Atom_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Composite_Property_Net a owl:Class ; + rdfs:subClassOf net:Property_Net . + +net:Individual_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Rule_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:has_value a owl:AnnotationProperty ; + rdfs:subPropertyOf net:netProperty . + +net:individual_John_p2 a net:Individual_Net ; + :role_name net:value_John_blankNode ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_person_p2 ; + net:hasIndividualLabel "John" ; + net:hasMotherClassNet net:atomClass_person_p2 ; + net:hasNaming "John" ; + net:hasStructure "document-03" . + +net:objectType a owl:AnnotationProperty ; + rdfs:label "object type" ; + rdfs:subPropertyOf net:objectProperty . + +net:phenomena_possible-modality_a a net:Deprecated_Net, + net:Phenomena_Net ; + :role_ARG1 net:action_play_p, + net:atomProperty_play_p ; + :role_polarity net:value_negative_blankNode ; + net:coverBaseNode :leaf_allow-01_a ; + net:coverNode :leaf_allow-01_a ; + net:hasNaming "possible-modality" ; + net:hasPhenomenaRef "allow-01" ; + net:hasPhenomenaType :phenomena_modality_possible ; + net:hasStructure "document-03" . + +net:phenomena_prohibition-modality_a a net:Phenomena_Net ; + :role_ARG1 net:action_play_p, + net:atomProperty_play_p ; + :role_polarity net:value_negative_blankNode ; + net:composeFrom net:phenomena_possible-modality_a, + net:value_negative_blankNode ; + net:coverBaseNode :leaf_allow-01_a ; + net:coverNode :leaf_allow-01_a ; + net:hasNaming "prohibition-modality" ; + net:hasPhenomenaRef "not-[rdflib.term.Literal('allow-01')]" ; + net:hasPhenomenaType :phenomena_modality_prohibition ; + net:hasStructure "document-03" . + +net:restriction_play-movie_p a net:Restriction_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_play-01_p ; + net:coverNode :leaf_movie_m, + :leaf_play-01_p ; + net:hasNaming "play-movie" ; + net:hasRestrictionNetValue net:atomClass_movie_m ; + net:hasRestrictionOnProperty net:atomProperty_play_p ; + net:hasStructure "document-03" . + +<http://amr.isi.edu/amr_data/document-03#a> a ns3:allow-01 ; + ns3:allow-01.ARG1 <http://amr.isi.edu/amr_data/document-03#p> ; + ns2:polarity "-" ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-03#m> a ns2:movie ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-03#p> a ns3:play-01 ; + ns3:play-01.ARG0 <http://amr.isi.edu/amr_data/document-03#p2> ; + ns3:play-01.ARG1 <http://amr.isi.edu/amr_data/document-03#m> ; + rdfs:subClassOf :AMR_Linked_Data . + +<http://amr.isi.edu/amr_data/document-03#p2> a ns4:person ; + rdfs:label "John" ; + rdfs:subClassOf :AMR_Linked_Data . + +ns4:person a ns11:NamedEntity ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:allow-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns3:play-01 a ns11:Frame ; + rdfs:subClassOf :AMR_Linked_Data . + +ns2:movie a ns11:Concept ; + rdfs:subClassOf :AMR_Linked_Data . + +ns11:Frame a ns11:Concept, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Frame" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Term_Concept a owl:Class ; + rdfs:subClassOf :AMR_Concept . + +:AMR_Value a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:hasLink a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_conjunction a owl:Class ; + rdfs:subClassOf :AMR_Phenomena ; + :hasConceptLink "contrast-01", + "either", + "neither" ; + :label "conjunction" . + +:phenomena_modality_possible a owl:Class ; + rdfs:subClassOf :phenomena_modality ; + :hasConceptLink "allow-01", + "grant-01", + "likely-01", + "permit-01", + "possible-01" ; + :label "possible-modality" . + +:role_ARG1 a owl:Class, + net:Relation ; + rdfs:subClassOf :AMR_Core_Role ; + :label "ARG1" . + +:value_John a :AMR_Value ; + rdfs:label "John" . + +:value_negative a :AMR_Value ; + rdfs:label "negative" . + +sys:Out_ObjectProperty a owl:ObjectProperty . + +net:Atom_Class_Net a owl:Class ; + rdfs:subClassOf net:Class_Net . + +net:Class_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Deprecated_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Phenomena_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Property_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:Value_Net a owl:Class ; + rdfs:subClassOf net:Net . + +net:objectProperty a owl:AnnotationProperty ; + rdfs:label "object attribute" . + +ns3:FrameRole a ns11:Role, + owl:Class, + owl:NamedIndividual ; + rdfs:label "AMR-PropBank-Role" ; + rdfs:subClassOf :AMR_Linked_Data . + +:AMR_Concept a owl:Class ; + rdfs:subClassOf :AMR_Element . + +:AMR_Phenomena a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Specific_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:fromAmrLk a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:getProperty a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:hasReificationDefinition a owl:AnnotationProperty ; + rdfs:range rdfs:Literal ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +:phenomena_modality a owl:Class ; + rdfs:subClassOf :AMR_Phenomena . + +:toReify a owl:AnnotationProperty ; + rdfs:subPropertyOf :AMR_AnnotationProperty . + +net:Net_Structure a owl:Class ; + rdfs:label "Semantic Net Structure" ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . + +net:atomClass_person_p2 a net:Atom_Class_Net, + net:Deprecated_Net ; + :role_name net:value_John_blankNode ; + net:coverBaseNode :leaf_person_p2 ; + net:coverNode :leaf_person_p2 ; + net:hasClassName "person" ; + net:hasNaming "person" ; + net:hasStructure "document-03" . + +net:has_relation_value a owl:AnnotationProperty ; + rdfs:label "has relation value" ; + rdfs:subPropertyOf net:has_object . + +net:value_John_blankNode a net:Value_Net ; + net:coverAmrValue :value_John ; + net:hasNaming "John" ; + net:hasStructure "document-03" ; + net:hasValueLabel "John" . + +net:value_negative_blankNode a net:Value_Net ; + net:coverAmrValue :value_negative ; + net:hasNaming "negative" ; + net:hasStructure "document-03" ; + net:hasValueLabel "negative" . + +:AMR_Element a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_Variable a owl:Class ; + rdfs:subClassOf :AMR_Element . + +net:Relation a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:action_play_p a net:Action_Net ; + net:composeFrom net:atomClass_movie_m, + net:atomProperty_play_p ; + net:coverBaseNode :leaf_play-01_p ; + net:coverNode :leaf_movie_m, + :leaf_play-01_p ; + net:hasActionName "play" ; + net:hasNaming "play" ; + net:hasStructure "document-03" ; + net:hasTargetNet net:atomClass_movie_m . + +:AMR_NonCore_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Role a owl:Class ; + rdfs:subClassOf :AMR_Element . + +sys:Out_Structure a owl:Class ; + rdfs:label "Output Ontology Structure" . + +net:netProperty a owl:AnnotationProperty ; + rdfs:label "netProperty" . + +:AMR_Leaf a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:AMR_ObjectProperty a owl:ObjectProperty ; + rdfs:subPropertyOf owl:topObjectProperty . + +:AMR_Structure a owl:Class . + +cprm:configParamProperty a rdf:Property ; + rdfs:label "Config Parameter Property" . + +net:atomClass_movie_m a net:Atom_Class_Net ; + net:coverBaseNode :leaf_movie_m ; + net:coverNode :leaf_movie_m ; + net:hasClassName "movie" ; + net:hasNaming "movie" ; + net:hasStructure "document-03" . + +net:atomProperty_play_p a net:Atom_Property_Net ; + :role_ARG0 net:atomClass_person_p2, + net:individual_John_p2 ; + :role_ARG1 net:atomClass_movie_m ; + net:coverBaseNode :leaf_play-01_p ; + net:coverNode :leaf_play-01_p ; + net:hasNaming "play" ; + net:hasPropertyName "play" ; + net:hasPropertyName01 "playing" ; + net:hasPropertyName10 "play-by" ; + net:hasPropertyName12 "play-of" ; + net:hasPropertyType owl:ObjectProperty ; + net:hasStructure "document-03" ; + net:isCoreRoleLinked "true" ; + net:targetArgumentNode :leaf_movie_m, + :leaf_person_p2 . + +rdf:Property a owl:Class . + +:AMR_Relation a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_allow-01_a a :AMR_Leaf ; + :edge_a_ARG1_p :leaf_play-01_p ; + :edge_a_polarity_negative :value_negative ; + :hasConcept :concept_allow-01 ; + :hasVariable :variable_a . + +:AMR_Edge a owl:Class ; + rdfs:subClassOf :AMR_Structure . + +:leaf_movie_m a :AMR_Leaf ; + :hasConcept :concept_movie ; + :hasVariable :variable_m . + +:leaf_person_p2 a :AMR_Leaf ; + :edge_p2_name_John :value_John ; + :hasConcept :concept_person ; + :hasVariable :variable_p2 . + +net:Net a owl:Class ; + rdfs:subClassOf net:Net_Structure . + +net:has_object a owl:AnnotationProperty ; + rdfs:label "relation" ; + rdfs:subPropertyOf net:netProperty . + +:AMR_Op_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:leaf_play-01_p a :AMR_Leaf ; + :edge_p_ARG0_p2 :leaf_person_p2 ; + :edge_p_ARG1_m :leaf_movie_m ; + :hasConcept :concept_play-01 ; + :hasVariable :variable_p . + +:AMR_AnnotationProperty a owl:AnnotationProperty . + +:AMR_Core_Role a owl:Class ; + rdfs:subClassOf :AMR_Role . + +:AMR_Linked_Data a owl:Class . + +net:objectValue a owl:AnnotationProperty ; + rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:objectProperty . + +[] a owl:AllDisjointClasses ; + owl:members ( sys:Degree sys:Entity sys:Feature ) . + diff --git a/tests/dev_tests/test_rule_odrl_generator.py b/tests/dev_tests/test_rule_odrl_generator.py new file mode 100644 index 00000000..9648aab3 --- /dev/null +++ b/tests/dev_tests/test_rule_odrl_generator.py @@ -0,0 +1,143 @@ +#!/usr/bin/python3.10 +# -*-coding:Utf-8 -* + +#============================================================================== +# TENET: Extraction Rule Test +#------------------------------------------------------------------------------ +# Script to test rules under development +#============================================================================== + +import subprocess, os +from rdflib import Graph, Namespace +from rdflib.namespace import NamespaceManager, FOAF, RDF +from rdflib import URIRef, Literal, BNode + +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 = 'odrl-generation-devGraph-1' +TEST_FILE_NAME_2 = 'odrl-generation-devGraph-2' +TEST_FILE_NAME_3 = 'odrl-generation-devGraph-3' + +from context import tenet +from tenet.scheme.amr_clara_rule.odrl_generation import odrl_rule_generator as dev_rule +from tenet.scheme import amr_clara_rule as rule + +from tenet.transduction import rdfterm_computer, prefix_handle +from tenet.transduction.rdfterm_computer import __update_uri_with_prefix + + + + +#============================================================================== +# Useful Methods +#============================================================================== + +def load_test_graph(test_file_name): + print(f'\n -- Test Graph Loading') + graph = Graph() + prefix_handle.update_graph_namespacemanager(graph) + graph_path = f'{INPUT_DIR_PATH}{test_file_name}.ttl' + graph.parse(graph_path) + print(f" ----- Graph Loaded ({len(graph)})") + return graph + + +def define_clause_list(composition_pattern_list): + clause_list = [] + for (net_1, relation, net_2) in composition_pattern_list: + clause_list.append(f'{net_1} {relation} {net_2}.') + return clause_list + + +def print_triple(graph, triple, num=-1): + num_str = f'[{num}]' if num > -1 else '[-]' + (s, p, o) = triple + s = __update_uri_with_prefix(graph, s) + p = __update_uri_with_prefix(graph, p) + o = __update_uri_with_prefix(graph, o) + print(f' {num_str} {s} {p} {o}') + + +def add_triples_in_graph(test_file_name, graph, triple_list): + print(f'\n -- Adding triple(s) in graph') + print(f" ----- Graph length before update: {len(graph)}") + print(f" ----- Number of triples to add: {len(triple_list)}") + + print(f" ----- Added triples:") + n = 0 + graph_length = len(graph) + for triple in triple_list: + graph.add(triple) + if graph_length < len(graph): + n += 1 + graph_length = len(graph) + print_triple(graph, triple, num=n) + + print(f" ----- Graph length after update: {len(graph)}") + + output_graph_path = f'{OUTPUT_DIR_PATH}{test_file_name}.result.ttl' + output_graph_uri = f'https://amr.tetras-libre.fr/rdf/{test_file_name}/result' + print(f'\n -- Serialize test graph to {output_graph_path}') + graph.serialize(destination=output_graph_path, + format='turtle', + base=output_graph_uri) + + + +#============================================================================== +# Development Test +#============================================================================== + +def test_search_pattern_1(graph): + print('\n -- Search patterns (1)') + _, result_set = dev_rule.__search_pattern_1(graph) + print(f'\n ----- number of selection found: {len(result_set)}') + for selection in result_set: + result_str = f'>>> ' + result_str += f'{selection.rule_net.n3(graph.namespace_manager)}' + print(result_str) + + + +#============================================================================== +# Unit Test +#============================================================================== + +def test_rule_application(test_file_name, graph, rule): + print('\n -- Rule Test') + + rule_label, new_triple_list = rule(graph) + print(f' ----- label: {rule_label}') + + add_triples_in_graph(test_file_name, graph, new_triple_list) + + + +#============================================================================== +# Test Script +#============================================================================== + +if __name__ == '__main__': + + print('\n *** Test Preparation ***') + 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) + print('\n \n') + + print('\n ///////////////////// Extraction Rule 1') + + print('\n *** Step Test ***') + + print('\n -- Step 1: Search Pattern') + pattern_set = test_search_pattern_1(graph_1) + + print('\n \n') + + print('\n *** Unit Test ***') + test_rule_application(TEST_FILE_NAME_1, graph_1, rule.generate_odrl_rule) + print('\n \n') + + print('\n *** - ***') \ No newline at end of file -- GitLab