@igea/oac_backend 1.0.103 → 1.0.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igea/oac_backend",
3
- "version": "1.0.103",
3
+ "version": "1.0.104",
4
4
  "description": "Backend service for the OAC project",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -19,94 +19,92 @@
19
19
  @prefix datasources: <http://data.sparna.fr/ontologies/sparnatural-config-datasources#> .
20
20
 
21
21
 
22
- this:E7Activity01Shape_label # LABEL INDAGINE
23
- sh:path rdfs:label ;
22
+ this:E7ActivityIndagineLabel # LABEL INDAGINE
23
+ sh:path rdfs:label ;
24
24
  #sh:order "1" ;
25
- sh:name "Label indagine" ;
26
- sh:maxCount 1 ;
25
+ sh:name "Label indagine" ;
26
+ #sh:maxCount 1 ;
27
27
  sh:nodeKind sh:Literal ;
28
28
  sh:datatype rdf:string ;
29
29
  dash:searchWidget core:NonSelectableProperty ; # ???
30
- #dash:searchWidget core:AutocompleteProperty ;
31
30
  dash:propertyRole dash:LabelRole ;
32
31
  core:enableOptional "false"^^xsd:boolean ;
33
32
  core:enableNegation "false"^^xsd:boolean .
34
33
 
35
- this:E7Activity01Shape # INDAGINE
36
- a sh:NodeShape, rdfs:Class ;
34
+ this:E7ActivityIndagine # INDAGINE
35
+ a sh:NodeShape ;
37
36
  sh:targetClass crm:E7_Activity ;
38
37
  rdfs:label "Indagine" ;
39
- #sh:description "Indagine" ;
40
38
  sh:property [
41
39
  sh:path crm:P48_has_preferred_identifier ;
42
- sh:node this:E42Identifier01Shape ;
40
+ sh:node this:E42IdentifierIndagine ;
43
41
  sh:name "ha identificativo" ;
44
- sh:maxCount 1 ;
42
+ #sh:maxCount 1 ;
45
43
  ] ;
46
44
  sh:property [
47
45
  sh:path crm:P17_was_motivated_by ;
48
- sh:node this:I12AdoptedBeliefShape ;
46
+ sh:node this:I12AdoptedBelief ;
49
47
  sh:name "è motivato da" ;
50
- sh:maxCount 1 ;
48
+ #sh:maxCount 1 ;
51
49
  ] ;
52
50
  sh:property [
53
51
  sh:path crm:P14_carried_out_by ;
54
- sh:node this:E39Actor01Shape ;
52
+ sh:node this:E39ActorIndagine ;
55
53
  sh:name "eseguito da" ;
56
- sh:maxCount 1 ;
54
+ #sh:maxCount 1 ;
57
55
  ] ;
58
56
  sh:property [
59
57
  sh:path crm:P16_used_specific_object ;
60
- sh:node this:S13Sample01Shape ;
58
+ sh:node this:S13SampleCampione ;
61
59
  sh:name "ha usato un oggetto specifico" ;
62
- sh:maxCount 1 ;
60
+ #sh:maxCount 1 ;
63
61
  ] ;
64
- sh:property this:E7Activity01Shape_label .
62
+ sh:property this:E7ActivityIndagineLabel .
65
63
 
66
- this:E39Actor01Shape # ATTORI
67
- a sh:NodeShape, rdfs:Class ;
64
+ this:E39ActorIndagine # ATTORI
65
+ a sh:NodeShape ;
68
66
  sh:targetClass crm:E39_Actor ;
69
67
  rdfs:label "Attori coinvolti" ;
70
68
  sh:deactivated "true"^^xsd:boolean ;
71
69
  sh:property [
72
70
  sh:path crm:P2_has_type ;
73
- sh:node this:E55Type03Shape ;
71
+ sh:node this:E55TypeAttori ;
74
72
  sh:name "ha tipo" ;
75
- sh:maxCount 1 ;
73
+ #sh:maxCount 1 ;
76
74
  ] .
77
75
 
78
- this:S13Sample01Shape # CAMPIONE
79
- a sh:NodeShape, rdfs:Class ;
76
+ this:S13SampleCampione # CAMPIONE
77
+ a sh:NodeShape ;
80
78
  sh:targetClass j.0:S13_Sample ;
81
79
  rdfs:label "Campione" ;
82
80
  sh:deactivated "true"^^xsd:boolean ;
83
81
  sh:property [
84
82
  sh:path crm:P2_has_type ;
85
- sh:node this:E55Type05Shape ;
83
+ sh:node this:E55TypeCampione ;
86
84
  sh:name "ha tipo" ;
87
- sh:maxCount 1 ;
85
+ #sh:maxCount 1 ;
88
86
  ] ;
89
87
  sh:property [
90
88
  sh:path basecpm:PC43i_uses ;
91
- sh:node this:CP2ArchitectureWorkShape ;
89
+ sh:node this:CP2ArchitectureWork ;
92
90
  sh:name "utilizza" ;
93
- sh:maxCount 1 ;
91
+ #sh:maxCount 1 ;
94
92
  ] .
95
93
 
96
- this:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
97
- a sh:NodeShape, rdfs:Class ;
94
+ this:CP2ArchitectureWork # BENE DI RIFERIMENTO
95
+ a sh:NodeShape ;
98
96
  sh:targetClass basecpm:CP2_Architecture_Work ;
99
97
  rdfs:label "Bene di riferimento" ;
100
98
  sh:deactivated "true"^^xsd:boolean ;
101
99
  sh:property [
102
100
  sh:path crm:P1_is_identified_by ;
103
- sh:node this:E41Appellation02Shape ;
101
+ sh:node this:E41AppellationBene ;
104
102
  sh:name "è identificato da" ;
105
- sh:maxCount 1 ;
103
+ #sh:maxCount 1 ;
106
104
  ] .
107
105
 
108
- this:E42Identifier01Shape # ID INDAGINE
109
- a sh:NodeShape, rdfs:Class ;
106
+ this:E42IdentifierIndagine # ID INDAGINE
107
+ a sh:NodeShape ;
110
108
  sh:targetClass crm:E42_Identifier ;
111
109
  rdfs:label "ID Indagine" ;
112
110
  sh:deactivated "true"^^xsd:boolean ;
@@ -116,25 +114,25 @@ this:E42Identifier01Shape # ID INDAGINE
116
114
  sh:datatype xsd:string ;
117
115
  #dash:searchWidget core:AutocompleteProperty;
118
116
  #dash:propertyRole dash:LabelRole;
119
- sh:maxCount 1 ;
117
+ #sh:maxCount 1 ;
120
118
  ] .
121
119
 
122
- this:I12AdoptedBeliefShape # QUESITO DIAGNOSTICO
123
- a sh:NodeShape, rdfs:Class ;
120
+ this:I12AdoptedBelief # QUESITO DIAGNOSTICO
121
+ a sh:NodeShape ;
124
122
  sh:targetClass base:I12_Adopted_Belief ;
125
123
  rdfs:label "Quesito diagnostico" ;
126
124
  sh:deactivated "true"^^xsd:boolean ;
127
125
  sh:property [
128
126
  sh:path crm:P2_has_type ;
129
- sh:node this:E55Type02Shape ;
127
+ sh:node this:E55TypeQuesito ;
130
128
  sh:name "ha tipo" ;
131
129
  #dash:searchWidget core:AutocompleteProperty;
132
130
  #dash:propertyRole dash:LabelRole;
133
- sh:maxCount 1 ;
131
+ #sh:maxCount 1 ;
134
132
  ] .
135
133
 
136
- this:E41Appellation01Shape # ENTE RICHIEDENTE
137
- a sh:NodeShape, rdfs:Class ;
134
+ this:E41AppellationEnteRichSchedatore # ENTE RICHIEDENTE
135
+ a sh:NodeShape ;
138
136
  sh:targetClass crm:E41_Appellation ;
139
137
  rdfs:label "Ente richiedente - Schedatore" ;
140
138
  sh:deactivated "true"^^xsd:boolean ;
@@ -147,7 +145,7 @@ this:E41Appellation01Shape # ENTE RICHIEDENTE
147
145
  dash:propertyRole dash:LabelRole;
148
146
  core:enableOptional "true"^^xsd:boolean ;
149
147
  core:enableNegation "true"^^xsd:boolean ;
150
- sh:maxCount 1 ;
148
+ #sh:maxCount 1 ;
151
149
  ] ;
152
150
  sh:property [
153
151
  sh:path indagine:schedatore ;
@@ -158,11 +156,11 @@ this:E41Appellation01Shape # ENTE RICHIEDENTE
158
156
  dash:propertyRole dash:LabelRole;
159
157
  core:enableOptional "true"^^xsd:boolean ;
160
158
  core:enableNegation "true"^^xsd:boolean ;
161
- sh:maxCount 1 ;
159
+ #sh:maxCount 1 ;
162
160
  ] .
163
161
 
164
- this:E41Appellation02Shape # DENOMINAZIONE BENE
165
- a sh:NodeShape, rdfs:Class ;
162
+ this:E41AppellationBene # DENOMINAZIONE BENE
163
+ a sh:NodeShape ;
166
164
  sh:targetClass crm:E41_Appellation ;
167
165
  rdfs:label "Denominazione bene" ;
168
166
  sh:deactivated "true"^^xsd:boolean ;
@@ -175,52 +173,85 @@ this:E41Appellation02Shape # DENOMINAZIONE BENE
175
173
  dash:propertyRole dash:LabelRole;
176
174
  core:enableOptional "true"^^xsd:boolean ;
177
175
  core:enableNegation "true"^^xsd:boolean ;
178
- sh:maxCount 1 ;
176
+ #sh:maxCount 1 ;
179
177
  ] .
180
178
 
181
- this:E55Type02Shape # TIPO QUESITO DIAGNOSTICO
182
- a sh:NodeShape, rdfs:Class ;
179
+ this:E55TypeQuesito # TIPO QUESITO DIAGNOSTICO
180
+ a sh:NodeShape ;
183
181
  sh:targetClass crm:E55_Type ;
184
182
  rdfs:label "Tipo quesito diagnostico" ;
185
- #volipi:iconName "fa-solid fa-car" ;
186
183
  sh:deactivated "true"^^xsd:boolean ;
187
184
  sh:property [
188
185
  sh:path indagine:tipo_quesito_diagnostico ;
189
- #sh:class owl:Class ; # vocabolario QUESITO DIAGNOSTICO (8) id="quesito-diagnostico"
190
- #owl:imports <https://raw.githubusercontent.com/tibonto/DFG-Fachsystematik-Ontology/refs/heads/main/dfgfo.ttl>;
191
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/quesito-diagnostico> ;
192
- sh:datatype xsd:string ;
193
186
  sh:name "tipo" ;
194
- #dash:searchWidget core:AutocompleteProperty;
195
- #dash:propertyRole dash:LabelRole;
196
- sh:maxCount 1 ;
187
+ dash:searchWidget core:TreeProperty;
188
+ core:enableOptional "true"^^xsd:boolean;
189
+ core:enableNegation "true"^^xsd:boolean;
190
+ datasources:treeRootsDatasource this:tree_root_quesito_diagnostico ;
191
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
192
+ #sh:maxCount 1 ;
197
193
  ] .
198
194
 
199
- this:E55Type03Shape # TIPOLOGIA ATTORI
200
- a sh:NodeShape, rdfs:Class ;
195
+ this:E55TypeAttori # TIPOLOGIA ATTORI
196
+ a sh:NodeShape ;
201
197
  sh:targetClass crm:E55_Type ;
202
198
  rdfs:label "Tipo attori" ;
203
199
  sh:deactivated "true"^^xsd:boolean ;
204
200
  sh:property [
205
201
  sh:path crm:P1_is_identified_by ;
206
- sh:node this:E41Appellation01Shape ;
202
+ sh:node this:E41AppellationEnteRichSchedatore ;
207
203
  sh:name "è identificato da" ;
208
- sh:maxCount 1 ;
204
+ #sh:maxCount 1 ;
209
205
  ] .
210
206
 
211
- this:E55Type05Shape # TIPO CAMPIONE
212
- a sh:NodeShape, rdfs:Class ;
207
+ this:E55TypeCampione # TIPO CAMPIONE
208
+ a sh:NodeShape ;
213
209
  sh:targetClass crm:E55_Type ;
214
- rdfs:label "Tipo campione" ;
215
- sh:deactivated "true"^^xsd:boolean ;
210
+ rdfs:label "Tipo campione" ;
211
+ sh:deactivated "true"^^xsd:boolean ;
216
212
  sh:property [
217
- sh:path indagine:tipo_campione ;
218
- #sh:class owl:Class ; # vocabolario TIPO CAMPIONE (21) id="tipo-campione
219
- #owl:imports <https://raw.githubusercontent.com/tibonto/DFG-Fachsystematik-Ontology/refs/heads/main/dfgfo.ttl>;
220
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tipo-campione> ;
221
- sh:datatype xsd:string ;
222
- sh:name "tipo" ;
223
- #dash:searchWidget core:AutocompleteProperty;
224
- #dash:propertyRole dash:LabelRole;
225
- sh:maxCount 1 ;
213
+ sh:path indagine:tipo_campione ;
214
+ sh:name "tipo" ;
215
+ dash:searchWidget core:TreeProperty;
216
+ core:enableOptional "true"^^xsd:boolean;
217
+ core:enableNegation "true"^^xsd:boolean;
218
+ datasources:treeRootsDatasource this:tree_root_tipo_campione ;
219
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
220
+ #sh:maxCount 1 ;
226
221
  ] .
222
+
223
+
224
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TIPO CAMPIONE" (21)
225
+ this:tree_root_tipo_campione a datasources:SparqlTreeRootDatasource;
226
+ datasources:queryString """
227
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
228
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
229
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
230
+ WHERE {
231
+ BIND(<http://diagnostica/vocabularies/tipo-campione> AS ?concept)
232
+ OPTIONAL { ?concept rdfs:label ?label . }
233
+ }""" .
234
+
235
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "QUESITO DIAGNOSTICO" (8)
236
+ this:tree_root_quesito_diagnostico a datasources:SparqlTreeRootDatasource;
237
+ datasources:queryString """
238
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
239
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
240
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
241
+ WHERE {
242
+ BIND(<http://diagnostica/vocabularies/quesito-diagnostico> AS ?concept)
243
+ OPTIONAL { ?concept rdfs:label ?label . }
244
+ }""" .
245
+
246
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO SUCCESSIVI 1° LIVELLO (vale per tutti i vocabolari)
247
+ this:tree_children_broader_term a datasources:SparqlTreeChildrenDatasource;
248
+ datasources:queryString """
249
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
250
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
251
+ SELECT ?uri ?label (EXISTS { ?child crm:P127_has_broader_term ?uri } AS ?hasChildren)
252
+ WHERE {
253
+ ?uri crm:P127_has_broader_term $node .
254
+ OPTIONAL { ?uri rdfs:label ?label . }
255
+ }
256
+ ORDER BY ?label
257
+ """ .
@@ -16,15 +16,16 @@
16
16
 
17
17
  @prefix dash: <http://datashapes.org/dash#> .
18
18
  @prefix core: <http://data.sparna.fr/ontologies/sparnatural-config-core#> .
19
+ @prefix datasources: <http://data.sparna.fr/ontologies/sparnatural-config-datasources#> .
19
20
 
20
21
 
21
- this:S13Sample01Shape_label sh:path rdfs:label ;
22
+ this:S13SampleCampioneLabel sh:path rdfs:label ;
22
23
  #sh:order "1" ;
23
24
  sh:name "Label campione" ;
24
25
  #sh:path indagine:label_campione ;
25
26
  sh:nodeKind sh:Literal ;
26
27
  sh:datatype rdf:string ;
27
- sh:maxCount 1 ;
28
+ #sh:maxCount 1 ;
28
29
  sh:minCount 1 ;
29
30
  dash:searchWidget core:NonSelectableProperty ; # ???
30
31
  #dash:searchWidget core:SearchProperty ;
@@ -32,62 +33,62 @@ this:S13Sample01Shape_label sh:path rdfs:label ;
32
33
  core:enableOptional "false"^^xsd:boolean ;
33
34
  core:enableNegation "false"^^xsd:boolean .
34
35
 
35
- this:S13Sample01Shape # CAMPIONE
36
- a sh:NodeShape, rdfs:Class ;
36
+ this:S13SampleCampione # CAMPIONE
37
+ a sh:NodeShape ;
37
38
  sh:targetClass j.0:S13_Sample ;
38
39
  rdfs:label "Campione" ;
39
40
  sh:property [
40
41
  sh:path crm:P48_has_preferred_identifier ;
41
- sh:node this:E42Identifier02Shape ;
42
+ sh:node this:E42IdentifierCampione ;
42
43
  sh:name "ha identificativo" ;
43
- sh:maxCount 1 ;
44
+ #sh:maxCount 1 ;
44
45
  ] ;
45
46
  sh:property [
46
47
  sh:path crm:P2_has_type ;
47
- sh:node this:E55Type04Shape ;
48
+ sh:node this:E55TypeCampione ;
48
49
  sh:name "ha tipo" ;
49
- sh:maxCount 1 ;
50
+ #sh:maxCount 1 ;
50
51
  ] ;
51
52
  sh:property [
52
53
  sh:path j.0:O25_contains ;
53
- sh:node this:S10MaterialSubstantial01Shape ;
54
+ sh:node this:S10MaterialSubstantial ;
54
55
  sh:name "contiene" ;
55
- sh:maxCount 1 ;
56
+ #sh:maxCount 1 ;
56
57
  ] ;
57
58
  sh:property [
58
59
  sh:path basecpm:PC43i_uses ;
59
- sh:node this:CP2ArchitectureWorkShape ;
60
+ sh:node this:CP2ArchitectureWork ;
60
61
  sh:name "utilizza" ;
61
- sh:maxCount 1 ;
62
+ #sh:maxCount 1 ;
62
63
  ] ;
63
- sh:property this:S13Sample01Shape_label .
64
+ sh:property this:S13SampleCampioneLabel .
64
65
 
65
- this:S10MaterialSubstantial01Shape # MATERIALE PREVALENTE - CAMPIONE
66
- a sh:NodeShape, rdfs:Class ;
66
+ this:S10MaterialSubstantial # MATERIALE PREVALENTE - CAMPIONE
67
+ a sh:NodeShape ;
67
68
  sh:targetClass j.0:S10_Material_Substantial ;
68
69
  rdfs:label "Materiale" ;
69
70
  sh:deactivated "true"^^xsd:boolean ;
70
71
  sh:property [
71
72
  sh:path crm:P2_has_type ;
72
- sh:node this:E55Type08Shape ;
73
+ sh:node this:E55TypeMateriale ;
73
74
  sh:name "ha tipo" ;
74
- sh:maxCount 1 ;
75
+ #sh:maxCount 1 ;
75
76
  ] .
76
77
 
77
- this:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
78
- a sh:NodeShape, rdfs:Class ;
78
+ this:CP2ArchitectureWork # BENE DI RIFERIMENTO
79
+ a sh:NodeShape ;
79
80
  sh:targetClass basecpm:CP2_Architecture_Work ;
80
81
  rdfs:label "Bene di riferimento" ;
81
82
  sh:deactivated "true"^^xsd:boolean ;
82
83
  sh:property [
83
84
  sh:path crm:P1_is_identified_by ;
84
- sh:node this:E41Appellation02Shape ;
85
+ sh:node this:E41AppellationBene ;
85
86
  sh:name "è identificato da" ;
86
- sh:maxCount 1 ;
87
+ #sh:maxCount 1 ;
87
88
  ] .
88
89
 
89
- this:E42Identifier02Shape # ID CAMPIONE
90
- a sh:NodeShape, rdfs:Class ;
90
+ this:E42IdentifierCampione # ID CAMPIONE
91
+ a sh:NodeShape ;
91
92
  sh:targetClass crm:E42_Identifier ;
92
93
  rdfs:label "ID campione" ;
93
94
  sh:deactivated "true"^^xsd:boolean ;
@@ -95,11 +96,11 @@ this:E42Identifier02Shape # ID CAMPIONE
95
96
  sh:path indagine:id_campione ;
96
97
  sh:name "ID" ;
97
98
  sh:datatype xsd:string ;
98
- sh:maxCount 1 ;
99
+ #sh:maxCount 1 ;
99
100
  ] .
100
101
 
101
- this:E41Appellation02Shape # DENOMINAZIONE BENE
102
- a sh:NodeShape, rdfs:Class ;
102
+ this:E41AppellationBene # DENOMINAZIONE BENE
103
+ a sh:NodeShape ;
103
104
  sh:targetClass crm:E41_Appellation ;
104
105
  rdfs:label "Denominazione bene" ;
105
106
  sh:deactivated "true"^^xsd:boolean ;
@@ -112,36 +113,73 @@ this:E41Appellation02Shape # DENOMINAZIONE BENE
112
113
  dash:propertyRole dash:LabelRole;
113
114
  core:enableOptional "true"^^xsd:boolean ;
114
115
  core:enableNegation "true"^^xsd:boolean ;
115
- sh:maxCount 1 ;
116
+ #sh:maxCount 1 ;
116
117
  ] .
117
118
 
118
- this:E55Type04Shape # TIPO CAMPIONE
119
- a sh:NodeShape, rdfs:Class ;
119
+ this:E55TypeCampione # TIPO CAMPIONE
120
+ a sh:NodeShape ;
120
121
  sh:targetClass crm:E55_Type ;
121
- rdfs:label "Tipo campione" ;
122
- sh:deactivated "true"^^xsd:boolean ;
122
+ rdfs:label "Tipo campione" ;
123
+ sh:deactivated "true"^^xsd:boolean ;
123
124
  sh:property [
124
- sh:path indagine:tipo_campione ;
125
- #sh:class owl:Class ; # vocabolario TIPO CAMPIONE (21) id="tipo-campione"
126
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tipo-campione> ;
127
- #sh:nodeKind sh:Literal ;
128
- sh:datatype xsd:string ;
129
- sh:name "tipo" ;
130
- sh:maxCount 1 ;
125
+ sh:path indagine:tipo_campione ;
126
+ sh:name "tipo" ;
127
+ dash:searchWidget core:TreeProperty;
128
+ core:enableOptional "true"^^xsd:boolean;
129
+ core:enableNegation "true"^^xsd:boolean;
130
+ datasources:treeRootsDatasource this:tree_root_tipo_campione ;
131
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
132
+ #sh:maxCount 1 ;
131
133
  ] .
132
134
 
133
- this:E55Type08Shape # TIPO MATERIALE (in CAMPIONE, SOTTOCAMPIONE, ELEMENTO COSTRUTTIVO, ...)
134
- a sh:NodeShape, rdfs:Class ;
135
+ this:E55TypeMateriale # TIPO MATERIALE
136
+ a sh:NodeShape ;
135
137
  sh:targetClass crm:E55_Type ;
136
- rdfs:label "Tipo materiale" ;
137
- sh:deactivated "true"^^xsd:boolean ;
138
+ rdfs:label "Tipo materiale" ;
139
+ sh:deactivated "true"^^xsd:boolean ;
138
140
  sh:property [
139
- sh:path indagine:materiale ;
140
- #sh:class owl:Class ; # vocabolario TIPO MATERIALE (11) id="materiale"
141
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/materiale> ;
142
- #sh:nodeKind sh:Literal;
143
- sh:datatype xsd:string ;
144
- sh:name "tipo" ;
145
- sh:maxCount 1 ;
141
+ sh:path indagine:materiale ;
142
+ sh:name "tipo" ;
143
+ dash:searchWidget core:TreeProperty;
144
+ core:enableOptional "true"^^xsd:boolean;
145
+ core:enableNegation "true"^^xsd:boolean;
146
+ datasources:treeRootsDatasource this:tree_root_tipo_materiale ;
147
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
148
+ #sh:maxCount 1 ;
146
149
  ] .
147
150
 
151
+
152
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TIPO CAMPIONE" (21)
153
+ this:tree_root_tipo_campione a datasources:SparqlTreeRootDatasource;
154
+ datasources:queryString """
155
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
156
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
157
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
158
+ WHERE {
159
+ BIND(<http://diagnostica/vocabularies/tipo-campione> AS ?concept)
160
+ OPTIONAL { ?concept rdfs:label ?label . }
161
+ }""" .
162
+
163
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TIPO MATERIALE" (11)
164
+ this:tree_root_tipo_materiale a datasources:SparqlTreeRootDatasource;
165
+ datasources:queryString """
166
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
167
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
168
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
169
+ WHERE {
170
+ BIND(<http://diagnostica/vocabularies/materiale> AS ?concept)
171
+ OPTIONAL { ?concept rdfs:label ?label . }
172
+ }""" .
173
+
174
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO SUCCESSIVI 1° LIVELLO (vale per tutti i vocabolari)
175
+ this:tree_children_broader_term a datasources:SparqlTreeChildrenDatasource;
176
+ datasources:queryString """
177
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
178
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
179
+ SELECT ?uri ?label (EXISTS { ?child crm:P127_has_broader_term ?uri } AS ?hasChildren)
180
+ WHERE {
181
+ ?uri crm:P127_has_broader_term $node .
182
+ OPTIONAL { ?uri rdfs:label ?label . }
183
+ }
184
+ ORDER BY ?label
185
+ """ .
@@ -16,138 +16,138 @@
16
16
 
17
17
  @prefix dash: <http://datashapes.org/dash#> .
18
18
  @prefix core: <http://data.sparna.fr/ontologies/sparnatural-config-core#> .
19
+ @prefix datasources: <http://data.sparna.fr/ontologies/sparnatural-config-datasources#> .
19
20
 
20
21
 
21
- this:E7Activity02Shape_label sh:path rdfs:label ;
22
+ this:E7ActivityDiagnosticaLabel sh:path rdfs:label ;
22
23
  #sh:order "1" ;
23
24
  sh:name "Label attività diagnostica" ;
24
25
  #sh:path indagine:label_attivita_diagnostica ;
25
26
  sh:nodeKind sh:Literal ;
26
27
  sh:datatype rdf:string ;
27
- sh:maxCount 1 ;
28
+ #sh:maxCount 1 ;
28
29
  sh:minCount 1 ;
29
30
  dash:searchWidget core:NonSelectableProperty;
30
- #dash:searchWidget core:SearchProperty ;
31
31
  dash:propertyRole dash:LabelRole ;
32
32
  core:enableOptional "false"^^xsd:boolean ;
33
33
  core:enableNegation "false"^^xsd:boolean .
34
34
 
35
- this:E7Activity02Shape # ATTIVITA' DIAGNOSTICA
36
- a sh:NodeShape, rdfs:Class ;
35
+ this:E7ActivityDiagnostica # ATTIVITA' DIAGNOSTICA
36
+ a sh:NodeShape ;
37
37
  sh:targetClass crm:E7_Activity ;
38
38
  rdfs:label "Attività diagnostica" ;
39
39
  sh:property [
40
40
  sh:path crm:P48_has_preferred_identifier ;
41
- sh:node this:E42Identifier06Shape ;
41
+ sh:node this:E42IdentifierAttivitaDiagnostica ;
42
42
  sh:name "ha identificativo" ;
43
- sh:maxCount 1 ;
43
+ #sh:maxCount 1 ;
44
44
  ] ;
45
45
  sh:property [
46
46
  sh:path crm:P14_carried_out_by ;
47
- sh:node this:E39Actor02Shape ;
47
+ sh:node this:E39ActorDiagnostica ;
48
48
  sh:name "eseguito da" ;
49
- sh:maxCount 1 ;
49
+ #sh:maxCount 1 ;
50
50
  ] ;
51
51
  sh:property [
52
52
  sh:path crm:P2_has_type ;
53
- sh:node this:E55Type13Shape ;
53
+ sh:node this:E55TypeTecnica ;
54
54
  sh:name "ha tipo" ;
55
- sh:maxCount 1 ;
55
+ #sh:maxCount 1 ;
56
56
  ] ;
57
57
  sh:property [
58
58
  sh:path crm:P33_used_specific_technique ;
59
- sh:node this:E29DesignorProcedure03Shape ;
59
+ sh:node this:E29DesignorProcedureDiagnostica ;
60
60
  sh:name "ha usato tecnica specifica" ;
61
- sh:maxCount 1 ;
61
+ #sh:maxCount 1 ;
62
62
  ] ;
63
63
  sh:property [
64
64
  sh:path crm:P16_used_specific_object ;
65
- sh:node this:E70ThingShape ;
65
+ sh:node this:E70ThingStrumento ;
66
66
  sh:name "ha usato un oggetto specifico" ;
67
- sh:maxCount 1 ;
67
+ #sh:maxCount 1 ;
68
68
  ] ;
69
69
  sh:property [
70
- sh:path crm:P16_used_specific_object ;
71
- sh:node this:S13Sample01Shape ;
70
+ sh:path crm:P12_occurred_in_the_presence_of ;
71
+ sh:node this:S13SampleCampione ;
72
72
  sh:name "avvenuto in presenza di" ;
73
- sh:maxCount 1 ;
73
+ #sh:maxCount 1 ;
74
74
  ] ;
75
- sh:property this:E7Activity02Shape_label .
75
+ sh:property this:E7ActivityDiagnosticaLabel .
76
76
 
77
- this:E70ThingShape # STRUMENTO
78
- a sh:NodeShape, rdfs:Class ;
77
+ this:E70ThingStrumento # STRUMENTO
78
+ a sh:NodeShape ;
79
79
  sh:targetClass crm:E70_Thing ;
80
80
  rdfs:label "Strumento" ;
81
81
  sh:deactivated "true"^^xsd:boolean ;
82
82
  sh:property [
83
83
  sh:path crm:P2_has_type ;
84
- sh:node this:E55Type15Shape ;
84
+ sh:node this:E55TypeStrumentazione ;
85
85
  sh:name "ha tipo" ;
86
- sh:maxCount 1 ;
86
+ #sh:maxCount 1 ;
87
87
  ] .
88
88
 
89
- this:E29DesignorProcedure03Shape # PROCEDURA
90
- a sh:NodeShape, rdfs:Class ;
89
+ this:E29DesignorProcedureDiagnostica # PROCEDURA
90
+ a sh:NodeShape ;
91
91
  sh:targetClass crm:E29_Design_or_Procedure ;
92
92
  rdfs:label "Procedura" ;
93
93
  sh:deactivated "true"^^xsd:boolean ;
94
94
  sh:property [
95
95
  sh:path crm:P2_has_type ;
96
- sh:node this:E55Type14Shape ;
96
+ sh:node this:E55TypeModalitaIndagine ;
97
97
  sh:name "ha tipo" ;
98
- sh:maxCount 1 ;
98
+ #sh:maxCount 1 ;
99
99
  ] .
100
100
 
101
- this:S13Sample01Shape # CAMPIONE
102
- a sh:NodeShape, rdfs:Class ;
101
+ this:S13SampleCampione # CAMPIONE
102
+ a sh:NodeShape ;
103
103
  sh:targetClass j.0:S13_Sample ;
104
104
  rdfs:label "Campione" ;
105
105
  sh:deactivated "true"^^xsd:boolean ;
106
106
  sh:property [
107
107
  sh:path crm:P2_has_type ;
108
- sh:node this:E55Type04Shape ;
108
+ sh:node this:E55TypeCampione ;
109
109
  sh:name "ha tipo" ;
110
- sh:maxCount 1 ;
110
+ #sh:maxCount 1 ;
111
111
  ] ;
112
112
  sh:property [
113
113
  sh:path j.0:O25_contains ;
114
- sh:node this:S10MaterialSubstantial01Shape ;
114
+ sh:node this:S10MaterialSubstantial ;
115
115
  sh:name "contiene" ;
116
- sh:maxCount 1 ;
116
+ #sh:maxCount 1 ;
117
117
  ] ;
118
118
  sh:property [
119
119
  sh:path basecpm:PC43i_uses ;
120
- sh:node this:CP2ArchitectureWorkShape ;
120
+ sh:node this:CP2ArchitectureWork ;
121
121
  sh:name "utilizza" ;
122
- sh:maxCount 1 ;
122
+ #sh:maxCount 1 ;
123
123
  ] .
124
124
 
125
- this:S10MaterialSubstantial01Shape # MATERIALE PREVALENTE - CAMPIONE
126
- a sh:NodeShape, rdfs:Class ;
125
+ this:S10MaterialSubstantial # MATERIALE PREVALENTE - CAMPIONE
126
+ a sh:NodeShape ;
127
127
  sh:targetClass j.0:S10_Material_Substantial ;
128
128
  rdfs:label "Materiale" ;
129
129
  sh:deactivated "true"^^xsd:boolean ;
130
130
  sh:property [
131
131
  sh:path crm:P2_has_type ;
132
- sh:node this:E55Type08Shape ;
132
+ sh:node this:E55TypeMateriale ;
133
133
  sh:name "ha tipo" ;
134
- sh:maxCount 1 ;
134
+ #sh:maxCount 1 ;
135
135
  ] .
136
136
 
137
- this:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
138
- a sh:NodeShape, rdfs:Class ;
137
+ this:CP2ArchitectureWork # BENE DI RIFERIMENTO
138
+ a sh:NodeShape ;
139
139
  sh:targetClass basecpm:CP2_Architecture_Work ;
140
140
  rdfs:label "Bene di riferimento" ;
141
141
  sh:deactivated "true"^^xsd:boolean ;
142
142
  sh:property [
143
143
  sh:path crm:P1_is_identified_by ;
144
- sh:node this:E41Appellation02Shape ;
144
+ sh:node this:E41AppellationBene ;
145
145
  sh:name "è identificato da" ;
146
- sh:maxCount 1 ;
146
+ #sh:maxCount 1 ;
147
147
  ] .
148
148
 
149
- this:E42Identifier06Shape # ID ATTIVITA' DIAGNOSTICA
150
- a sh:NodeShape, rdfs:Class ;
149
+ this:E42IdentifierAttivitaDiagnostica # ID ATTIVITA' DIAGNOSTICA
150
+ a sh:NodeShape ;
151
151
  sh:targetClass crm:E42_Identifier ;
152
152
  rdfs:label "ID attività diagnostica" ;
153
153
  sh:deactivated "true"^^xsd:boolean ;
@@ -155,11 +155,11 @@ this:E42Identifier06Shape # ID ATTIVITA' DIAGNOSTICA
155
155
  sh:path indagine:id_attivita_diagnostica ;
156
156
  sh:name "ID" ;
157
157
  sh:datatype xsd:string ;
158
- sh:maxCount 1 ;
158
+ #sh:maxCount 1 ;
159
159
  ] .
160
160
 
161
- this:E39Actor02Shape # AUTORE
162
- a sh:NodeShape, rdfs:Class ;
161
+ this:E39ActorDiagnostica # AUTORE
162
+ a sh:NodeShape ;
163
163
  sh:targetClass crm:E39_Actor ;
164
164
  rdfs:label "Autore" ;
165
165
  sh:deactivated "true"^^xsd:boolean ;
@@ -172,17 +172,17 @@ this:E39Actor02Shape # AUTORE
172
172
  dash:propertyRole dash:LabelRole;
173
173
  core:enableOptional "true"^^xsd:boolean ;
174
174
  core:enableNegation "true"^^xsd:boolean ;
175
- sh:maxCount 1 ;
175
+ #sh:maxCount 1 ;
176
176
  ] ;
177
177
  sh:property [
178
178
  sh:path crm:P107i_is_current_or_former_member_of ;
179
- sh:node this:E74GroupShape ;
179
+ sh:node this:E74GroupEnte ;
180
180
  sh:name "è membro di" ;
181
- sh:maxCount 1 ;
181
+ #sh:maxCount 1 ;
182
182
  ] .
183
183
 
184
- this:E74GroupShape # ENTE AUTORE
185
- a sh:NodeShape, rdfs:Class ;
184
+ this:E74GroupEnte # ENTE AUTORE
185
+ a sh:NodeShape ;
186
186
  sh:targetClass crm:E74_Group ;
187
187
  rdfs:label "Ente autore" ;
188
188
  sh:deactivated "true"^^xsd:boolean ;
@@ -195,11 +195,11 @@ this:E74GroupShape # ENTE AUTORE
195
195
  dash:propertyRole dash:LabelRole;
196
196
  core:enableOptional "true"^^xsd:boolean ;
197
197
  core:enableNegation "true"^^xsd:boolean ;
198
- sh:maxCount 1 ;
198
+ #sh:maxCount 1 ;
199
199
  ] .
200
200
 
201
- this:E41Appellation02Shape # DENOMINAZIONE BENE
202
- a sh:NodeShape, rdfs:Class ;
201
+ this:E41AppellationBene # DENOMINAZIONE BENE
202
+ a sh:NodeShape ;
203
203
  sh:targetClass crm:E41_Appellation ;
204
204
  rdfs:label "Denominazione bene" ;
205
205
  sh:deactivated "true"^^xsd:boolean ;
@@ -212,80 +212,154 @@ this:E41Appellation02Shape # DENOMINAZIONE BENE
212
212
  dash:propertyRole dash:LabelRole;
213
213
  core:enableOptional "true"^^xsd:boolean ;
214
214
  core:enableNegation "true"^^xsd:boolean ;
215
- sh:maxCount 1 ;
215
+ #sh:maxCount 1 ;
216
216
  ] .
217
217
 
218
- this:E55Type04Shape # TIPO CAMPIONE
219
- a sh:NodeShape, rdfs:Class ;
218
+ this:E55TypeCampione # TIPO CAMPIONE
219
+ a sh:NodeShape ;
220
220
  sh:targetClass crm:E55_Type ;
221
- rdfs:label "Tipo campione" ;
222
- sh:deactivated "true"^^xsd:boolean ;
221
+ rdfs:label "Tipo campione" ;
222
+ sh:deactivated "true"^^xsd:boolean ;
223
223
  sh:property [
224
224
  sh:path indagine:tipo_campione ;
225
- #sh:class owl:Class ; # vocabolario TIPO CAMPIONE (21) id="tipo-campione"
226
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tipo-campione> ;
227
- #sh:nodeKind sh:Literal ;
228
- sh:datatype xsd:string ;
229
- sh:name "tipo" ;
230
- sh:maxCount 1 ;
225
+ sh:name "tipo" ;
226
+ dash:searchWidget core:TreeProperty;
227
+ core:enableOptional "true"^^xsd:boolean;
228
+ core:enableNegation "true"^^xsd:boolean;
229
+ datasources:treeRootsDatasource this:tree_root_tipo_campione ;
230
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
231
+ #sh:maxCount 1 ;
231
232
  ] .
232
233
 
233
- this:E55Type08Shape # TIPO MATERIALE (in CAMPIONE, SOTTOCAMPIONE, ELEMENTO COSTRUTTIVO, OUTPUT, ...)
234
- a sh:NodeShape, rdfs:Class ;
234
+ this:E55TypeMateriale # TIPO MATERIALE
235
+ a sh:NodeShape ;
235
236
  sh:targetClass crm:E55_Type ;
236
- rdfs:label "Tipo materiale" ;
237
- sh:deactivated "true"^^xsd:boolean ;
237
+ rdfs:label "Tipo materiale" ;
238
+ sh:deactivated "true"^^xsd:boolean ;
238
239
  sh:property [
239
- sh:path indagine:tipo_materiale ;
240
- #sh:class owl:Class ; # vocabolario TIPO MATERIALE (11) id="materiale"
241
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/materiale> ;
242
- #sh:nodeKind sh:Literal ;
243
- sh:datatype xsd:string ;
244
- sh:name "tipo" ;
245
- sh:maxCount 1 ;
240
+ sh:path indagine:materiale ;
241
+ sh:name "tipo" ;
242
+ dash:searchWidget core:TreeProperty;
243
+ core:enableOptional "true"^^xsd:boolean;
244
+ core:enableNegation "true"^^xsd:boolean;
245
+ datasources:treeRootsDatasource this:tree_root_tipo_materiale ;
246
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
247
+ #sh:maxCount 1 ;
246
248
  ] .
247
249
 
248
- this:E55Type13Shape # TECNICA DIAGNOSTICA
249
- a sh:NodeShape, rdfs:Class ;
250
+ this:E55TypeTecnica # TECNICA DIAGNOSTICA
251
+ a sh:NodeShape ;
250
252
  sh:targetClass crm:E55_Type ;
251
253
  rdfs:label "Tecnica diagnostica" ;
252
254
  sh:deactivated "true"^^xsd:boolean ;
253
255
  sh:property [
254
256
  sh:path indagine:tecnica_diagnostica ;
255
- #sh:class owl:Class ; # vocabolario TECNICA DIAGNOSTICA (20) id="tecnica-diagnostica"
256
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tecnica-diagnostica> ;
257
- #sh:nodeKind sh:Literal;
258
- sh:datatype xsd:string ;
259
- sh:name "tipo" ;
260
- sh:maxCount 1 ;
257
+ sh:name "tipo" ;
258
+ dash:searchWidget core:TreeProperty;
259
+ core:enableOptional "true"^^xsd:boolean;
260
+ core:enableNegation "true"^^xsd:boolean;
261
+ datasources:treeRootsDatasource this:tree_root_tecnica_diagnostica ;
262
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
263
+ #sh:maxCount 1 ;
261
264
  ] .
262
265
 
263
- this:E55Type14Shape # TIPO MDALITA' INDAGINE
264
- a sh:NodeShape, rdfs:Class ;
266
+ this:E55TypeModalitaIndagine # TIPO MODALITA' INDAGINE
267
+ a sh:NodeShape ;
265
268
  sh:targetClass crm:E55_Type ;
266
269
  rdfs:label "Tipo modalità indagine" ;
267
270
  sh:deactivated "true"^^xsd:boolean ;
268
271
  sh:property [
269
272
  sh:path indagine:tipo_modalita_indagine ;
270
- #sh:class owl:Class ; # vocabolario TIPO MODALITA' INDAGINE (13) id="modalita-di-indagine"
271
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/modalita-di-indagine> ;
272
- #sh:nodeKind sh:Literal ;
273
- sh:datatype xsd:string ;
274
- sh:name "tipo" ;
275
- sh:maxCount 1 ;
273
+ sh:name "tipo" ;
274
+ dash:searchWidget core:TreeProperty;
275
+ core:enableOptional "true"^^xsd:boolean;
276
+ core:enableNegation "true"^^xsd:boolean;
277
+ datasources:treeRootsDatasource this:tree_root_modalita_indagine ;
278
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
279
+ #sh:maxCount 1 ;
276
280
  ] .
277
281
 
278
- this:E55Type15Shape # TIPO STRUMENTAZIONE
279
- a sh:NodeShape, rdfs:Class ;
282
+ this:E55TypeStrumentazione # TIPO STRUMENTAZIONE
283
+ a sh:NodeShape ;
280
284
  sh:targetClass crm:E55_Type ;
281
285
  rdfs:label "Tipo strumentazione" ;
282
286
  sh:deactivated "true"^^xsd:boolean ;
283
287
  sh:property [
284
288
  sh:path indagine:tipo_strumentazione ;
285
- #sh:class owl:Class ; # vocabolario STRUMENTAZIONE (18) id="strumentazione"
286
- #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/strumentazione> ;
287
- #sh:nodeKind sh:Literal ;
288
- sh:datatype xsd:string ;
289
- sh:name "tipo" ;
290
- sh:maxCount 1 ;
289
+ sh:name "tipo" ;
290
+ dash:searchWidget core:TreeProperty;
291
+ core:enableOptional "true"^^xsd:boolean;
292
+ core:enableNegation "true"^^xsd:boolean;
293
+ datasources:treeRootsDatasource this:tree_root_strumentazione ;
294
+ datasources:treeChildrenDatasource this:tree_children_broader_term ;
295
+ #sh:maxCount 1 ;
291
296
  ] .
297
+
298
+
299
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "STRUMENTAZIONE" (18)
300
+ this:tree_root_strumentazione a datasources:SparqlTreeRootDatasource;
301
+ datasources:queryString """
302
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
303
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
304
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
305
+ WHERE {
306
+ BIND(<http://diagnostica/vocabularies/strumentazione> AS ?concept)
307
+ OPTIONAL { ?concept rdfs:label ?label . }
308
+ }""" .
309
+
310
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "MODALITA' INDAGINE" (13)
311
+ this:tree_root_modalita_indagine a datasources:SparqlTreeRootDatasource;
312
+ datasources:queryString """
313
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
314
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
315
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
316
+ WHERE {
317
+ BIND(<http://diagnostica/vocabularies/modalita-di-indagine> AS ?concept)
318
+ OPTIONAL { ?concept rdfs:label ?label . }
319
+ }""" .
320
+
321
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TECNICA DIAGNOSTICA" (20)
322
+ this:tree_root_tecnica_diagnostica a datasources:SparqlTreeRootDatasource;
323
+ datasources:queryString """
324
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
325
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
326
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
327
+ WHERE {
328
+ BIND(<http://diagnostica/vocabularies/tecnica-diagnostica> AS ?concept)
329
+ OPTIONAL { ?concept rdfs:label ?label . }
330
+ }""" .
331
+
332
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TIPO CAMPIONE" (21)
333
+ this:tree_root_tipo_campione a datasources:SparqlTreeRootDatasource;
334
+ datasources:queryString """
335
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
336
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
337
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
338
+ WHERE {
339
+ BIND(<http://diagnostica/vocabularies/tipo-campione> AS ?concept)
340
+ OPTIONAL { ?concept rdfs:label ?label . }
341
+ }""" .
342
+
343
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO "TIPO MATERIALE" (11)
344
+ this:tree_root_tipo_materiale a datasources:SparqlTreeRootDatasource;
345
+ datasources:queryString """
346
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
347
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
348
+ SELECT (?concept AS ?uri) ?label (EXISTS { ?child crm:P127_has_broader_term ?concept } AS ?hasChildren)
349
+ WHERE {
350
+ BIND(<http://diagnostica/vocabularies/materiale> AS ?concept)
351
+ OPTIONAL { ?concept rdfs:label ?label . }
352
+ }""" .
353
+
354
+ # DATASOURCE DEI TERMINI DI VOCABOLARIO SUCCESSIVI 1° LIVELLO (vale per tutti i vocabolari)
355
+ this:tree_children_broader_term a datasources:SparqlTreeChildrenDatasource;
356
+ datasources:queryString """
357
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
358
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
359
+ SELECT ?uri ?label (EXISTS { ?child crm:P127_has_broader_term ?uri } AS ?hasChildren)
360
+ WHERE {
361
+ ?uri crm:P127_has_broader_term $node .
362
+ OPTIONAL { ?uri rdfs:label ?label . }
363
+ }
364
+ ORDER BY ?label
365
+ """ .