Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
tenet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Tetras MARS
tenet
Commits
c6036fee
Commit
c6036fee
authored
Nov 15, 2021
by
Aurélien Lamercerie
Browse files
Options
Downloads
Patches
Plain Diff
CTS Update: use of computed URIs for the generation of disjunctive/conjunctive classes
parent
78937c74
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
config/transduction-schemes.ttl
+68
-91
68 additions, 91 deletions
config/transduction-schemes.ttl
prepare_work_data.py
+1
-1
1 addition, 1 deletion
prepare_work_data.py
with
69 additions
and
92 deletions
config/transduction-schemes.ttl
+
68
−
91
View file @
c6036fee
...
@@ -30,7 +30,7 @@ cts:abstraction_extraction
...
@@ -30,7 +30,7 @@ cts:abstraction_extraction
rdfs:
label
"abstraction extension"
;
rdfs:
label
"abstraction extension"
;
rdfs:
subClassOf
cts:
net_extension
;
rdfs:
subClassOf
cts:
net_extension
;
.
.
cts:
add-conjunctive-
entity-
classes
cts:
add-conjunctive-classes
-from-list-net
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
rdfs:
label
"add-conjunctive-entity-classes"
;
rdfs:
label
"add-conjunctive-entity-classes"
;
sh:
construct
"""PREFIX owl: <http://www.w3.org/2002/07/owl#>
sh:
construct
"""PREFIX owl: <http://www.w3.org/2002/07/owl#>
...
@@ -44,63 +44,51 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
...
@@ -44,63 +44,51 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add
D
isjunctive
Entity
classes in
System
Ontology
# -- Add
d
isjunctive classes in Ontology
CONSTRUCT {
CONSTRUCT {
# Classification
# Classification
?
subEntity23
Uri rdfs:subClassOf ?
mainEntity
Uri.
?
newClass
Uri rdfs:subClassOf ?
parent
Uri.
?
subEntity23
Uri rdfs:label ?
subEntity23
.
?
newClass
Uri rdfs:label ?
newClassLabel
.
?
subEntity23
Uri sys:from_structure ?req.
?
newClass
Uri sys:from_structure ?req.
?
subEntity23
Uri
?
newClass
Uri
owl:equivalentClass [ a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:intersectionOf ( ?
subEntity2Uri ?subEntity3
Uri ) ] .
owl:intersectionOf ( ?
item1Uri ?item2
Uri ) ] .
# Instantiation (extension)
# Instantiation (extension)
?
mainI
nstanceUri rdf:type ?
subEntity23
Uri.
?
i
nstanceUri rdf:type ?
newClass
Uri.
}
}
WHERE {
WHERE {
# net1: Composite List
# net1: Composite List
?net1 a net:Instance.
?net1 a net:Instance.
?net1 net:type net:list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:listOf net:composite.
# -- old --- ?net1 net:type net:entity_class_list.
?net1 net:has_structure ?req.
?net1 net:has_structure ?req.
# -- old --- ?net1 net:entityClass ?entityClass.
?net1 net:has_node ?uw1, ?uw2.
?net1 net:has_node ?uw2, ?uw3.
?net1 net:has_parent ?parentObject.
?net1 net:has_parent ?parentObject.
?parentObject net:has_
parent_
class ?parent
Class. # -- old --- ?entityClass
?parentObject net:has_class
_uri
?parent
Uri.
?parentObject net:has_
concept ?mainEntity.
?parentObject net:has_
instance_uri ?instanceUri.
?
net1 net:has_item ?subEntityObject2, ?subEntityObject3.
?
parentObject net:has_concept ?parentConcept.
?
subEntityObject2 net:concept ?subEntity
2.
?
net1 net:has_item ?itemObject1, ?itemObject
2.
?
subEntity
Object
2
net:has_
node ?uw2
.
?
item
Object
1
net:has_
class_uri ?item1Uri
.
?
subEntity
Object
3
net:has_
concept ?subEntity3
.
?
item
Object
1
net:has_
node ?uw1
.
?
subEntity
Object
3
net:has_
node ?uw3
.
?
item
Object
2
net:has_
class_uri ?item2Uri
.
?
subEntity
Object
3
net:has_
instance ?mainInstance.
?
item
Object
2
net:has_
node ?uw2.
# extension: disjunction of UW
# extension: disjunction of UW
?uw
2
unl:and ?uw
3
.
?uw
1
unl:and ?uw
2
.
# Label(s) / URI (for classes)
# Label(s) / URI (for classes)
?uw1 rdfs:label ?uw1Label.
?uw2 rdfs:label ?uw2Label.
?uw2 rdfs:label ?uw2Label.
?uw3 rdfs:label
?uw
3
Label
.
BIND (strbefore(
?uw
1
Label
, '(') AS ?concept1)
BIND (strbefore(?uw2Label, '(') AS ?concept2)
BIND (strbefore(?uw2Label, '(') AS ?concept2)
BIND (strbefore(?uw3Label, '(') AS ?concept3)
BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept)
BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23)
BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel).
BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23).
# URI (for classes)
# URI (for classes)
sys:Structure sys:has_frame_uri ?frameURI.
sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?parentClass) AS ?s1). # -- old --- BIND (concat( ?frameURI, ?parentClass) AS ?s1).
BIND (concat(?frameURI, ?newClassLabel) AS ?s5).
BIND (concat(?frameURI, ?mainEntity) AS ?s2). # -- old --- BIND (concat(?s1, '#', ?mainEntity) AS ?s2).
BIND (uri(?s5) AS ?newClassUri).
BIND (concat(?frameURI, ?subEntity2) AS ?s3). # -- old --- BIND (concat(?s1, '#', ?subEntity2) AS ?s3).
BIND (concat(?frameURI, ?subEntity3) AS ?s4). # -- old --- BIND (concat(?s1, '#', ?subEntity3) AS ?s4).
BIND (concat(?frameURI, ?subEntity23) AS ?s5). # -- old --- BIND (concat(?s1, '#', ?subEntity23) AS ?s5).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntity2Uri).
BIND (uri(?s4) AS ?subEntity3Uri).
BIND (uri(?s5) AS ?subEntity23Uri).
# URI (for instance)
BIND (concat(?s1, '#', ?mainInstance) AS ?s6).
BIND (uri(?s6) AS ?mainInstanceUri).
}"""
;
}"""
;
sh:
order
3.
4
;
sh:
order
3.
2
3
;
.
.
cts:
add-disjunctive-
entity-
classes
cts:
add-disjunctive-classes
-from-list-net
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
rdfs:
label
"add-disjunctive-entity-classes"
;
rdfs:
label
"add-disjunctive-entity-classes"
;
sh:
construct
"""PREFIX owl: <http://www.w3.org/2002/07/owl#>
sh:
construct
"""PREFIX owl: <http://www.w3.org/2002/07/owl#>
...
@@ -114,61 +102,49 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
...
@@ -114,61 +102,49 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Add
D
isjunctive
Entity
classes in
System
Ontology
# -- Add
d
isjunctive classes in Ontology
CONSTRUCT {
CONSTRUCT {
# Classification
# Classification
?
subEntity23
Uri rdfs:subClassOf ?
mainEntity
Uri.
?
newClass
Uri rdfs:subClassOf ?
parent
Uri.
?
subEntity23
Uri rdfs:label ?
subEntity23
.
?
newClass
Uri rdfs:label ?
newClassLabel
.
?
subEntity23
Uri sys:from_structure ?req.
?
newClass
Uri sys:from_structure ?req.
?
subEntity23
Uri
?
newClass
Uri
owl:equivalentClass [ a owl:Class ;
owl:equivalentClass [ a owl:Class ;
owl:unionOf ( ?
subEntity2Uri ?subEntity3
Uri ) ] .
owl:unionOf ( ?
item1Uri ?item2
Uri ) ] .
# Instantiation (extension)
# Instantiation (extension)
?
mainI
nstanceUri rdf:type ?
subEntity23
Uri.
?
i
nstanceUri rdf:type ?
newClass
Uri.
}
}
WHERE {
WHERE {
# net1: Composite List
# net1: Composite List
?net1 a net:Instance.
?net1 a net:Instance.
?net1 net:type net:list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:listOf net:composite.
# -- old --- ?net1 net:type net:entity_class_list.
?net1 net:has_structure ?req.
?net1 net:has_structure ?req.
# -- old --- ?net1 net:entityClass ?entityClass.
?net1 net:has_node ?uw1, ?uw2.
?net1 net:has_node ?uw2, ?uw3.
?net1 net:has_parent ?parentObject.
?net1 net:has_parent ?parentObject.
?parentObject net:has_
parent_
class ?parent
Class. # -- old --- ?entityClass
?parentObject net:has_class
_uri
?parent
Uri.
?parentObject net:has_
concept ?mainEntity.
?parentObject net:has_
instance_uri ?instanceUri.
?
net1 net:has_item ?subEntityObject2, ?subEntityObject3.
?
parentObject net:has_concept ?parentConcept.
?
subEntityObject2 net:has_concept ?subEntity
2.
?
net1 net:has_item ?itemObject1, ?itemObject
2.
?
subEntity
Object
2
net:has_
node ?uw2
.
?
item
Object
1
net:has_
class_uri ?item1Uri
.
?
subEntity
Object
3
net:has_
concept ?subEntity3
.
?
item
Object
1
net:has_
node ?uw1
.
?
subEntity
Object
3
net:has_
node ?uw3.
?
item
Object
2
net:has_
class_uri ?item2Uri.
?
subEntity
Object
3
net:has_
instance ?mainInstance.
?
item
Object
2
net:has_
node ?uw2.
# extension: disjunction of UW
# extension: disjunction of UW
?uw
2
unl:or ?uw
3
.
?uw
1
unl:or ?uw
2
.
# Label(s) / URI (for classes)
# Label(s) / URI (for classes)
?uw1 rdfs:label ?uw1Label.
?uw2 rdfs:label ?uw2Label.
?uw2 rdfs:label ?uw2Label.
?uw3 rdfs:label
?uw
3
Label
.
BIND (strbefore(
?uw
1
Label
, '(') AS ?concept1)
BIND (strbefore(?uw2Label, '(') AS ?concept2)
BIND (strbefore(?uw2Label, '(') AS ?concept2)
BIND (strbefore(?uw3Label, '(') AS ?concept3)
BIND (concat(?concept1, '-or-', ?concept2) AS ?disjunctiveConcept)
BIND (concat(?concept2, '-or-', ?concept3) AS ?concept23)
BIND (concat(?disjunctiveConcept, '_', ?parentConcept) AS ?newClassLabel).
BIND (concat(?concept23, '_', ?mainEntity) AS ?subEntity23).
# URI (for classes)
# URI (for classes)
sys:Structure sys:has_frame_uri ?frameURI.
sys:Structure sys:has_frame_uri ?frameURI.
BIND (concat( ?frameURI, ?parentClass) AS ?s1). # -- old --- BIND (concat( ?frameURI, ?parentClass) AS ?s1).
BIND (concat(?frameURI, ?newClassLabel) AS ?s5).
BIND (concat(?frameURI, ?mainEntity) AS ?s2). # -- old --- BIND (concat(?s1, '#', ?mainEntity) AS ?s2).
BIND (uri(?s5) AS ?newClassUri).
BIND (concat(?frameURI, ?subEntity2) AS ?s3). # -- old --- BIND (concat(?s1, '#', ?subEntity2) AS ?s3).
BIND (concat(?frameURI, ?subEntity3) AS ?s4). # -- old --- BIND (concat(?s1, '#', ?subEntity3) AS ?s4).
BIND (concat(?frameURI, ?subEntity23) AS ?s5). # -- old --- BIND (concat(?s1, '#', ?subEntity23) AS ?s5).
BIND (uri(?s2) AS ?mainEntityUri).
BIND (uri(?s3) AS ?subEntity2Uri).
BIND (uri(?s4) AS ?subEntity3Uri).
BIND (uri(?s5) AS ?subEntity23Uri).
# URI (for instance)
BIND (concat(?s1, '#', ?mainInstance) AS ?s6).
BIND (uri(?s6) AS ?mainInstanceUri).
}"""
;
}"""
;
sh:
order
3.
4
;
sh:
order
3.
2
3
;
.
.
cts:
add-event
cts:
add-event
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
...
@@ -317,8 +293,8 @@ cts:batch_execution
...
@@ -317,8 +293,8 @@ cts:batch_execution
rdf:
type
sh:
NodeShape
;
rdf:
type
sh:
NodeShape
;
rdfs:
label
"batch execution"
;
rdfs:
label
"batch execution"
;
rdfs:
subClassOf
cts:
Transduction_Schemes
;
rdfs:
subClassOf
cts:
Transduction_Schemes
;
sh:
rule
cts:
add-conjunctive-
entity-
classes
;
sh:
rule
cts:
add-conjunctive-classes
-from-list-net
;
sh:
rule
cts:
add-disjunctive-
entity-
classes
;
sh:
rule
cts:
add-disjunctive-classes
-from-list-net
;
sh:
rule
cts:
add-event
;
sh:
rule
cts:
add-event
;
sh:
rule
cts:
add-state-property
;
sh:
rule
cts:
add-state-property
;
sh:
rule
cts:
bypass-reification
;
sh:
rule
cts:
bypass-reification
;
...
@@ -387,25 +363,26 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
...
@@ -387,25 +363,26 @@ PREFIX req: <https://unsel.tetras-libre.fr/tenet/frame/requirement-ontology#>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX sys: <https://unsel.tetras-libre.fr/tenet/frame/system-ontology/>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
PREFIX fprm: <https://unsel.tetras-libre.fr/tenet/frame/parameters#>
# -- Complement
Ent
it
y
classes with feature relation
# -- Complement
compos
it
e
classes with feature relation
CONSTRUCT {
CONSTRUCT {
# Complement with feature relation
# Complement with feature relation
?
subEntity
Uri sys:has_feature ?featureUri.
?
compositeClass
Uri sys:has_feature ?featureUri.
}
}
WHERE {
WHERE {
# net1:
entity class l
ist
# net1:
Composite L
ist
?net1 a net:Instance.
?net1 a net:Instance.
?net1 net:type net:list.
?net1 net:type net:list.
?net1 net:listOf net:composite.
?net1 net:listOf net:composite.
# -- old --- ?net1 net:has_parent ?parentObject.
# -- Item
# -- old --- ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass
?net1 net:has_item ?itemObject.
?net1 net:has_item ?itemObject.
?itemObject net:has_class_uri ?subEntityUri.
?itemObject net:has_class_uri ?compositeClassUri.
# -- old --- ?itemObject net:has_concept ?subEntity.
?itemObject net:has_feature ?featureObject.
?itemObject net:has_feature ?featureObject.
#
object: f
eature
#
-- F
eature
?featureObject a net:Object.
?featureObject a net:Object.
?featureObject net:has_class_uri ?featureUri.
?featureObject net:has_class_uri ?featureUri.
# -- old --- ?itemObject net:has_concept ?subEntity.
# -- old --- ?net1 net:has_parent ?parentObject.
# -- old --- ?parentObject net:has_parent_class ?parentClass. # -- old --- ?entityClass
# -- old --- ?featureObject net:objectType sys:Feature.
# -- old --- ?featureObject net:objectType sys:Feature.
# -- old --- ?featureObject net:has_node ?featureUW.
# -- old --- ?featureObject net:has_node ?featureUW.
# -- old --- ?featureObject net:has_parent_class ?featureClass.
# -- old --- ?featureObject net:has_parent_class ?featureClass.
...
@@ -420,7 +397,7 @@ WHERE {
...
@@ -420,7 +397,7 @@ WHERE {
# -- old --- BIND (concat(?frameURI, ?featureConcept) AS ?f2).
# -- old --- BIND (concat(?frameURI, ?featureConcept) AS ?f2).
# -- old --- BIND (uri(?f2) AS ?featureUri).
# -- old --- BIND (uri(?f2) AS ?featureUri).
}"""
;
}"""
;
sh:
order
3.
3
;
sh:
order
3.
2
2
;
.
.
cts:
compose-agt-verb-obj-as-simple-event
cts:
compose-agt-verb-obj-as-simple-event
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
...
@@ -807,7 +784,7 @@ WHERE {
...
@@ -807,7 +784,7 @@ WHERE {
BIND (concat(?o1, '#', ?verbConcept) AS ?o2).
BIND (concat(?o1, '#', ?verbConcept) AS ?o2).
BIND (uri( ?o2) AS ?newEventObjectPropertyUri).
BIND (uri( ?o2) AS ?newEventObjectPropertyUri).
}"""
;
}"""
;
sh:
order
3.
5
;
sh:
order
3.
3
;
.
.
cts:
compute-domain-range-of-state-property-object-properties
cts:
compute-domain-range-of-state-property-object-properties
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
...
@@ -865,7 +842,7 @@ WHERE {
...
@@ -865,7 +842,7 @@ WHERE {
BIND (concat(?o1, '#', ?verbConcept) AS ?o2).
BIND (concat(?o1, '#', ?verbConcept) AS ?o2).
BIND (uri( ?o2) AS ?objectPropertyUri).
BIND (uri( ?o2) AS ?objectPropertyUri).
}"""
;
}"""
;
sh:
order
3.
5
;
sh:
order
3.
3
;
.
.
cts:
compute-instance-uri-of-net-object
cts:
compute-instance-uri-of-net-object
rdf:
type
sh:
SPARQLRule
;
rdf:
type
sh:
SPARQLRule
;
...
@@ -1215,9 +1192,9 @@ WHERE {
...
@@ -1215,9 +1192,9 @@ WHERE {
?net1 net:has_structure ?req.
?net1 net:has_structure ?req.
?net1 net:has_parent ?parentObject.
?net1 net:has_parent ?parentObject.
?parentObject net:has_class_uri ?parentUri.
?parentObject net:has_class_uri ?parentUri.
?parentObject net:has_instance_uri ?instanceUri.
?net1 net:has_item ?compositeObject.
?net1 net:has_item ?compositeObject.
?compositeObject net:has_class_uri ?newClassUri.
?compositeObject net:has_class_uri ?newClassUri.
?compositeObject net:has_instance_uri ?instanceUri.
?compositeObject net:has_concept ?compositeConcept.
?compositeObject net:has_concept ?compositeConcept.
# -- old --- ?parentObject net:has_mother_class ?motherClass.
# -- old --- ?parentObject net:has_mother_class ?motherClass.
# -- old --- ?parentObject net:has_parent_class ?parentClass.
# -- old --- ?parentObject net:has_parent_class ?parentClass.
...
@@ -1235,15 +1212,15 @@ WHERE {
...
@@ -1235,15 +1212,15 @@ WHERE {
# -- old --- BIND (concat(?s1, '#', ?compositeInstance) AS ?s4).
# -- old --- BIND (concat(?s1, '#', ?compositeInstance) AS ?s4).
# -- old --- BIND (uri(?s4) AS ?instanceUri).
# -- old --- BIND (uri(?s4) AS ?instanceUri).
}"""
;
}"""
;
sh:
order
3.2
;
sh:
order
3.2
1
;
.
.
cts:
generation
cts:
generation
rdf:
type
owl:
Class
;
rdf:
type
owl:
Class
;
rdf:
type
sh:
NodeShape
;
rdf:
type
sh:
NodeShape
;
rdfs:
label
"generation"
;
rdfs:
label
"generation"
;
rdfs:
subClassOf
cts:
Transduction_Schemes
;
rdfs:
subClassOf
cts:
Transduction_Schemes
;
sh:
rule
cts:
add-conjunctive-
entity-
classes
;
sh:
rule
cts:
add-conjunctive-classes
-from-list-net
;
sh:
rule
cts:
add-disjunctive-
entity-
classes
;
sh:
rule
cts:
add-disjunctive-classes
-from-list-net
;
sh:
rule
cts:
add-event
;
sh:
rule
cts:
add-event
;
sh:
rule
cts:
add-state-property
;
sh:
rule
cts:
add-state-property
;
sh:
rule
cts:
complement-composite-class
;
sh:
rule
cts:
complement-composite-class
;
...
...
This diff is collapsed.
Click to expand it.
prepare_work_data.py
+
1
−
1
View file @
c6036fee
...
@@ -206,7 +206,7 @@ if __name__ == '__main__':
...
@@ -206,7 +206,7 @@ if __name__ == '__main__':
#target_ref = "environment"
#target_ref = "environment"
#run(req_100, 'R100b', target_ref)
#run(req_100, 'R100b', target_ref)
#run(req_200, 'R200b', target_ref)
#run(req_200, 'R200b', target_ref)
run
(
req_300
,
'
R300
b
'
,
target_ref
)
run
(
req_300
,
'
R300
c
'
,
target_ref
)
run
(
corpus_40
,
'
Corpus-CCTP-40a
'
,
target_ref
)
run
(
corpus_40
,
'
Corpus-CCTP-40a
'
,
target_ref
)
#run(corpus_ERTMS, 'Corpus-ERTMS', target_ref)
#run(corpus_ERTMS, 'Corpus-ERTMS', target_ref)
#run(corpus_PEV, 'Corpus-PEV', target_ref)
#run(corpus_PEV, 'Corpus-PEV', target_ref)
...
...
This diff is collapsed.
Click to expand it.
Aurélien Lamercerie
@alam
mentioned in issue
#9 (closed)
·
Nov 15, 2021
mentioned in issue
#9 (closed)
mentioned in issue #9
Toggle commit list
Aurélien Lamercerie
@alam
mentioned in issue
#8 (closed)
·
Nov 16, 2021
mentioned in issue
#8 (closed)
mentioned in issue #8
Toggle commit list
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment