@igea/oac_backend 1.0.96 → 1.0.98

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.96",
3
+ "version": "1.0.98",
4
4
  "description": "Backend service for the OAC project",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -226,85 +226,74 @@ router.get('/get-vocabolary-terms/:key', (req, res) => {
226
226
  .pipe(res);
227
227
  }else{
228
228
  const rootIRI = `<http://diagnostica/vocabularies/${key}>`;
229
- let _query = `PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
230
- CONSTRUCT {
231
- ?concept ?p ?o .
232
- }
233
- WHERE {
234
- ?concept (crm:P127_has_broader_term*) ${rootIRI} .
235
- ?concept ?p ?o .
236
- }`;
237
-
238
229
  let query = `PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
239
230
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
240
- PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
241
- PREFIX owl: <http://www.w3.org/2002/07/owl#>
242
-
243
- CONSTRUCT {
244
-
245
- ?concept a owl:Class ;
246
- rdfs:subClassOf ?parent ;
247
- skos:prefLabel ?label ;
248
- skos:closeMatch ?mappedConcept .
249
-
250
- }
231
+ SELECT ?concept ?parent ?label
251
232
  WHERE {
252
-
253
- # Trovo tutti i concetti del vocabolario
254
233
  ?concept (crm:P127_has_broader_term*) ${rootIRI} .
255
-
256
- # Recupero l'etichetta
257
234
  OPTIONAL { ?concept rdfs:label ?label . }
258
-
259
- # Prelevo il parent da broader term
260
- OPTIONAL {
261
- ?concept crm:P127_has_broader_term ?parent .
262
- }
263
-
264
- # Genero un mapping verso un URI esterno
235
+ OPTIONAL { ?concept crm:P127_has_broader_term ?parent . }
265
236
  BIND(
266
237
  IRI(CONCAT("${rootIRI}", REPLACE(STR(?concept), "^.*[/#]", "")))
267
238
  AS ?mappedConcept
268
239
  )
269
-
270
240
  }
271
- ORDER BY ?label`
272
-
241
+ ORDER BY ?concept`
273
242
  axios.post(fusekiUrl, `query=${encodeURIComponent(query)}`, {
274
243
  headers: {
275
- 'Accept': `text/turtle`,
244
+ 'Accept': `application/sparql-results+json`,
276
245
  'Content-Type': 'application/x-www-form-urlencoded'
277
- },
278
- responseType: 'text'
246
+ }
279
247
  }).then(response => {
280
- res.setHeader('Content-Type', response.headers['content-type']);
248
+ res.setHeader('Content-Type', 'text/turtle');
281
249
  res.header('Access-Control-Allow-Origin', '*');
250
+ const bindings = response.data.results.bindings;
282
251
  const client_uuid = crypto.randomUUID();
283
252
  const table = 'vocabulary-cache'
253
+ let data_turtle = `PREFIX base: <http://www.ics.forth.gr/isl/CRMinf/>
254
+ PREFIX cpm: <http://ontome.net/ns/cpm/>
255
+ PREFIX crm: <http://www.cidoc-crm.org/cidoc-crm/>
256
+ PREFIX crmsci: <http://www.cidoc-crm.org/extensions/crmsci/>
257
+ PREFIX owl: <http://www.w3.org/2002/07/owl#>
258
+ PREFIX pref: <http://diagnostica/>
259
+ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
260
+ PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
261
+ PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
262
+ PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
263
+ `
264
+ for(let i=0; i<bindings.length; i++){
265
+ let item = bindings[i]
266
+ data_turtle += `
267
+ <${item.concept.value}>
268
+ rdf:type owl:Class;
269
+ rdfs:subClassOf <${item.parent.value}>;
270
+ skos:prefLabel "${item.label.value}"@${item.label["xml:lang"]} .
271
+ `
272
+ }
273
+
284
274
  EditLocks.lockWithRetry(table, key, client_uuid).then( async (success) =>{
285
275
  try{
286
276
  if(success){
287
- CacheVocabularies.set(key, response.data); // salva come stringa
277
+ CacheVocabularies.set(key, data_turtle); // salva come stringa
288
278
  await EditLocks.delete(table, key, client_uuid)
289
279
  }
290
280
  }catch(ex){
291
281
  console.log(ex)
292
282
  }
293
- res.send(response.data);
283
+ res.send(data_turtle);
294
284
  }).catch((e)=>{
295
285
  console.log(e)
296
286
  res.send(response.data);
297
287
  })
298
288
  }).catch(err => {
289
+ console.log(err)
299
290
  res.status(500).json({
300
291
  success: false,
301
292
  data: null,
302
293
  message: `Error: ${err}`
303
294
  });
304
295
  });
305
- }
306
-
307
-
296
+ }
308
297
  })
309
298
  //---------------------------------------------------------------
310
299
 
@@ -1150,7 +1150,7 @@ ex:E39Actor04Shape # AUTORE - REPORT
1150
1150
  sh:targetClass crm:E39_Actor ;
1151
1151
  rdfs:label "Autore report" ;
1152
1152
  sh:property [
1153
- sh:path indagine:autore ;
1153
+ sh:path crm:P1_is_identified_by ;
1154
1154
  sh:node ex:E41Appellation03Shape ;
1155
1155
  sh:name "Autore report" ;
1156
1156
  sh:maxCount 1 ;
@@ -1,5 +1,5 @@
1
1
  @prefix sh: <http://www.w3.org/ns/shacl#> .
2
- @prefix ex: <http://example.org/shapes/> .
2
+ #@prefix ex: <http://example.org/shapes/> .
3
3
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
4
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
5
5
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@@ -12,169 +12,203 @@
12
12
  #@prefix volipi: <http://data.sparna.fr/ontologies/volipi#> .
13
13
  #@prefix skos: <http://www.w3.org/2004/02/skos/core> .
14
14
  @prefix indagine: <http://indagine/> .
15
+ @prefix this: <http://data.mydomain.com/sparnatural-page/sparnatural-config/> .
15
16
 
17
+ #@prefix dash: <http://datashapes.org/dash#> .
18
+ #@prefix core: <http://data.sparna.fr/ontologies/sparnatural-config-core#> .
19
+ #
20
+ #this:E7Activity01Shape_label sh:path rdfs:label ;
21
+ # #sh:order "1" ;
22
+ # sh:name "Label" ;
23
+ # #sh:description "Specifies the name of the object."@en, "Spécifie le nom du Sympôme"@fr ;
24
+ # sh:maxCount 1 ;
25
+ # sh:nodeKind sh:Literal ;
26
+ # sh:datatype rdf:string ;
27
+ # dash:searchWidget core:SearchProperty ;
28
+ # dash:propertyRole dash:LabelRole ;
29
+ # core:enableOptional "false"^^xsd:boolean ;
30
+ # core:enableNegation "false"^^xsd:boolean .
31
+ #
32
+ #this:E42Identifier01Shape_label sh:path rdfs:label ;
33
+ # #sh:order "1" ;
34
+ # sh:name "Label" ;
35
+ # #sh:description "Specifies the name of the object."@en, "Spécifie le nom du Sympôme"@fr ;
36
+ # sh:maxCount 1 ;
37
+ # sh:nodeKind sh:Literal ;
38
+ # sh:datatype rdf:string ;
39
+ # dash:searchWidget core:SearchProperty ;
40
+ # dash:propertyRole dash:LabelRole ;
41
+ # core:enableOptional "false"^^xsd:boolean ;
42
+ # core:enableNegation "false"^^xsd:boolean .
16
43
 
17
- ex:E7activity01Shape # INDAGINE
44
+ this:E7Activity01Shape # INDAGINE
18
45
  a sh:NodeShape, rdfs:Class ;
19
46
  sh:targetClass crm:E7_Activity ;
20
- rdfs:label "Indagine" ;
47
+ rdfs:label "Indagine" ;
48
+ #sh:description "Indagine" ;
21
49
  sh:property [
22
50
  sh:path crm:P48_has_preferred_identifier ;
23
- sh:node ex:E42Identifier01Shape ;
24
- sh:name "ID indagine" ;
51
+ sh:node this:E42Identifier01Shape ;
52
+ sh:name "ha identificativo" ;
25
53
  sh:maxCount 1 ;
26
54
  ] ;
27
55
  sh:property [
28
56
  sh:path crm:P17_was_motivated_by ;
29
- sh:node ex:I12AdoptedBeliefShape ;
30
- sh:name "Quesito diagnostico" ;
57
+ sh:node this:I12AdoptedBeliefShape ;
58
+ sh:name "è motivato da" ;
31
59
  sh:maxCount 1 ;
32
60
  ] ;
33
61
  sh:property [
34
62
  sh:path crm:P14_carried_out_by ;
35
- sh:node ex:E39Actor01Shape ;
36
- sh:name "Attori coinvolti" ;
63
+ sh:node this:E39Actor01Shape ;
64
+ sh:name "eseguito da" ;
37
65
  sh:maxCount 1 ;
38
66
  ] ;
39
67
  sh:property [
40
68
  sh:path crm:P16_used_specific_object ;
41
- sh:node ex:S13Sample01Shape ;
42
- sh:name "Campione" ;
69
+ sh:node this:S13Sample01Shape ;
70
+ sh:name "ha usato un oggetto specifico" ;
43
71
  sh:maxCount 1 ;
44
72
  ] .
73
+ # ] ;
74
+ # sh:property this:E7Activity01Shape_label .
45
75
 
46
- ex:E39Actor01Shape # ATTORI
76
+ this:E39Actor01Shape # ATTORI
47
77
  a sh:NodeShape, rdfs:Class ;
48
78
  sh:targetClass crm:E39_Actor ;
49
79
  rdfs:label "Attori coinvolti" ;
50
80
  sh:property [
51
81
  sh:path crm:P2_has_type ;
52
- sh:node ex:E55Type03Shape ;
53
- sh:name "Attori" ;
82
+ sh:node this:E55Type03Shape ;
83
+ sh:name "ha tipo" ;
54
84
  sh:maxCount 1 ;
55
85
  ] .
56
86
 
57
- ex:S13Sample01Shape # CAMPIONE
87
+ this:S13Sample01Shape # CAMPIONE
58
88
  a sh:NodeShape, rdfs:Class ;
59
89
  sh:targetClass j.0:S13_Sample ;
60
90
  rdfs:label "Campione" ;
61
91
  sh:property [
62
92
  sh:path crm:P2_has_type ;
63
- sh:node ex:E55Type05Shape ;
64
- sh:name "Tipo campione" ;
93
+ sh:node this:E55Type05Shape ;
94
+ sh:name "ha tipo" ;
65
95
  sh:maxCount 1 ;
66
96
  ] ;
67
97
  sh:property [
68
98
  sh:path basecpm:Pc43i_uses ;
69
- sh:node ex:CP2ArchitectureWorkShape ;
70
- sh:name "Bene di riferimento" ;
99
+ sh:node this:CP2ArchitectureWorkShape ;
100
+ sh:name "utilizza" ;
71
101
  sh:maxCount 1 ;
72
102
  ] .
73
103
 
74
- ex:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
104
+ this:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
75
105
  a sh:NodeShape, rdfs:Class ;
76
106
  sh:targetClass basecpm:CP2_Architecture_Work ;
77
107
  rdfs:label "Bene di riferimento" ;
78
108
  sh:property [
79
109
  sh:path crm:P1_is_identified_by ;
80
- sh:node ex:E41Appellation02Shape ;
81
- sh:name "Denominazione bene" ;
110
+ sh:node this:E41Appellation02Shape ;
111
+ sh:name "è identificato da" ;
82
112
  sh:maxCount 1 ;
83
113
  ] .
84
114
 
85
- ex:E42Identifier01Shape #ID INDAGINE
115
+ this:E42Identifier01Shape #ID INDAGINE
86
116
  a sh:NodeShape, rdfs:Class ;
87
117
  sh:targetClass crm:E42_Identifier ;
88
118
  rdfs:label "ID Indagine" ;
89
119
  sh:property [
90
120
  sh:path indagine:id_indagine ;
91
- sh:name "ID indagine" ;
121
+ sh:name "ID" ;
92
122
  sh:datatype xsd:string ;
93
123
  sh:maxCount 1 ;
94
124
  ] .
125
+ # ] ;
126
+ # sh:property this:E42Identifier01Shape_label .
95
127
 
96
- ex:I12AdoptedBeliefShape # QUESITO DIAGNOSTICO
128
+ this:I12AdoptedBeliefShape # QUESITO DIAGNOSTICO
97
129
  a sh:NodeShape, rdfs:Class ;
98
130
  sh:targetClass base:I12_Adopted_Belief ;
99
131
  rdfs:label "Quesito diagnostico" ;
100
132
  sh:property [
101
133
  sh:path crm:P2_has_type ;
102
- sh:node ex:E55Type02Shape ;
103
- sh:name "Tipo quesito diagnostico" ;
134
+ sh:node this:E55Type02Shape ;
135
+ sh:name "ha tipo" ;
104
136
  sh:maxCount 1 ;
105
137
  ] .
106
138
 
107
- ex:E41Appellation01Shape # ENTE RICHIEDENTE
139
+ this:E41Appellation01Shape # ENTE RICHIEDENTE
108
140
  a sh:NodeShape, rdfs:Class ;
109
141
  sh:targetClass crm:E41_Appellation ;
110
142
  rdfs:label "Ente richiedente - Schedatore" ;
111
143
  sh:property [
112
144
  sh:path indagine:ente_richiedente ;
113
145
  sh:datatype xsd:string ;
114
- sh:name "Ente richiedente" ;
146
+ #sh:nodeKind sh:Literal ;
147
+ sh:name "ente richiedente" ;
115
148
  sh:maxCount 1 ;
116
149
  ] ;
117
150
  sh:property [
118
151
  sh:path indagine:schedatore ;
119
152
  sh:datatype xsd:string ;
120
- sh:name "Schedatore" ;
153
+ #sh:nodeKind sh:Literal ;
154
+ sh:name "schedatore" ;
121
155
  sh:maxCount 1 ;
122
156
  ] .
123
157
 
124
- ex:E41Appellation02Shape # DENOMINAZIONE BENE
158
+ this:E41Appellation02Shape # DENOMINAZIONE BENE
125
159
  a sh:NodeShape, rdfs:Class ;
126
160
  sh:targetClass crm:E41_Appellation ;
127
161
  rdfs:label "Denominazione bene" ;
128
162
  sh:property [
129
163
  sh:path indagine:bene_di_riferimento ;
130
164
  sh:datatype xsd:string ;
131
- sh:name "Denominazione bene" ;
165
+ #sh:nodeKind sh:Literal ;
166
+ sh:name "denominazione" ;
132
167
  sh:maxCount 1 ;
133
168
  ] .
134
169
 
135
- ex:E55Type02Shape # TIPO QUESITO DIAGNOSTICO
170
+ this:E55Type02Shape # TIPO QUESITO DIAGNOSTICO
136
171
  a sh:NodeShape, rdfs:Class ;
137
172
  sh:targetClass crm:E55_Type ;
138
173
  rdfs:label "Tipo quesito diagnostico" ;
139
174
  #volipi:iconName "fa-solid fa-car" ;
140
175
  sh:property [
141
176
  sh:path indagine:tipo_quesito_diagnostico ;
142
- #sh:class owl:Class ; # vocabolario QUESITO DIAGNOSTICO (8) id="quesito-diagnostico"
177
+ #sh:class owl:Class ; # vocabolario QUESITO DIAGNOSTICO (8) id="quesito-diagnostico"
178
+ #owl:imports <https://raw.githubusercontent.com/tibonto/DFG-Fachsystematik-Ontology/refs/heads/main/dfgfo.ttl>;
143
179
  #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/quesito-diagnostico> ;
144
- #sh:nodeKind sh:Literal;
145
- sh:datatype xsd:string;
146
- sh:name "Tipo quesito diagnostico" ;
180
+ sh:datatype xsd:string ;
181
+ sh:name "tipo" ;
147
182
  sh:maxCount 1 ;
148
183
  ] .
149
184
 
150
- ex:E55Type03Shape # TIPOLOGIA ATTORI
185
+ this:E55Type03Shape # TIPOLOGIA ATTORI
151
186
  a sh:NodeShape, rdfs:Class ;
152
187
  sh:targetClass crm:E55_Type ;
153
188
  rdfs:label "Tipo attori" ;
154
189
  sh:property [
155
190
  sh:path crm:P1_is_identified_by ;
156
- sh:node ex:E41Appellation01Shape ;
157
- sh:name "Ente richiedente - Schedatore" ;
191
+ sh:node this:E41Appellation01Shape ;
192
+ sh:name "è identificato da" ;
158
193
  sh:maxCount 1 ;
159
194
  #] ;
160
195
  #sh:property [
161
196
  # sh:path [sh:inversePath crm:P1i_identifies] ; # usata proprietà inversa di P1_is_defined_by ;
162
- # sh:node ex:E41Appellation01bShape ;
197
+ # sh:node this:E41Appellation01bShape ;
163
198
  # sh:name "Schedatore" ;
164
199
  # sh:maxCount 1 ;
165
200
  ] .
166
201
 
167
- ex:E55Type05Shape # TIPO CAMPIONE
202
+ this:E55Type05Shape # TIPO CAMPIONE
168
203
  a sh:NodeShape, rdfs:Class ;
169
204
  sh:targetClass crm:E55_Type ;
170
205
  rdfs:label "Tipo campione" ;
171
206
  sh:property [
172
207
  sh:path indagine:tipo_campione ;
173
208
  #sh:class owl:Class ; # vocabolario TIPO CAMPIONE (21) id="tipo-campione
174
- #sh:in ( "Tipo campione A" "Tipo campione B" ) ;
209
+ #owl:imports <https://raw.githubusercontent.com/tibonto/DFG-Fachsystematik-Ontology/refs/heads/main/dfgfo.ttl>;
175
210
  #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tipo-campione> ;
176
- #sh:nodeKind sh:Literal;
177
- sh:datatype xsd:string;
178
- sh:name "Tipo campione" ;
211
+ sh:datatype xsd:string ;
212
+ sh:name "tipo" ;
179
213
  sh:maxCount 1 ;
180
214
  ] .
@@ -1,5 +1,5 @@
1
1
  @prefix sh: <http://www.w3.org/ns/shacl#> .
2
- @prefix ex: <http://example.org/shapes/> .
2
+ #@prefix ex: <http://example.org/shapes/> .
3
3
  @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
4
  @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
5
5
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@@ -12,82 +12,83 @@
12
12
  #@prefix volipi: <http://data.sparna.fr/ontologies/volipi#> .
13
13
  #@prefix skos: <http://www.w3.org/2004/02/skos/core> .
14
14
  @prefix indagine: <http://indagine/> .
15
+ @prefix this: <http://data.mydomain.com/sparnatural-page/sparnatural-config/> .
15
16
 
16
17
 
17
- ex:S13Sample01Shape # CAMPIONE
18
+ this:S13Sample01Shape # CAMPIONE
18
19
  a sh:NodeShape, rdfs:Class ;
19
20
  sh:targetClass j.0:S13_Sample ;
20
21
  rdfs:label "Campione" ;
21
22
  sh:property [
22
23
  sh:path crm:P48_has_preferred_identifier ;
23
- sh:node ex:E42Identifier02Shape ;
24
- sh:name "ID campione" ;
24
+ sh:node this:E42Identifier02Shape ;
25
+ sh:name "ha identificativo" ;
25
26
  sh:maxCount 1 ;
26
27
  ] ;
27
28
  sh:property [
28
29
  sh:path crm:P2_has_type ;
29
- sh:node ex:E55Type04Shape ;
30
- sh:name "Tipo campione" ;
30
+ sh:node this:E55Type04Shape ;
31
+ sh:name "ha tipo" ;
31
32
  sh:maxCount 1 ;
32
33
  ] ;
33
34
  sh:property [
34
35
  sh:path j.0:O25_contains ;
35
- sh:node ex:S10MaterialSubstantial01Shape ;
36
- sh:name "Materiale prevalente" ;
36
+ sh:node this:S10MaterialSubstantial01Shape ;
37
+ sh:name "contiene" ;
37
38
  sh:maxCount 1 ;
38
39
  ] ;
39
40
  sh:property [
40
41
  sh:path basecpm:PC43i_uses ;
41
- sh:node ex:CP2ArchitectureWorkShape ;
42
- sh:name "Bene di riferimento" ;
42
+ sh:node this:CP2ArchitectureWorkShape ;
43
+ sh:name "utilizza" ;
43
44
  sh:maxCount 1 ;
44
45
  ] .
45
46
 
46
- ex:S10MaterialSubstantial01Shape # MATERIALE PREVALENTE - CAMPIONE
47
+ this:S10MaterialSubstantial01Shape # MATERIALE PREVALENTE - CAMPIONE
47
48
  a sh:NodeShape, rdfs:Class ;
48
49
  sh:targetClass j.0:S10_Material_Substantial ;
49
50
  rdfs:label "Materiale" ;
50
51
  sh:property [
51
52
  sh:path crm:P2_has_type ;
52
- sh:node ex:E55Type08Shape ;
53
- sh:name "Materiale" ;
53
+ sh:node this:E55Type08Shape ;
54
+ sh:name "ha tipo" ;
54
55
  sh:maxCount 1 ;
55
56
  ] .
56
57
 
57
- ex:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
58
+ this:CP2ArchitectureWorkShape # BENE DI RIFERIMENTO
58
59
  a sh:NodeShape, rdfs:Class ;
59
60
  sh:targetClass basecpm:CP2_Architecture_Work ;
60
61
  rdfs:label "Bene di riferimento" ;
61
62
  sh:property [
62
63
  sh:path crm:P1_is_identified_by ;
63
- sh:node ex:E41Appellation02Shape ;
64
- sh:name "Denominazione bene" ;
64
+ sh:node this:E41Appellation02Shape ;
65
+ sh:name "è identificato da" ;
65
66
  sh:maxCount 1 ;
66
67
  ] .
67
68
 
68
- ex:E42Identifier02Shape # ID CAMPIONE
69
+ this:E42Identifier02Shape # ID CAMPIONE
69
70
  a sh:NodeShape, rdfs:Class ;
70
71
  sh:targetClass crm:E42_Identifier ;
71
72
  rdfs:label "ID campione" ;
72
73
  sh:property [
73
74
  sh:path indagine:id_campione ;
74
- sh:name "ID campione" ;
75
+ sh:name "ID" ;
75
76
  sh:datatype xsd:string ;
76
77
  sh:maxCount 1 ;
77
78
  ] .
78
79
 
79
- ex:E41Appellation02Shape # DENOMINAZIONE BENE
80
+ this:E41Appellation02Shape # DENOMINAZIONE BENE
80
81
  a sh:NodeShape, rdfs:Class ;
81
82
  sh:targetClass crm:E41_Appellation ;
82
83
  rdfs:label "Denominazione bene" ;
83
84
  sh:property [
84
85
  sh:path indagine:bene_di_riferimento ;
85
86
  sh:datatype xsd:string ;
86
- sh:name "Denominazione bene" ;
87
+ sh:name "denominazione" ;
87
88
  sh:maxCount 1 ;
88
89
  ] .
89
90
 
90
- ex:E55Type04Shape # TIPO CAMPIONE
91
+ this:E55Type04Shape # TIPO CAMPIONE
91
92
  a sh:NodeShape, rdfs:Class ;
92
93
  sh:targetClass crm:E55_Type ;
93
94
  rdfs:label "Tipo campione" ;
@@ -95,13 +96,13 @@ ex:E55Type04Shape # TIPO CAMPIONE
95
96
  sh:path indagine:tipo_campione ;
96
97
  #sh:class owl:Class ; # vocabolario TIPO CAMPIONE (21) id="tipo-campione"
97
98
  #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/tipo-campione> ;
98
- #sh:nodeKind sh:Literal;
99
- sh:datatype xsd:string;
100
- sh:name "Tipo campione" ;
99
+ #sh:nodeKind sh:Literal ;
100
+ sh:datatype xsd:string ;
101
+ sh:name "tipo" ;
101
102
  sh:maxCount 1 ;
102
103
  ] .
103
104
 
104
- ex:E55Type08Shape # TIPO MATERIALE (in CAMPIONE, SOTTOCAMPIONE, ELEMENTO COSTRUTTIVO, ...)
105
+ this:E55Type08Shape # TIPO MATERIALE (in CAMPIONE, SOTTOCAMPIONE, ELEMENTO COSTRUTTIVO, ...)
105
106
  a sh:NodeShape, rdfs:Class ;
106
107
  sh:targetClass crm:E55_Type ;
107
108
  rdfs:label "Tipo materiale" ;
@@ -110,8 +111,8 @@ ex:E55Type08Shape # TIPO MATERIALE (in CAMPIONE, SOTTOCAMPIONE, ELEMENTO COSTRUT
110
111
  #sh:class owl:Class ; # vocabolario TIPO MATERIALE (11) id="materiale"
111
112
  #owl:imports <OAC_EXPOSED_PROTOCOL://OAC_EXPOSED_HOST:OAC_EXPOSED_PORT/backend/fuseki/get-vocabolary-terms/materiale> ;
112
113
  #sh:nodeKind sh:Literal;
113
- sh:datatype xsd:string;
114
- sh:name "Tipo materiale" ;
114
+ sh:datatype xsd:string ;
115
+ sh:name "tipo" ;
115
116
  sh:maxCount 1 ;
116
117
  ] .
117
118