cognite-neat 0.88.0__py3-none-any.whl → 0.88.2__py3-none-any.whl

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.

Potentially problematic release.


This version of cognite-neat might be problematic. Click here for more details.

Files changed (99) hide show
  1. cognite/neat/_version.py +1 -1
  2. cognite/neat/app/api/routers/configuration.py +1 -1
  3. cognite/neat/app/ui/neat-app/build/asset-manifest.json +7 -7
  4. cognite/neat/app/ui/neat-app/build/index.html +1 -1
  5. cognite/neat/app/ui/neat-app/build/static/css/{main.38a62222.css → main.72e3d92e.css} +2 -2
  6. cognite/neat/app/ui/neat-app/build/static/css/main.72e3d92e.css.map +1 -0
  7. cognite/neat/app/ui/neat-app/build/static/js/main.5a52cf09.js +3 -0
  8. cognite/neat/app/ui/neat-app/build/static/js/{main.ec7f72e2.js.LICENSE.txt → main.5a52cf09.js.LICENSE.txt} +0 -9
  9. cognite/neat/app/ui/neat-app/build/static/js/main.5a52cf09.js.map +1 -0
  10. cognite/neat/config.py +44 -27
  11. cognite/neat/exceptions.py +8 -2
  12. cognite/neat/graph/extractors/_classic_cdf/_assets.py +21 -73
  13. cognite/neat/graph/extractors/_classic_cdf/_base.py +102 -0
  14. cognite/neat/graph/extractors/_classic_cdf/_events.py +46 -42
  15. cognite/neat/graph/extractors/_classic_cdf/_files.py +41 -45
  16. cognite/neat/graph/extractors/_classic_cdf/_labels.py +75 -52
  17. cognite/neat/graph/extractors/_classic_cdf/_relationships.py +49 -27
  18. cognite/neat/graph/extractors/_classic_cdf/_sequences.py +47 -50
  19. cognite/neat/graph/extractors/_classic_cdf/_timeseries.py +47 -49
  20. cognite/neat/graph/loaders/_base.py +4 -4
  21. cognite/neat/graph/loaders/_rdf2asset.py +12 -14
  22. cognite/neat/graph/loaders/_rdf2dms.py +14 -10
  23. cognite/neat/graph/queries/_base.py +22 -29
  24. cognite/neat/graph/queries/_shared.py +1 -1
  25. cognite/neat/graph/stores/_base.py +19 -11
  26. cognite/neat/graph/transformers/_rdfpath.py +3 -2
  27. cognite/neat/issues/__init__.py +16 -0
  28. cognite/neat/{issues.py → issues/_base.py} +78 -2
  29. cognite/neat/issues/errors/external.py +21 -0
  30. cognite/neat/issues/errors/properties.py +75 -0
  31. cognite/neat/issues/errors/resources.py +123 -0
  32. cognite/neat/issues/errors/schema.py +0 -0
  33. cognite/neat/{rules/issues → issues}/formatters.py +9 -9
  34. cognite/neat/issues/neat_warnings/__init__.py +2 -0
  35. cognite/neat/issues/neat_warnings/identifier.py +27 -0
  36. cognite/neat/issues/neat_warnings/models.py +22 -0
  37. cognite/neat/issues/neat_warnings/properties.py +77 -0
  38. cognite/neat/issues/neat_warnings/resources.py +125 -0
  39. cognite/neat/rules/exporters/_rules2dms.py +3 -2
  40. cognite/neat/rules/exporters/_rules2ontology.py +28 -20
  41. cognite/neat/rules/exporters/_validation.py +15 -21
  42. cognite/neat/rules/importers/__init__.py +7 -3
  43. cognite/neat/rules/importers/_base.py +3 -3
  44. cognite/neat/rules/importers/_dms2rules.py +39 -18
  45. cognite/neat/rules/importers/_dtdl2rules/dtdl_converter.py +44 -53
  46. cognite/neat/rules/importers/_dtdl2rules/dtdl_importer.py +6 -5
  47. cognite/neat/rules/importers/_rdf/__init__.py +0 -0
  48. cognite/neat/rules/importers/_rdf/_imf2rules/__init__.py +3 -0
  49. cognite/neat/rules/importers/_rdf/_imf2rules/_imf2classes.py +82 -0
  50. cognite/neat/rules/importers/_rdf/_imf2rules/_imf2metadata.py +34 -0
  51. cognite/neat/rules/importers/_rdf/_imf2rules/_imf2properties.py +123 -0
  52. cognite/neat/rules/importers/{_owl2rules/_owl2rules.py → _rdf/_imf2rules/_imf2rules.py} +15 -11
  53. cognite/neat/rules/importers/{_inference2rules.py → _rdf/_inference2rules.py} +1 -1
  54. cognite/neat/rules/importers/_rdf/_owl2rules/_owl2classes.py +57 -0
  55. cognite/neat/rules/importers/_rdf/_owl2rules/_owl2metadata.py +68 -0
  56. cognite/neat/rules/importers/_rdf/_owl2rules/_owl2properties.py +59 -0
  57. cognite/neat/rules/importers/_rdf/_owl2rules/_owl2rules.py +76 -0
  58. cognite/neat/rules/importers/_rdf/_shared.py +586 -0
  59. cognite/neat/rules/importers/_spreadsheet2rules.py +31 -28
  60. cognite/neat/rules/importers/_yaml2rules.py +2 -1
  61. cognite/neat/rules/issues/__init__.py +1 -5
  62. cognite/neat/rules/issues/base.py +2 -21
  63. cognite/neat/rules/issues/dms.py +20 -134
  64. cognite/neat/rules/issues/ontology.py +298 -0
  65. cognite/neat/rules/issues/spreadsheet.py +51 -3
  66. cognite/neat/rules/issues/tables.py +72 -0
  67. cognite/neat/rules/models/_rdfpath.py +4 -4
  68. cognite/neat/rules/models/_types/_field.py +14 -21
  69. cognite/neat/rules/models/asset/_validation.py +1 -1
  70. cognite/neat/rules/models/dms/_schema.py +53 -30
  71. cognite/neat/rules/models/dms/_validation.py +2 -2
  72. cognite/neat/rules/models/entities.py +3 -0
  73. cognite/neat/rules/models/information/_rules.py +5 -4
  74. cognite/neat/rules/models/information/_validation.py +1 -1
  75. cognite/neat/utils/rdf_.py +17 -9
  76. cognite/neat/utils/regex_patterns.py +52 -0
  77. cognite/neat/workflows/steps/lib/current/rules_importer.py +73 -1
  78. cognite/neat/workflows/steps/lib/current/rules_validator.py +19 -7
  79. {cognite_neat-0.88.0.dist-info → cognite_neat-0.88.2.dist-info}/METADATA +2 -6
  80. {cognite_neat-0.88.0.dist-info → cognite_neat-0.88.2.dist-info}/RECORD +85 -72
  81. cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css.map +0 -1
  82. cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js +0 -3
  83. cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.map +0 -1
  84. cognite/neat/graph/issues/loader.py +0 -104
  85. cognite/neat/graph/stores/_oxrdflib.py +0 -247
  86. cognite/neat/rules/exceptions.py +0 -2972
  87. cognite/neat/rules/importers/_owl2rules/_owl2classes.py +0 -215
  88. cognite/neat/rules/importers/_owl2rules/_owl2metadata.py +0 -213
  89. cognite/neat/rules/importers/_owl2rules/_owl2properties.py +0 -203
  90. cognite/neat/rules/issues/importing.py +0 -408
  91. cognite/neat/rules/models/_types/_base.py +0 -16
  92. cognite/neat/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -152
  93. cognite/neat/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -139
  94. cognite/neat/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -116
  95. /cognite/neat/{graph/issues → issues/errors}/__init__.py +0 -0
  96. /cognite/neat/rules/importers/{_owl2rules → _rdf/_owl2rules}/__init__.py +0 -0
  97. {cognite_neat-0.88.0.dist-info → cognite_neat-0.88.2.dist-info}/LICENSE +0 -0
  98. {cognite_neat-0.88.0.dist-info → cognite_neat-0.88.2.dist-info}/WHEEL +0 -0
  99. {cognite_neat-0.88.0.dist-info → cognite_neat-0.88.2.dist-info}/entry_points.txt +0 -0
@@ -1,408 +0,0 @@
1
- from abc import ABC
2
- from dataclasses import dataclass
3
- from typing import Any
4
-
5
- from .base import NeatValidationError, ValidationWarning
6
-
7
- __all__ = [
8
- "ModelImportWarning",
9
- "UnknownComponentWarning",
10
- "UnknownSubComponentWarning",
11
- "IgnoredComponentWarning",
12
- "UnknownPropertyWarning",
13
- "UnknownValueTypeWarning",
14
- "MissingContainerWarning",
15
- "MissingContainerPropertyWarning",
16
- "MultipleDataModelsWarning",
17
- "UnknownPropertyTypeWarning",
18
- "FailedToInferValueTypeWarning",
19
- "MoreThanOneNonAlphanumericCharacterWarning",
20
- "UnknownContainerConstraintWarning",
21
- "NoDataModelError",
22
- "ModelImportError",
23
- "InvalidComponentError",
24
- "MissingParentDefinitionError",
25
- "MissingIdentifierError",
26
- "UnsupportedPropertyTypeError",
27
- "APIError",
28
- "FailedImportWarning",
29
- ]
30
-
31
-
32
- @dataclass(frozen=True)
33
- class ModelImportWarning(ValidationWarning, ABC):
34
- description = "A warning was raised during importing."
35
-
36
-
37
- @dataclass(frozen=True)
38
- class UnknownComponentWarning(ModelImportWarning):
39
- description = "Unknown component this will be ignored in the imports."
40
- fix = "Check if the component is defined in the source file."
41
-
42
- component_type: str
43
- instance_name: str | None = None
44
- instance_id: str | None = None
45
-
46
- def dump(self) -> dict[str, str | None]:
47
- output = super().dump()
48
- output["component_type"] = self.component_type
49
- output["instance_name"] = self.instance_name
50
- output["instance_id"] = self.instance_id
51
- return output
52
-
53
- def message(self) -> str:
54
- if self.instance_name:
55
- prefix = f"Unknown component of type'{self.component_type}' with name '{self.instance_name}'."
56
- else:
57
- prefix = f"Unknown component '{self.component_type}'"
58
- return f"{prefix} This will be ignored in the imports."
59
-
60
-
61
- @dataclass(frozen=True)
62
- class UnknownSubComponentWarning(UnknownComponentWarning):
63
- sub_component: str | None = None
64
-
65
- def dump(self) -> dict[str, str | None]:
66
- output = super().dump()
67
- output["sub_component"] = self.sub_component
68
- return output
69
-
70
- def message(self) -> str:
71
- if self.instance_name:
72
- prefix = f"Unknown sub-component of type'{self.component_type}' with name '{self.instance_name}'."
73
- else:
74
- prefix = f"Unknown sub-component '{self.component_type}'"
75
- return f"{prefix} This will be ignored in the imports."
76
-
77
-
78
- @dataclass(frozen=True)
79
- class IgnoredComponentWarning(ModelImportWarning):
80
- description = "This will be ignored in the imports."
81
- fix = "No fix is available. "
82
-
83
- reason: str
84
- identifier: str | None = None
85
-
86
- def dump(self) -> dict[str, str | None]:
87
- output = super().dump()
88
- output["reason"] = self.reason
89
- output["identifier"] = self.identifier
90
- return output
91
-
92
- def message(self) -> str:
93
- if self.identifier:
94
- prefix = f"Identifier '{self.identifier}.' is ignored."
95
- else:
96
- prefix = "This is ignored."
97
- return f"{prefix} {self.reason}"
98
-
99
-
100
- @dataclass(frozen=True)
101
- class UnknownPropertyWarning(ValidationWarning):
102
- description = "Unknown property this will be ignored in the imports."
103
- fix = "Check if the property is defined in the DTDL file."
104
-
105
- component_type: str
106
- property_name: str
107
- instance_name: str | None = None
108
- instance_id: str | None = None
109
-
110
- def dump(self) -> dict[str, str | None]:
111
- output = super().dump()
112
- output["component_type"] = self.component_type
113
- output["property_name"] = self.property_name
114
- output["instance_name"] = self.instance_name
115
- output["instance_id"] = self.instance_id
116
- return output
117
-
118
- def message(self) -> str:
119
- if self.instance_name:
120
- prefix = (
121
- f"Unknown property '{self.property_name}' of component "
122
- f"'{self.component_type}' with name '{self.instance_name}'."
123
- )
124
- else:
125
- prefix = f"Unknown property '{self.property_name}' of component '{self.component_type}'"
126
- return f"{prefix} This will be ignored in the imports."
127
-
128
-
129
- @dataclass(frozen=True)
130
- class UnknownValueTypeWarning(ModelImportWarning):
131
- description = "Unknown value type. This limits validation done by NEAT. "
132
- fix = "Set the value type"
133
- class_id: str
134
- property_id: str
135
-
136
- def dump(self) -> dict[str, str]:
137
- return {"class_id": self.class_id, "property_id": self.property_id}
138
-
139
- def message(self) -> str:
140
- return (
141
- f"Unknown value type for property '{self.property_id}' of class '{self.class_id}'. "
142
- "This limits validation done by NEAT."
143
- )
144
-
145
-
146
- @dataclass(frozen=True)
147
- class MultipleDataModelsWarning(ModelImportWarning):
148
- description = "Multiple data models detected. This is not supported."
149
- fix = "Remove the extra data models."
150
-
151
- data_models: list[str]
152
-
153
- def message(self) -> str:
154
- return f"Multiple data models detected: {self.data_models}. Will only import the first one."
155
-
156
- def dump(self) -> dict[str, list[str]]:
157
- return {"data_models": self.data_models}
158
-
159
-
160
- @dataclass(frozen=True)
161
- class MissingContainerWarning(ModelImportWarning):
162
- description = "Missing container definition."
163
- fix = "Add a container definition."
164
-
165
- view_id: str
166
- property_: str
167
- container_id: str
168
-
169
- def message(self) -> str:
170
- return (
171
- f"Container '{self.container_id}' is missing. "
172
- f"Will skip property '{self.property_}' of view '{self.view_id}'."
173
- )
174
-
175
- def dump(self) -> dict[str, str]:
176
- return {"view_id": self.view_id, "property": self.property_, "container_id": self.container_id}
177
-
178
-
179
- @dataclass(frozen=True)
180
- class MissingContainerPropertyWarning(ModelImportWarning):
181
- description = "Missing container property definition."
182
- fix = "Add a container property definition."
183
-
184
- view_id: str
185
- property_: str
186
- container_id: str
187
-
188
- def message(self) -> str:
189
- return (
190
- f"Container '{self.container_id}' is missing property '{self.property_}'. "
191
- f"This property will be skipped for view '{self.view_id}'."
192
- )
193
-
194
- def dump(self) -> dict[str, str]:
195
- return {"view_id": self.view_id, "property": self.property_, "container_id": self.container_id}
196
-
197
-
198
- @dataclass(frozen=True)
199
- class UnknownPropertyTypeWarning(ModelImportWarning):
200
- description = "Unknown property type. This will be ignored in the imports."
201
- fix = "Set to a supported property type."
202
- view_id: str
203
- property_id: str
204
- property_type: str
205
-
206
- def message(self) -> str:
207
- return (
208
- f"Unknown property type '{self.property_type}' for property '{self.property_id}' "
209
- f"of view '{self.view_id}'. This will be ignored in the imports."
210
- )
211
-
212
- def dump(self) -> dict[str, str]:
213
- return {"view_id": self.view_id, "property_id": self.property_id, "property_type": self.property_type}
214
-
215
-
216
- @dataclass(frozen=True)
217
- class UnknownContainerConstraintWarning(ModelImportWarning):
218
- description = "Unknown container constraint. This will be ignored in the imports."
219
- fix = "Set to a supported container constraint."
220
- container_id: str
221
- property_id: str
222
- constraint: str
223
-
224
- def message(self) -> str:
225
- return (
226
- f"Unknown container constraint '{self.constraint}' for property '{self.property_id}' of container "
227
- f"'{self.container_id}'. This will be ignored in the imports."
228
- )
229
-
230
- def dump(self) -> dict[str, str]:
231
- return {"container_id": self.container_id, "property_id": self.property_id, "constraint": self.constraint}
232
-
233
-
234
- @dataclass(frozen=True)
235
- class FailedToInferValueTypeWarning(ModelImportWarning):
236
- description = "Failed to infer value type. This will be ignored in the imports."
237
- fix = "Set to a supported value type."
238
- view_id: str
239
- property_id: str
240
-
241
- def message(self) -> str:
242
- return (
243
- f"Failed to infer value type for property '{self.property_id}' of view '{self.view_id}'. "
244
- f"This will be ignored in the imports."
245
- )
246
-
247
- def dump(self) -> dict[str, str]:
248
- return {"view_id": self.view_id, "property_id": self.property_id}
249
-
250
-
251
- @dataclass(frozen=True)
252
- class APIWarning(ModelImportWarning):
253
- description = "An error was raised."
254
- fix = "No fix is available."
255
-
256
- error_message: str
257
-
258
- def message(self) -> str:
259
- return self.error_message
260
-
261
- def dump(self) -> dict[str, str]:
262
- return {"error_message": self.error_message}
263
-
264
-
265
- @dataclass(frozen=True)
266
- class FailedImportWarning(ModelImportWarning):
267
- description = "Failed to import part of the model."
268
- fix = "No fix is available."
269
-
270
- identifier: set[str]
271
-
272
- def message(self) -> str:
273
- return f"Failed to import: {self.identifier}. This will be skipped."
274
-
275
- def dump(self) -> dict[str, Any]:
276
- return {"identifier": list(self.identifier)}
277
-
278
-
279
- @dataclass(frozen=True)
280
- class MoreThanOneNonAlphanumericCharacterWarning(ModelImportWarning):
281
- description = """This warning is raised when doing regex validation of strings which either represent class ids,
282
- property ids, prefix, data model name, that contain more than one non-alphanumeric character,
283
- such as for example '_' or '-'."""
284
-
285
- field_name: str
286
- value: str
287
-
288
- def message(self) -> str:
289
- return f"Field {self.field_name} with value {self.value} contains more than one non-alphanumeric character!"
290
-
291
- def dump(self) -> dict[str, str]:
292
- return {"field_name": self.field_name, "value": self.value}
293
-
294
-
295
- @dataclass(frozen=True)
296
- class ModelImportError(NeatValidationError, ABC):
297
- description = "An error was raised during importing."
298
- fix = "No fix is available."
299
-
300
-
301
- @dataclass(frozen=True)
302
- class NoDataModelError(ModelImportError):
303
- description = "No data model found.."
304
- fix = "Check if the data model exists in the source."
305
-
306
- error_message: str
307
-
308
- def message(self) -> str:
309
- return self.error_message
310
-
311
- def dump(self) -> dict[str, str]:
312
- return {"error_message": self.error_message}
313
-
314
-
315
- @dataclass(frozen=True)
316
- class APIError(ModelImportError):
317
- description = "An error was raised during importing."
318
- fix = "No fix is available."
319
-
320
- error_message: str
321
-
322
- def message(self) -> str:
323
- return self.error_message
324
-
325
- def dump(self) -> dict[str, str]:
326
- return {"error_message": self.error_message}
327
-
328
-
329
- @dataclass(frozen=True)
330
- class InvalidComponentError(ModelImportError, ABC):
331
- description = "This is a base class for all errors related invalid component definitions"
332
- fix = "Check if the component is defined in the DTDL file."
333
-
334
- component_type: str
335
- instance_name: str | None = None
336
- instance_id: str | None = None
337
-
338
- def dump(self) -> dict[str, str | None]:
339
- output = super().dump()
340
- output["component_type"] = self.component_type
341
- output["instance_name"] = self.instance_name
342
- output["instance_id"] = self.instance_id
343
- return output
344
-
345
-
346
- @dataclass(frozen=True)
347
- class MissingParentDefinitionError(InvalidComponentError):
348
- description = "The parent component is missing"
349
- fix = "Check if the parent component is defined in the DTDL file."
350
-
351
- def message(self) -> str:
352
- if self.instance_name:
353
- return f"Parent component '{self.component_type}' with name '{self.instance_name}' is missing."
354
- else:
355
- return f"Parent component '{self.component_type}' is missing."
356
-
357
-
358
- @dataclass(frozen=True)
359
- class MissingIdentifierError(InvalidComponentError):
360
- description = "The identifier is missing"
361
- fix = "Check if the identifier is defined in the DTDL file."
362
-
363
- component_type: str
364
- instance_name: str | None = None
365
-
366
- def dump(self) -> dict[str, str | None]:
367
- output = super().dump()
368
- output["component_type"] = self.component_type
369
- output["instance_name"] = self.instance_name
370
- return output
371
-
372
- def message(self) -> str:
373
- if self.instance_name:
374
- return f"Identifier for component '{self.component_type}' with name '{self.instance_name}' is missing."
375
- else:
376
- return f"Identifier for component '{self.component_type}' is missing."
377
-
378
-
379
- @dataclass(frozen=True)
380
- class UnsupportedPropertyTypeError(ModelImportError):
381
- description = "The property type is not supported"
382
- fix = "Check if the property type is defined in the DTDL file."
383
- component_type: str
384
- property_name: str
385
- property_type: str
386
- instance_name: str | None = None
387
- instance_id: str | None = None
388
-
389
- def dump(self) -> dict[str, str | None]:
390
- output = super().dump()
391
- output["component_type"] = self.component_type
392
- output["property_name"] = self.property_name
393
- output["property_type"] = self.property_type
394
- output["instance_name"] = self.instance_name
395
- output["instance_id"] = self.instance_id
396
- return output
397
-
398
- def message(self) -> str:
399
- if self.instance_name:
400
- return (
401
- f"Property '{self.property_name}' of type '{self.property_type}' "
402
- f"of instance '{self.instance_name}' ({self.component_type}) is not supported."
403
- )
404
- else:
405
- return (
406
- f"Property '{self.property_name}' of type '{self.property_type}' "
407
- f"of instance '{self.instance_id}' ({self.component_type}) is not supported."
408
- )
@@ -1,16 +0,0 @@
1
- MORE_THAN_ONE_NONE_ALPHANUMERIC_REGEX = r"([_-]{2,})"
2
- PREFIX_COMPLIANCE_REGEX = r"^([a-zA-Z]+)([a-zA-Z0-9]*[_-]{0,1}[a-zA-Z0-9_-]*)([a-zA-Z0-9]*)$"
3
-
4
- VIEW_ID_COMPLIANCE_REGEX = (
5
- r"(?!^(Query|Mutation|Subscription|String|Int32|Int64|Int|Float32|Float64|Float|"
6
- r"Timestamp|JSONObject|Date|Numeric|Boolean|PageInfo|File|Sequence|TimeSeries)$)"
7
- r"(^[a-zA-Z][a-zA-Z0-9_]{0,253}[a-zA-Z0-9]?$)"
8
- )
9
- DMS_PROPERTY_ID_COMPLIANCE_REGEX = (
10
- r"(?!^(space|externalId|createdTime|lastUpdatedTime|deletedTime|edge_id|"
11
- r"node_id|project_id|property_group|seq|tg_table_name|extensions)$)"
12
- r"(^[a-zA-Z][a-zA-Z0-9_]{0,253}[a-zA-Z0-9]?$)"
13
- )
14
- CLASS_ID_COMPLIANCE_REGEX = r"(?!^(Class|class)$)(^[a-zA-Z][a-zA-Z0-9._-]{0,253}[a-zA-Z0-9]?$)"
15
- PROPERTY_ID_COMPLIANCE_REGEX = r"^(\*)|(?!^(Property|property)$)(^[a-zA-Z][a-zA-Z0-9._-]{0,253}[a-zA-Z0-9]?$)"
16
- VERSION_COMPLIANCE_REGEX = r"^[a-zA-Z0-9]([.a-zA-Z0-9_-]{0,41}[a-zA-Z0-9])?$"
@@ -1,152 +0,0 @@
1
- configs: []
2
- description: null
3
- implementation_module: null
4
- name: Export Rules to Ontology
5
- steps:
6
- - complex_configs: {}
7
- configs: {}
8
- description: null
9
- enabled: true
10
- id: step_trigger
11
- label: Workflow Trigger
12
- max_retries: 0
13
- method: null
14
- params: {}
15
- retry_delay: 3
16
- stype: http_trigger
17
- system_component_id: null
18
- transition_to:
19
- - step_import_excel_rules
20
- trigger: true
21
- ui_config:
22
- pos_x: 480
23
- pos_y: 45
24
- - complex_configs: {}
25
- configs:
26
- file_name: skos-rules.xlsx
27
- validation_report_file: rules_validation_report.txt
28
- validation_report_storage_dir: rules_validation_report
29
- version: ""
30
- description: null
31
- enabled: true
32
- id: step_import_excel_rules
33
- label: Import Excel Rules
34
- max_retries: 0
35
- method: ImportExcelToRules
36
- params: {}
37
- retry_delay: 3
38
- stype: stdstep
39
- system_component_id: null
40
- transition_to:
41
- - step_export_rules_to_ontology
42
- trigger: false
43
- ui_config:
44
- pos_x: 481
45
- pos_y: 120
46
- - complex_configs: {}
47
- configs:
48
- ontology_file_path: staging/ontology.ttl
49
- description: null
50
- enabled: true
51
- id: step_export_rules_to_ontology
52
- label: Export Rules To Ontology
53
- max_retries: 0
54
- method: ExportRulesToOntology
55
- params: {}
56
- retry_delay: 3
57
- stype: stdstep
58
- system_component_id: null
59
- transition_to:
60
- - step_export_rules_to_shacle
61
- trigger: false
62
- ui_config:
63
- pos_x: 478
64
- pos_y: 191
65
- - complex_configs: {}
66
- configs:
67
- db_server_api_root_url: ""
68
- disk_store_dir: ontology-graph-store
69
- graph_name: source
70
- init_procedure: reset
71
- sparql_query_url: ""
72
- sparql_update_url: ""
73
- store_type: oxigraph
74
- description: null
75
- enabled: true
76
- id: step_configure_graph_store
77
- label: Configure Graph Store
78
- max_retries: 0
79
- method: ConfigureGraphStore
80
- params: {}
81
- retry_delay: 3
82
- stype: stdstep
83
- system_component_id: null
84
- transition_to:
85
- - step_load_ontology_to_graph_store
86
- trigger: false
87
- ui_config:
88
- pos_x: 479
89
- pos_y: 383
90
- - complex_configs: {}
91
- configs:
92
- add_base_iri: "True"
93
- file_path: staging/ontology.ttl
94
- mime_type: text/turtle
95
- description: null
96
- enabled: true
97
- id: step_load_ontology_to_graph_store
98
- label: Load Ontology To Graph Store
99
- max_retries: 0
100
- method: ExtractGraphFromRdfFile
101
- params: {}
102
- retry_delay: 3
103
- stype: stdstep
104
- system_component_id: null
105
- transition_to:
106
- - step_load_shacl_to_graph
107
- trigger: false
108
- ui_config:
109
- pos_x: 479
110
- pos_y: 455
111
- - complex_configs: {}
112
- configs:
113
- file_name: shacl.ttl
114
- shacl_file_path: staging/shacl.ttl
115
- storage_dir: staging
116
- description: null
117
- enabled: true
118
- id: step_export_rules_to_shacle
119
- label: Export Rules to Shacl
120
- max_retries: 0
121
- method: ExportRulesToSHACL
122
- params: {}
123
- retry_delay: 3
124
- stype: stdstep
125
- system_component_id: null
126
- transition_to:
127
- - step_configure_graph_store
128
- trigger: false
129
- ui_config:
130
- pos_x: 480
131
- pos_y: 291
132
- - complex_configs: {}
133
- configs:
134
- add_base_iri: "True"
135
- file_path: staging/shacl.ttl
136
- mime_type: text/turtle
137
- description: null
138
- enabled: true
139
- id: step_load_shacl_to_graph
140
- label: Load SHACL to Graph Store
141
- max_retries: 0
142
- method: ExtractGraphFromRdfFile
143
- params: {}
144
- retry_delay: 3
145
- stype: stdstep
146
- system_component_id: null
147
- transition_to: []
148
- trigger: false
149
- ui_config:
150
- pos_x: 475
151
- pos_y: 542
152
- system_components: []