diff --git a/.gitignore b/.gitignore index 6df95a08481f9b5499bd8fa3321e99cd2f43b4ec..7d164cee8e599aae58ac48541776441356e310e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *.pyc __pycache__ *.todo -devtemp.py +devtemp*.py corpus/CCTP-SRSA-IP* diff --git a/README.md b/README.md index 6b24da12c08b4adbad6d68774dcbf6012a1bfe8a..2cd9b253391ea00ee39ef068bd645eee12773d1c 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ The **config** directory contains various configuration files for the process: - **unl-rdf-schema.ttl**: RDF schema for the interpretation of UNL graphs - **smenet.ttl**: RDF schema of the semantic rules +The **corpus** directory contains the corpora to be processed. + +The **frame** directory contains files defining frame ontologies. These establish target frames to be completed +by the extraction process, making it possible to obtain the expected representations. ## 4 - Execution @@ -59,20 +63,20 @@ This prototype was tested with a standard computer configuration. The processing The following times were measured for the processing of a file of 10 sentences: - * about xxx seconds for initialization and UNL sentences loading; - * about xxx second for transduction, classification and instanciation process; - * about xxx second for reasonning process. + - about xxx seconds for initialization and UNL sentences loading; + - about xxx second for transduction, classification and instanciation process; + - about xxx second for reasonning process. ## 5 - Commands Following commands are proposed to execute the different steps of the process: - * **select**: command to select a corpus. - * **load**: command to load the UNL sentences of a given corpus. - * **extraction**: command to extract terminologies data from UNL-RDF graph. - * **reason**: command to reason on terminology. - * **clean**: command to clean the working directories. + - **select**: command to select a corpus. + - **load**: command to load the UNL sentences of a given corpus. + - **extraction**: command to extract terminologies data from UNL-RDF graph. + - **reason**: command to reason on terminology. + - **clean**: command to clean the working directories. These commands are used with the python script _tenet.py_. diff --git a/config/config-parameters.ttl b/config/config-parameters.ttl new file mode 100644 index 0000000000000000000000000000000000000000..6bef795549fdeb8d9ed62e245331fb25bc6a2b13 --- /dev/null +++ b/config/config-parameters.ttl @@ -0,0 +1,35 @@ +# baseURI: https://unsel.tetras-libre.fr/tenet/config/parameters +# prefix: cprm + +@prefix cprm: <https://unsel.tetras-libre.fr/tenet/config/parameters#> . +@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 xsd: <http://www.w3.org/2001/XMLSchema#> . + +<https://unsel.tetras-libre.fr/tenet/config/parameters> + rdf:type owl:Ontology ; +. +cprm:Config_Parameters + rdf:type owl:Class ; + cprm:baseURI "https://unsel.tetras-libre.fr/tenet/" ; + cprm:netURI "https://unsel.tetras-libre.fr/tenet/net/" ; +. +cprm:baseURI + rdf:type rdf:Property ; + rdfs:domain cprm:Frame ; + rdfs:label "Base URI" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty ; +. +cprm:configParamProperty + rdf:type rdf:Property ; + rdfs:label "Config Parameter Property" ; +. +cprm:netURI + rdf:type rdf:Property ; + rdfs:domain cprm:Frame ; + rdfs:label "Net URI" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf cprm:configParamProperty ; +. diff --git a/config/semnet.ttl b/config/semantic-net.ttl similarity index 64% rename from config/semnet.ttl rename to config/semantic-net.ttl index 6851c36a0fad6512fbd4e1e8c3b002f29cb40ff2..a785fa3d98cbae1f49ded71f19045b75672ab3db 100644 --- a/config/semnet.ttl +++ b/config/semantic-net.ttl @@ -1,29 +1,29 @@ -# baseURI: https://unsel.tenet.fr/semnet +# baseURI: https://unsel.tetras-libre.fr/tenet/semantic-net # prefix: net -@prefix net: <https://unsel.tenet.fr/semnet#> . +@prefix net: <https://unsel.tetras-libre.fr/tenet/semantic-net#> . @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 xsd: <http://www.w3.org/2001/XMLSchema#> . -<https://unsel.tenet.fr/semnet> +<https://unsel.tetras-libre.fr/tenet/semantic-net> rdf:type owl:Ontology ; . net:Instance rdf:type owl:Class ; rdfs:label "Semantic Net" ; - rdfs:subClassOf owl:Thing ; + rdfs:subClassOf net:Structure ; . -net:Type +net:Structure rdf:type owl:Class ; - rdfs:label "Semantic Net Type" ; - rdfs:subClassOf owl:Thing ; + rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." ; + rdfs:label "Semantic Net Structure" ; . -net:agent +net:Type rdf:type owl:Class ; - rdfs:label "agent "@fr ; - rdfs:subClassOf net:Type ; + rdfs:label "Semantic Net Type" ; + rdfs:subClassOf net:Structure ; . net:class rdf:type owl:Class ; @@ -57,6 +57,16 @@ net:concept rdfs:label "concept "@fr ; rdfs:subPropertyOf net:value ; . +net:entity + rdf:type owl:Class ; + rdfs:label "entity" ; + rdfs:subClassOf net:Type ; +. +net:entityClass + rdf:type rdf:Property ; + rdfs:label "entity class" ; + rdfs:subPropertyOf net:value ; +. net:mod_list rdf:type owl:Class ; rdfs:label "List of modifiers" ; @@ -65,12 +75,19 @@ net:mod_list net:node rdf:type rdf:Property ; rdfs:label "node "@fr ; + rdfs:subPropertyOf net:property ; +. +net:property + rdf:type rdf:Property ; + rdfs:label "netProperty" ; . net:type rdf:type rdf:Property ; rdfs:label "type "@fr ; + rdfs:subPropertyOf net:property ; . net:value rdf:type rdf:Property ; rdfs:label "valuations"@fr ; + rdfs:subPropertyOf net:property ; . diff --git a/frame/ontology-parameters.ttl b/frame/ontology-parameters.ttl new file mode 100644 index 0000000000000000000000000000000000000000..8b752cb8475424b55d7ff609c9c8780138023bdd --- /dev/null +++ b/frame/ontology-parameters.ttl @@ -0,0 +1,64 @@ +# baseURI: https://unsel.tetras-libre.fr/tenet/frame/parameters +# prefix: fprm + +@prefix fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#> . +@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 xsd: <http://www.w3.org/2001/XMLSchema#> . + +<https://unsel.tetras-libre.fr/tenet/frame/parameters> + rdf:type owl:Ontology ; +. +fprm:Frame_Parameters + rdf:type owl:Class ; + rdfs:comment "Parameters related to frame ontologies used in transduction queries." ; + rdfs:label "Frame Parameters" ; +. +fprm:Sys_Entity + rdf:type owl:Class ; + rdfs:comment "Parameters related to Entity (System Ontology)." ; + rdfs:label "Entity Parameters (System Ontology)" ; + rdfs:subClassOf fprm:System_Ontology ; +. +fprm:System_Ontology + rdf:type owl:Class ; + rdfs:comment "Parameters related to System Ontology." ; + rdfs:label "System Ontology Parameters" ; + rdfs:subClassOf fprm:Frame_Parameters ; +. +fprm:agent + rdf:type fprm:Sys_Entity ; + rdfs:label "agent" ; + fprm:class "agent" ; + fprm:restriction "icl>administrator" ; + fprm:restriction "icl>person" ; +. +fprm:class + rdf:type rdf:Property ; + rdfs:domain fprm:Frame_Parameters ; + rdfs:label "concept" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf fprm:frameParamProperty ; +. +fprm:composant + rdf:type fprm:Sys_Entity ; + rdfs:label "composant" ; + fprm:class "composant" ; +. +fprm:frameParamProperty + rdf:type rdf:Property ; + rdfs:label "Frame Parameter Property" ; +. +fprm:message + rdf:type fprm:Sys_Entity ; + rdfs:label "message" ; + fprm:class "message" ; +. +fprm:restriction + rdf:type rdf:Property ; + rdfs:domain fprm:Frame_Parameters ; + rdfs:label "restriction" ; + rdfs:range xsd:string ; + rdfs:subPropertyOf fprm:frameParamProperty ; +. diff --git a/frame/requirement-ontology.ttl b/frame/requirement-ontology.ttl index 52b0c59dd430021a57c510b20836fa636ce7aa3f..33ef9303044dbbeffe3349196f5080eaa3c377a5 100644 --- a/frame/requirement-ontology.ttl +++ b/frame/requirement-ontology.ttl @@ -1,72 +1,78 @@ -# baseURI: https://unsel.tetras-libre.fr/rdf/requirement-ontology -# prefix: requirement-ontology +# baseURI: https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology +# prefix: req -@prefix CCTP-SRSA-IP-20210625: <http://rdf-unl.org/CCTP-SRSA-IP-20210625#> . @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 requirement-ontology: <https://unsel.tetras-libre.fr/rdf/requirement-ontology#> . +@prefix req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -<https://unsel.tetras-libre.fr/rdf/requirement-ontology> +<https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology> rdf:type owl:Ontology ; - owl:versionInfo "Created with TopBraid Composer" ; . -requirement-ontology:contingent +req:Modality + rdf:type owl:Class ; + rdfs:label "modality"@en ; + rdfs:label "modalité"@fr ; + rdfs:subClassOf req:Structure ; +. +req:Statement_Type + rdf:type owl:Class ; + rdfs:label "Statement type"@en ; + rdfs:label "Type d'énoncé "@fr ; + rdfs:subClassOf req:Structure ; +. +req:Structure + rdf:type owl:Class ; + rdfs:label "Requirement Ontology Structure" ; +. +req:contingent rdf:type owl:Class ; rdfs:comment "if it is not necessarily false and not necessarily true (i.e. possible but not necessarily true)" ; rdfs:label "contingent "@fr ; rdfs:label "contingent"@en ; - rdfs:subClassOf requirement-ontology:modality ; + rdfs:subClassOf req:Modality ; . -requirement-ontology:impossible +req:impossible rdf:type owl:Class ; rdfs:comment "if it is not possibly true (i.e. false and necessarily false)" ; rdfs:label "impossible "@fr ; rdfs:label "impossible"@en ; - rdfs:subClassOf requirement-ontology:modality ; + rdfs:subClassOf req:Modality ; . -requirement-ontology:modality - rdf:type owl:Class ; - rdfs:label "modality"@en ; - rdfs:label "modalité"@fr ; - rdfs:subClassOf owl:Thing ; -. -requirement-ontology:necessary +req:necessary rdf:type owl:Class ; rdfs:comment "if it is not possibly false (i.e. true and necessarily true)" ; rdfs:label "necessary"@en ; rdfs:label "nécessaire "@fr ; - rdfs:subClassOf requirement-ontology:modality ; + rdfs:subClassOf req:Modality ; . -requirement-ontology:possible +req:possible rdf:type owl:Class ; rdfs:comment "if it is not necessarily false (regardless of whether it is actually true or actually false)" ; rdfs:label "possible "@fr ; rdfs:label "possible"@en ; - rdfs:subClassOf requirement-ontology:modality ; + rdfs:subClassOf req:Modality ; +. +req:property + rdf:type rdf:Property ; + rdfs:label "Property" ; . -requirement-ontology:requirement +req:requirement rdf:type owl:Class ; rdfs:label "exigence"@fr ; rdfs:label "requirement"@en ; - rdfs:subClassOf requirement-ontology:statement_type ; -. -requirement-ontology:statement_type - rdf:type owl:Class ; - rdfs:label "Statement type"@en ; - rdfs:label "Type d'énoncé "@fr ; - rdfs:subClassOf owl:Thing ; + rdfs:subClassOf req:Statement_Type ; . -requirement-ontology:terminology +req:terminology rdf:type owl:Class ; rdfs:label "terminologie "@fr ; rdfs:label "terminology"@en ; - rdfs:subClassOf requirement-ontology:statement_type ; + rdfs:subClassOf req:Statement_Type ; . -requirement-ontology:unknown +req:unknown rdf:type owl:Class ; rdfs:label "inconnu"@fr ; rdfs:label "unknown "@en ; - rdfs:subClassOf requirement-ontology:modality ; + rdfs:subClassOf req:Modality ; . diff --git a/frame/system-ontology.ttl b/frame/system-ontology.ttl index ee6e79ea3e96dc66fb60e5cd65c87b674cf2f45f..5a2f1e94943ec99dbe4b984302607e7589b3edb8 100644 --- a/frame/system-ontology.ttl +++ b/frame/system-ontology.ttl @@ -1,56 +1,62 @@ -# baseURI: https://unsel.tetras-libre.fr/rdf/system-ontology -# prefix: system-ontology +# baseURI: https://unsel.tetras-libre.fr/tenet/frame/system-ontology +# prefix: sys -@prefix : <https://unsel.tetras-libre.fr/rdf/system-ontology#> . @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 system-ontology: <https://unsel.tetras-libre.fr/rdf/system-ontology#> . +@prefix sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -<https://unsel.tetras-libre.fr/rdf/system-ontology> +<https://unsel.tetras-libre.fr/tenet/frame/system-ontology> rdf:type owl:Ontology ; - owl:versionInfo "Created with TopBraid Composer" ; . -system-ontology:action +sys:Action rdf:type owl:Class ; rdfs:label "action "@en ; rdfs:label "action "@fr ; - rdfs:subClassOf system-ontology:property ; + rdfs:subClassOf sys:Property ; . -system-ontology:agent +sys:Agent rdf:type owl:Class ; rdfs:label "agent"@en ; rdfs:label "agent"@fr ; - rdfs:subClassOf system-ontology:entity ; + rdfs:subClassOf sys:Entity ; . -system-ontology:attribute +sys:Attribute rdf:type owl:Class ; rdfs:label "attribut"@fr ; rdfs:label "attribute "@en ; - rdfs:subClassOf system-ontology:property ; + rdfs:subClassOf sys:Property ; . -system-ontology:component +sys:Component rdf:type owl:Class ; rdfs:label "component"@en ; rdfs:label "composant"@fr ; - rdfs:subClassOf system-ontology:entity ; + rdfs:subClassOf sys:Entity ; . -system-ontology:entity +sys:Entity rdf:type owl:Class ; rdfs:label "entity"@en ; rdfs:label "entité"@fr ; - rdfs:subClassOf owl:Thing ; + rdfs:subClassOf sys:Structure ; . -system-ontology:message +sys:Message rdf:type owl:Class ; rdfs:label "message"@en ; rdfs:label "message"@fr ; - rdfs:subClassOf system-ontology:entity ; + rdfs:subClassOf sys:Entity ; . -system-ontology:property +sys:Property rdf:type owl:Class ; rdfs:label "property"@en ; rdfs:label "propriété"@fr ; - rdfs:subClassOf owl:Thing ; + rdfs:subClassOf sys:Structure ; +. +sys:Structure + rdf:type owl:Class ; + rdfs:label "System Ontology Structure" ; +. +sys:property + rdf:type rdf:Property ; + rdfs:label "System Property" ; .