cognite-neat 0.123.12__tar.gz → 0.123.14__tar.gz

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 (642) hide show
  1. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/PKG-INFO +1 -1
  2. cognite_neat-0.123.14/cognite/neat/_version.py +2 -0
  3. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_rdf/_owl2data_model.py +20 -16
  4. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_rdf/_shared.py +23 -15
  5. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/conceptual/_unverified.py +1 -1
  6. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/conceptual/_validation.py +16 -4
  7. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/conceptual/_verified.py +1 -1
  8. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/_models.py +10 -0
  9. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/spreadsheet.py +4 -0
  10. cognite_neat-0.123.14/last_changelog_entry.md +4 -0
  11. cognite_neat-0.123.14/last_git_message.txt +39 -0
  12. cognite_neat-0.123.14/last_version.txt +1 -0
  13. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/pyproject.toml +1 -1
  14. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/__init__.py +1 -0
  15. cognite_neat-0.123.14/tests/data/_schema/conceptual/dangling-properties.xlsx +0 -0
  16. cognite_neat-0.123.14/tests/data/_schema/conceptual/ontology.ttl +89 -0
  17. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/test_excel_importer.py +14 -0
  18. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/test_owl_importer.py +29 -5
  19. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_conceptual_model.py +72 -10
  20. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/uv.lock +1 -1
  21. cognite_neat-0.123.12/cognite/neat/_version.py +0 -2
  22. cognite_neat-0.123.12/last_changelog_entry.md +0 -3
  23. cognite_neat-0.123.12/last_git_message.txt +0 -24
  24. cognite_neat-0.123.12/last_version.txt +0 -1
  25. cognite_neat-0.123.12/tests/data/_schema/conceptual/ontology.ttl +0 -42
  26. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.coveragerc +0 -0
  27. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/CODEOWNERS +0 -0
  28. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  29. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  30. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/pull_request_template.md +0 -0
  31. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/renovate.json +0 -0
  32. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/workflows/code-quality.yaml +0 -0
  33. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.github/workflows/release.yaml +0 -0
  34. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.gitignore +0 -0
  35. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.pre-commit-config.yaml +0 -0
  36. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/.readthedocs.yaml +0 -0
  37. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/CODE_OF_CONDUCT.md +0 -0
  38. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/CONTRIBUTING.md +0 -0
  39. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/LICENSE +0 -0
  40. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/README.md +0 -0
  41. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cdf.toml +0 -0
  42. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/codecov.yml +0 -0
  43. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/__init__.py +0 -0
  44. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/__init__.py +0 -0
  45. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/__init__.py +0 -0
  46. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api/__init__.py +0 -0
  47. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api/data_modeling_loaders.py +0 -0
  48. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api/neat_instances.py +0 -0
  49. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api/schema.py +0 -0
  50. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api/statistics.py +0 -0
  51. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/_api_client.py +0 -0
  52. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/data_classes/__init__.py +0 -0
  53. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/data_classes/data_modeling.py +0 -0
  54. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/data_classes/neat_sequence.py +0 -0
  55. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/data_classes/schema.py +0 -0
  56. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/data_classes/statistics.py +0 -0
  57. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_client/testing.py +0 -0
  58. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_config.py +0 -0
  59. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_constants.py +0 -0
  60. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/__init__.py +0 -0
  61. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/_constants.py +0 -0
  62. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/_shared.py +0 -0
  63. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/analysis/__init__.py +0 -0
  64. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/analysis/_base.py +0 -0
  65. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/catalog/__init__.py +0 -0
  66. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/catalog/classic_model.xlsx +0 -0
  67. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
  68. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
  69. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/__init__.py +0 -0
  70. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_base.py +0 -0
  71. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_data_model2dms.py +0 -0
  72. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_data_model2excel.py +0 -0
  73. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_data_model2instance_template.py +0 -0
  74. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_data_model2ontology.py +0 -0
  75. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/exporters/_data_model2yaml.py +0 -0
  76. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/__init__.py +0 -0
  77. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_base.py +0 -0
  78. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_base_file_reader.py +0 -0
  79. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_dict2data_model.py +0 -0
  80. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_dms2data_model.py +0 -0
  81. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_rdf/__init__.py +0 -0
  82. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_rdf/_base.py +0 -0
  83. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
  84. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
  85. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/__init__.py +0 -0
  86. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/_base_unverified.py +0 -0
  87. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/_base_verified.py +0 -0
  88. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/_types.py +0 -0
  89. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/conceptual/__init__.py +0 -0
  90. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/data_types.py +0 -0
  91. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/__init__.py +0 -0
  92. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_constants.py +0 -0
  93. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_loaders.py +0 -0
  94. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_multi_value.py +0 -0
  95. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_single_value.py +0 -0
  96. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_types.py +0 -0
  97. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/entities/_wrapped.py +0 -0
  98. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/mapping/__init__.py +0 -0
  99. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/mapping/_classic2core.py +0 -0
  100. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/mapping/_classic2core.yaml +0 -0
  101. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/physical/__init__.py +0 -0
  102. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/physical/_exporter.py +0 -0
  103. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/physical/_unverified.py +0 -0
  104. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/physical/_validation.py +0 -0
  105. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/models/physical/_verified.py +0 -0
  106. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/transformers/__init__.py +0 -0
  107. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/transformers/_base.py +0 -0
  108. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/transformers/_converters.py +0 -0
  109. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/transformers/_mapping.py +0 -0
  110. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_data_model/transformers/_verification.py +0 -0
  111. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/__init__.py +0 -0
  112. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/_shared.py +0 -0
  113. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/_tracking/__init__.py +0 -0
  114. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/_tracking/base.py +0 -0
  115. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/_tracking/log.py +0 -0
  116. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  117. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
  118. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/examples/__init__.py +0 -0
  119. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  120. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/__init__.py +0 -0
  121. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_base.py +0 -0
  122. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
  123. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
  124. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_base.py +0 -0
  125. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
  126. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
  127. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_events.py +0 -0
  128. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_files.py +0 -0
  129. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
  130. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
  131. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
  132. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
  133. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_dict.py +0 -0
  134. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_dms.py +0 -0
  135. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_dms_graph.py +0 -0
  136. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_mock_graph_generator.py +0 -0
  137. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_raw.py +0 -0
  138. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/extractors/_rdf_file.py +0 -0
  139. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/loaders/__init__.py +0 -0
  140. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/loaders/_base.py +0 -0
  141. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/loaders/_rdf2dms.py +0 -0
  142. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
  143. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/queries/__init__.py +0 -0
  144. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/queries/_base.py +0 -0
  145. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/queries/_queries.py +0 -0
  146. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/queries/_select.py +0 -0
  147. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/queries/_update.py +0 -0
  148. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/__init__.py +0 -0
  149. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/_base.py +0 -0
  150. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/_classic_cdf.py +0 -0
  151. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/_prune_graph.py +0 -0
  152. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/_rdfpath.py +0 -0
  153. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_instances/transformers/_value_type.py +0 -0
  154. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/__init__.py +0 -0
  155. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/_base.py +0 -0
  156. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/_contextmanagers.py +0 -0
  157. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/_factory.py +0 -0
  158. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/__init__.py +0 -0
  159. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/_external.py +0 -0
  160. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/_general.py +0 -0
  161. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/_properties.py +0 -0
  162. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/_resources.py +0 -0
  163. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/errors/_wrapper.py +0 -0
  164. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/formatters.py +0 -0
  165. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/__init__.py +0 -0
  166. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/_external.py +0 -0
  167. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/_general.py +0 -0
  168. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/_properties.py +0 -0
  169. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/_resources.py +0 -0
  170. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_issues/warnings/user_modeling.py +0 -0
  171. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_shared.py +0 -0
  172. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_store/__init__.py +0 -0
  173. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_store/_data_model.py +0 -0
  174. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_store/_instance.py +0 -0
  175. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_store/_provenance.py +0 -0
  176. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_store/exceptions.py +0 -0
  177. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/__init__.py +0 -0
  178. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/auth.py +0 -0
  179. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/auxiliary.py +0 -0
  180. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/collection_.py +0 -0
  181. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/graph_transformations_report.py +0 -0
  182. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/io_.py +0 -0
  183. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/rdf_.py +0 -0
  184. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/reader/__init__.py +0 -0
  185. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/reader/_base.py +0 -0
  186. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/tarjan.py +0 -0
  187. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/text.py +0 -0
  188. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/time_.py +0 -0
  189. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/upload.py +0 -0
  190. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/core/_utils/xml_.py +0 -0
  191. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/__init__.py +0 -0
  192. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/_issues.py +0 -0
  193. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/_manager.py +0 -0
  194. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/data_model/__init__.py +0 -0
  195. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/data_model/importers/__init__.py +0 -0
  196. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/plugins/data_model/importers/_base.py +0 -0
  197. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/py.typed +0 -0
  198. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/__init__.py +0 -0
  199. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_base.py +0 -0
  200. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_collector.py +0 -0
  201. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_drop.py +0 -0
  202. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_experimental.py +0 -0
  203. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_explore.py +0 -0
  204. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_fix.py +0 -0
  205. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_inspect.py +0 -0
  206. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_mapping.py +0 -0
  207. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_plugin.py +0 -0
  208. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_prepare.py +0 -0
  209. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_read.py +0 -0
  210. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_set.py +0 -0
  211. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_show.py +0 -0
  212. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_state/README.md +0 -0
  213. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_state.py +0 -0
  214. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_subset.py +0 -0
  215. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_template.py +0 -0
  216. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_to.py +0 -0
  217. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/_wizard.py +0 -0
  218. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/engine/__init__.py +0 -0
  219. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/engine/_import.py +0 -0
  220. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/engine/_interface.py +0 -0
  221. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/engine/_load.py +0 -0
  222. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/cognite/neat/session/exceptions.py +0 -0
  223. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/dev.py +0 -0
  224. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
  225. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
  226. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
  227. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
  228. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/aml-dm.png +0 -0
  229. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
  230. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/aml-instances-full.png +0 -0
  231. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
  232. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
  233. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
  234. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
  235. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
  236. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/authorship.png +0 -0
  237. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/base-components.png +0 -0
  238. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
  239. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/change_validate_step.png +0 -0
  240. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
  241. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
  242. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
  243. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/container_spec.png +0 -0
  244. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/core_extension.png +0 -0
  245. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/core_extension_excel.png +0 -0
  246. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
  247. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
  248. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/data-exploration.gif +0 -0
  249. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/data-model-nordic44.png +0 -0
  250. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/data-modeling-flow.png +0 -0
  251. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
  252. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
  253. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
  254. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
  255. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
  256. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm-classes.png +0 -0
  257. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm-object-shapes.png +0 -0
  258. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm-prefixes.png +0 -0
  259. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
  260. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
  261. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
  262. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/execution-history.gif +0 -0
  263. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/export_dms_config.png +0 -0
  264. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/export_dms_executed.png +0 -0
  265. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/export_dms_workflow.png +0 -0
  266. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/features.png +0 -0
  267. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/graph-etl-flow.png +0 -0
  268. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/high-level-io.png +0 -0
  269. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/instances-nordic44.png +0 -0
  270. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/instances-sheet.png +0 -0
  271. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
  272. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
  273. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
  274. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
  275. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
  276. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
  277. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
  278. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/logo.png +0 -0
  279. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/metadata-sheet.png +0 -0
  280. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/multi-hop.png +0 -0
  281. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/neat-high-level.png +0 -0
  282. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/neat-two_flows.png +0 -0
  283. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/neat_shift_tab.png +0 -0
  284. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/neat_tab.png +0 -0
  285. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/prefixes-sheet.png +0 -0
  286. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
  287. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
  288. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
  289. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
  290. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
  291. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
  292. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
  293. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
  294. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
  295. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/run_workflow.png +0 -0
  296. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
  297. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
  298. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
  299. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
  300. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
  301. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
  302. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
  303. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/step-configurables.png +0 -0
  304. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/step-metrics.png +0 -0
  305. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
  306. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/validate_workflow.png +0 -0
  307. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
  308. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wf-overview.gif +0 -0
  309. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
  310. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
  311. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
  312. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
  313. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
  314. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/work-in-progress.png +0 -0
  315. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/workflow-context.jpg +0 -0
  316. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
  317. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
  318. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
  319. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
  320. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
  321. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
  322. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
  323. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
  324. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
  325. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
  326. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
  327. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
  328. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
  329. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
  330. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
  331. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
  332. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
  333. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
  334. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
  335. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
  336. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
  337. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
  338. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
  339. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
  340. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
  341. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/data-modeling-principles.md +0 -0
  342. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/conceptual/overview.md +0 -0
  343. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/conceptual/reference.md +0 -0
  344. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/data_model.md +0 -0
  345. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/physical/enum.md +0 -0
  346. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/physical/overview.md +0 -0
  347. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/physical/properties.md +0 -0
  348. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/physical/reference.md +0 -0
  349. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/physical/views.md +0 -0
  350. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/excel_data_modeling/units.md +0 -0
  351. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/gettingstarted/installation.md +0 -0
  352. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/gettingstarted/why-neat.md +0 -0
  353. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/index.md +0 -0
  354. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/base.md +0 -0
  355. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/drop.md +0 -0
  356. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/fix.md +0 -0
  357. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/inspect.md +0 -0
  358. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/mapping.md +0 -0
  359. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/prepare.md +0 -0
  360. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/read.md +0 -0
  361. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/set.md +0 -0
  362. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/show.md +0 -0
  363. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/subset.md +0 -0
  364. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/template.md +0 -0
  365. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/NeatSession/to.md +0 -0
  366. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/issues/base.md +0 -0
  367. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/issues/errors.md +0 -0
  368. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/issues/user_model_warnings.md +0 -0
  369. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/issues/warnings.md +0 -0
  370. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/reference/overview.md +0 -0
  371. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
  372. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
  373. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
  374. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
  375. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
  376. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
  377. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
  378. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
  379. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
  380. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
  381. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
  382. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/docs/tutorials/introduction/introduction.ipynb +0 -0
  383. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/mkdocs.yml +0 -0
  384. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/clean_space.py +0 -0
  385. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/core_classic_mapping.xlsx +0 -0
  386. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/create_classic_core_mapping_yaml.py +0 -0
  387. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/dependency_profiler.py +0 -0
  388. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/docs_generate_reference.py +0 -0
  389. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/docs_generate_unit.py +0 -0
  390. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/generate_steps_md.py +0 -0
  391. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/.gitignore +0 -0
  392. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/README.md +0 -0
  393. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/config.dev.yaml +0 -0
  394. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
  395. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
  396. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
  397. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
  398. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
  399. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
  400. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
  401. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
  402. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
  403. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
  404. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
  405. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
  406. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
  407. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
  408. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
  409. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
  410. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
  411. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
  412. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
  413. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
  414. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
  415. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
  416. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
  417. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
  418. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
  419. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
  420. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
  421. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
  422. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/manual_test_dms_importer.py +0 -0
  423. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/migration.py +0 -0
  424. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/oxi_remote/README.md +0 -0
  425. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/oxi_remote/docker-compose.yaml +0 -0
  426. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/test_lookup_table.csv +0 -0
  427. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/scripts/windfarm_to_toolkit.py +0 -0
  428. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/__init__.py +0 -0
  429. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/config.py +0 -0
  430. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/conftest.py +0 -0
  431. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/aml-raw-graph.ttl +0 -0
  432. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/aml_example.aml +0 -0
  433. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/car.py +0 -0
  434. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/dexpi-raw-graph.ttl +0 -0
  435. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/dexpi_example.xml +0 -0
  436. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/iodd_Piab-piCOMPACT10X-20230509-IODD1.1.xml +0 -0
  437. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_graph/low-quality-graph.ttl +0 -0
  438. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/assets.yaml +0 -0
  439. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/events.yaml +0 -0
  440. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/files.yaml +0 -0
  441. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/labels.yaml +0 -0
  442. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/relationships.yaml +0 -0
  443. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/sequence_rows.yaml +0 -0
  444. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/sequences.yaml +0 -0
  445. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/asset_centric_cdf/timeseries.yaml +0 -0
  446. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_instances/classic_windfarm.py +0 -0
  447. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conceptual/broken_concepts.xlsx +0 -0
  448. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conceptual/info-arch-car-rules.xlsx +0 -0
  449. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conceptual/info_with_cdm_ref.xlsx +0 -0
  450. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conceptual/information-unknown-value-type.xlsx +0 -0
  451. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conceptual/only_concepts.xlsx +0 -0
  452. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conversion/single_concept.conceptual.yaml +0 -0
  453. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/conversion/single_concept.physical.yaml +0 -0
  454. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/non_neat/cognite_core_v1.zip +0 -0
  455. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/non_neat/referencing_core/MyDescribable.container.yaml +0 -0
  456. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/non_neat/referencing_core/MyDescribable.view.yaml +0 -0
  457. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/non_neat/referencing_core/enterprise.datamodel.yaml +0 -0
  458. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/non_neat/windturbine.py +0 -0
  459. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/partial-model/complete.xlsx +0 -0
  460. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/partial-model/part1.xlsx +0 -0
  461. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/partial-model/part2.ttl +0 -0
  462. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/partial-model/part3.yaml +0 -0
  463. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/car_dms_rules.xlsx +0 -0
  464. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/car_dms_rules_deprecated.xlsx +0 -0
  465. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/dm_raw_filter.xlsx +0 -0
  466. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/dm_view_space_different.xlsx +0 -0
  467. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/dms-unknown-value-type.xlsx +0 -0
  468. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/isa_plus_cdm.xlsx +0 -0
  469. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/missing-in-model-value.xlsx +0 -0
  470. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/mixed-up-version.xlsx +0 -0
  471. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/physical_singleton_issue.xlsx +0 -0
  472. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/pump_example_duplicated_resources.xlsx +0 -0
  473. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/pump_example_with_missing_cells.xlsx +0 -0
  474. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/pump_example_with_missing_cells_raise_issues.xlsx +0 -0
  475. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/1.Production.container.yaml +0 -0
  476. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/10.SimNode.container.yaml +0 -0
  477. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/12.SimSubNode.container.yaml +0 -0
  478. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/13.SimEdge.container.yaml +0 -0
  479. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/14.Property.container.yaml +0 -0
  480. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/15.Coordinate.container.yaml +0 -0
  481. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/16.Coordinates.container.yaml +0 -0
  482. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/17.ModelExecutionEnvironment.view.yaml +0 -0
  483. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/18.Coordinate.view.yaml +0 -0
  484. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/19.Coordinates.view.yaml +0 -0
  485. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/2.SimulationModel.container.yaml +0 -0
  486. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/20.SimEdge.view.yaml +0 -0
  487. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/21.ProductionTimeseries.view.yaml +0 -0
  488. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/22.SimNode.view.yaml +0 -0
  489. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/23.Production.view.yaml +0 -0
  490. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/24.SimSubNode.view.yaml +0 -0
  491. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/25.SimulationResultFile.view.yaml +0 -0
  492. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/26.InputProperty.view.yaml +0 -0
  493. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/28.OutputProperty.view.yaml +0 -0
  494. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/29.Property.view.yaml +0 -0
  495. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/3.strongly-coupled-model.datamodel.yaml +0 -0
  496. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/30.SimulationModel.view.yaml +0 -0
  497. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/31.SimNodeAndEdge.view.yaml +0 -0
  498. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/5.my.space.yaml +0 -0
  499. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/6.ModelExecutionEnvironment.container.yaml +0 -0
  500. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/7.ProductionTimeseries.container.yaml +0 -0
  501. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/8.SimNodeAndEdge.container.yaml +0 -0
  502. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical/strongly_connected_model/data_models/9.SimulationResultFile.container.yaml +0 -0
  503. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_invalid/inconsistent_container_dms_rules.xlsx +0 -0
  504. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
  505. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_invalid/invalid_property_dms_rules.xlsx +0 -0
  506. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_invalid/missing_view_container_dms_rules.xlsx +0 -0
  507. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_invalid/too_many_containers_per_view.xlsx +0 -0
  508. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/invalid_indices.expected_issues.yaml +0 -0
  509. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/invalid_indices.yaml +0 -0
  510. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/invalid_yaml.expected_issues.yaml +0 -0
  511. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/invalid_yaml.yaml +0 -0
  512. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/multiple_indices_on_property.yaml +0 -0
  513. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.expected_issues.yaml +0 -0
  514. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.yaml +0 -0
  515. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/__init__.py +0 -0
  516. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
  517. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
  518. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
  519. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
  520. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_end_to_end/test_rules_flow.py +0 -0
  521. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/__init__.py +0 -0
  522. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/conftest.py +0 -0
  523. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_api/__init__.py +0 -0
  524. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_api/test_conversion.py +0 -0
  525. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_api/test_validate_rules.py +0 -0
  526. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_client_available.py +0 -0
  527. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_graph/__init__.py +0 -0
  528. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_graph/test_loaders/__init__.py +0 -0
  529. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
  530. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_neat_client/__init__.py +0 -0
  531. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
  532. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_neat_client/test_statistics.py +0 -0
  533. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_rules/__init__.py +0 -0
  534. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_rules/test_exporters/__init__.py +0 -0
  535. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
  536. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_rules/test_importers/__init__.py +0 -0
  537. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/__init__.py +0 -0
  538. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_create_enterprise.py +0 -0
  539. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
  540. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
  541. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
  542. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
  543. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
  544. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_data_model_to.py +0 -0
  545. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
  546. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
  547. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
  548. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
  549. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +0 -0
  550. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
  551. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_graph_flow.py +0 -0
  552. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
  553. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_session/test_read.py +0 -0
  554. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_utils/__init__.py +0 -0
  555. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_integration/test_utils/test_reader.py +0 -0
  556. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/__init__.py +0 -0
  557. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/__init__.py +0 -0
  558. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/__init__.py +0 -0
  559. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
  560. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
  561. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
  562. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
  563. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
  564. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
  565. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
  566. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
  567. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
  568. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
  569. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_graph_read.py +0 -0
  570. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_loaders/__init__.py +0 -0
  571. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_loaders/test_dms_loader.py +0 -0
  572. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -0
  573. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +0 -0
  574. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_provenance.py +0 -0
  575. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/__init__.py +0 -0
  576. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
  577. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
  578. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
  579. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
  580. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
  581. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
  582. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
  583. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
  584. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
  585. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
  586. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
  587. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_issues/__init__.py +0 -0
  588. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_issues/test_formatters.py +0 -0
  589. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_issues/test_issue_behavior.py +0 -0
  590. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_issues/test_issues_metatests.py +0 -0
  591. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_neat_client/__init__.py +0 -0
  592. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_neat_client/test_instances.py +0 -0
  593. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_neat_client/test_loaders.py +0 -0
  594. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_neat_client/test_schema.py +0 -0
  595. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_neat_package_metadata.py +0 -0
  596. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_plugins.py +0 -0
  597. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/__init__.py +0 -0
  598. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_analysis.py +0 -0
  599. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/__init__.py +0 -0
  600. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
  601. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
  602. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
  603. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
  604. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
  605. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/__init__.py +0 -0
  606. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/constants.py +0 -0
  607. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
  608. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/test_inference_importer.py +0 -0
  609. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
  610. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/__init__.py +0 -0
  611. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
  612. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
  613. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_data_types.py +0 -0
  614. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
  615. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_entities.py +0 -0
  616. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
  617. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_physical_data_model.py +0 -0
  618. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
  619. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_models/utils.py +0 -0
  620. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_transformers/__init__.py +0 -0
  621. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
  622. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
  623. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
  624. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/__init__.py +0 -0
  625. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/test_flows.py +0 -0
  626. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/test_meta.py +0 -0
  627. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/test_plugin.py +0 -0
  628. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/test_read.py +0 -0
  629. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_session/test_to_yaml.py +0 -0
  630. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_store/__init__.py +0 -0
  631. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_store/test_select_queries.py +0 -0
  632. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
  633. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_store/tests_rules_store.py +0 -0
  634. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/__init__.py +0 -0
  635. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
  636. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_cdf_classes.py +0 -0
  637. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_rdf.py +0 -0
  638. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_reader.py +0 -0
  639. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_tarjan.py +0 -0
  640. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_text.py +0 -0
  641. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/tests_unit/test_utils/test_utils.py +0 -0
  642. {cognite_neat-0.123.12 → cognite_neat-0.123.14}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-neat
3
- Version: 0.123.12
3
+ Version: 0.123.14
4
4
  Summary: Knowledge graph transformation
5
5
  Project-URL: Documentation, https://cognite-neat.readthedocs-hosted.com/
6
6
  Project-URL: Homepage, https://cognite-neat.readthedocs-hosted.com/
@@ -0,0 +1,2 @@
1
+ __version__ = "0.123.14"
2
+ __engine__ = "^2.0.4"
@@ -25,6 +25,8 @@ CLASSES_QUERY = """SELECT ?concept ?name ?description ?implements
25
25
  }}
26
26
  """
27
27
 
28
+ CLASSES_QUERY_PARAMETERS = {"concept", "name", "description", "implements"}
29
+
28
30
  PROPERTIES_QUERY = """
29
31
 
30
32
  SELECT ?concept ?property_ ?name ?description ?value_type ?minCount ?maxCount ?default
@@ -44,34 +46,36 @@ PROPERTIES_QUERY = """
44
46
  FILTER (!bound(?description) || LANG(?description) = "" || LANGMATCHES(LANG(?description), "{language}"))
45
47
  }}
46
48
  """
49
+ PROPERTIES_QUERY_PARAMETERS = {
50
+ "concept",
51
+ "property_",
52
+ "name",
53
+ "description",
54
+ "value_type",
55
+ "minCount",
56
+ "maxCount",
57
+ "default",
58
+ }
47
59
 
48
60
 
49
61
  class OWLImporter(BaseRDFImporter):
50
62
  """Convert OWL ontology to unverified data model.
51
63
 
52
- Args:
53
- filepath: Path to OWL ontology
54
-
55
- !!! Note
56
- OWL Ontologies are information models which completeness varies. As such, constructing functional
57
- data model directly will often be impossible, therefore the produced data model object will be ill formed.
58
- To avoid this, neat will automatically attempt to make the imported data model compliant by adding default
59
- values for missing information, attaching dangling properties to default containers based on the
60
- property type, etc.
61
-
62
- One has to be aware that NEAT will be opinionated about how to make the ontology
63
- compliant, and that the resulting data model may not be what you expect.
64
-
64
+ Args:
65
+ filepath: Path to OWL ontology
65
66
  """
66
67
 
67
68
  def _to_data_model_components(
68
69
  self,
69
70
  ) -> dict:
70
- concepts, issue_list = parse_concepts(self.graph, CLASSES_QUERY, self.language, self.issue_list)
71
+ concepts, issue_list = parse_concepts(
72
+ self.graph, CLASSES_QUERY, CLASSES_QUERY_PARAMETERS, self.language, self.issue_list
73
+ )
71
74
  self.issue_list = issue_list
72
75
 
73
- # NeatError
74
- properties, issue_list = parse_properties(self.graph, PROPERTIES_QUERY, self.language, self.issue_list)
76
+ properties, issue_list = parse_properties(
77
+ self.graph, PROPERTIES_QUERY, PROPERTIES_QUERY_PARAMETERS, self.language, self.issue_list
78
+ )
75
79
  self.issue_list = issue_list
76
80
 
77
81
  components = {
@@ -14,12 +14,17 @@ from cognite.neat.core._issues.warnings._resources import (
14
14
  from cognite.neat.core._utils.rdf_ import convert_rdflib_content
15
15
 
16
16
 
17
- def parse_concepts(graph: Graph, query: str, language: str, issue_list: IssueList) -> tuple[dict, IssueList]:
17
+ def parse_concepts(
18
+ graph: Graph, query: str, parameters: set, language: str, issue_list: IssueList
19
+ ) -> tuple[dict, IssueList]:
18
20
  """Parse concepts from graph
19
21
 
20
22
  Args:
21
23
  graph: Graph containing concept definitions
24
+ query: SPARQL query to use for parsing concepts
25
+ parameters: Set of parameters to extract from the query results
22
26
  language: Language to use for parsing, by default "en"
27
+ issue_list: List to collect issues during parsing
23
28
 
24
29
  Returns:
25
30
  Dataframe containing owl classes
@@ -28,11 +33,10 @@ def parse_concepts(graph: Graph, query: str, language: str, issue_list: IssueLis
28
33
  concepts: dict[str, dict] = {}
29
34
 
30
35
  query = prepareQuery(query.format(language=language), initNs={k: v for k, v in graph.namespaces()})
31
- expected_keys = [str(v) for v in query.algebra._vars]
32
36
 
33
37
  for raw in graph.query(query):
34
38
  res: dict = convert_rdflib_content(cast(ResultRow, raw).asdict(), True)
35
- res = {key: res.get(key, None) for key in expected_keys}
39
+ res = {key: res.get(key, None) for key in parameters}
36
40
 
37
41
  # Quote the concept id to ensure it is web-safe
38
42
  res["concept"] = quote(res["concept"], safe="")
@@ -75,12 +79,17 @@ def parse_concepts(graph: Graph, query: str, language: str, issue_list: IssueLis
75
79
  return concepts, issue_list
76
80
 
77
81
 
78
- def parse_properties(graph: Graph, query: str, language: str, issue_list: IssueList) -> tuple[dict, IssueList]:
82
+ def parse_properties(
83
+ graph: Graph, query: str, parameters: set, language: str, issue_list: IssueList
84
+ ) -> tuple[dict, IssueList]:
79
85
  """Parse properties from graph
80
86
 
81
87
  Args:
82
- graph: Graph containing owl classes
88
+ graph: Graph containing property definitions
89
+ query: SPARQL query to use for parsing properties
90
+ parameters: Set of parameters to extract from the query results
83
91
  language: Language to use for parsing, by default "en"
92
+ issue_list: List to collect issues during parsing
84
93
 
85
94
  Returns:
86
95
  Dataframe containing owl classes
@@ -89,41 +98,40 @@ def parse_properties(graph: Graph, query: str, language: str, issue_list: IssueL
89
98
  properties: dict[str, dict] = {}
90
99
 
91
100
  query = prepareQuery(query.format(language=language), initNs={k: v for k, v in graph.namespaces()})
92
- expected_keys = [str(v) for v in query.algebra._vars]
93
101
 
94
102
  for raw in graph.query(query):
95
103
  res: dict = convert_rdflib_content(cast(ResultRow, raw).asdict(), True)
96
- res = {key: res.get(key, None) for key in expected_keys}
104
+ res = {key: res.get(key, None) for key in parameters}
97
105
 
98
106
  # Quote the concept id to ensure it is web-safe
99
107
  res["property_"] = quote(res["property_"], safe="")
100
108
  property_id = res["property_"]
101
109
 
102
- # Safeguarding against incomplete semantic definitions
103
- if not res["concept"] or isinstance(res["concept"], BNode):
110
+ # Skip Bnode
111
+ if isinstance(res["concept"], BNode):
104
112
  issue_list.append(
105
113
  ResourceRetrievalWarning(
106
114
  property_id,
107
115
  "property",
108
- error=("Unable to determine to what concept property is being defined"),
116
+ error="Cannot determine concept of property as it is a blank node",
109
117
  )
110
118
  )
111
119
  continue
112
120
 
113
- # Safeguarding against incomplete semantic definitions
114
- if not res["value_type"] or isinstance(res["value_type"], BNode):
121
+ # Skip Bnode
122
+ if isinstance(res["value_type"], BNode):
115
123
  issue_list.append(
116
124
  ResourceRetrievalWarning(
117
125
  property_id,
118
126
  "property",
119
- error=("Unable to determine value type of property"),
127
+ error="Unable to determine value type of property as it is a blank node",
120
128
  )
121
129
  )
122
130
  continue
123
131
 
124
132
  # Quote the concept and value_type to ensure they are web-safe
125
- res["concept"] = quote(res["concept"], safe="")
126
- res["value_type"] = quote(res["value_type"], safe="")
133
+ res["concept"] = quote(res["concept"], safe="") if res["concept"] else "#N/A"
134
+ res["value_type"] = quote(res["value_type"], safe="") if res["value_type"] else "#N/A"
127
135
 
128
136
  id_ = f"{res['concept']}.{res['property_']}"
129
137
 
@@ -78,7 +78,7 @@ class UnverifiedConceptualMetadata(UnverifiedComponent[ConceptualMetadata]):
78
78
 
79
79
  @dataclass
80
80
  class UnverifiedConceptualProperty(UnverifiedComponent[ConceptualProperty]):
81
- concept: ConceptEntity | str
81
+ concept: ConceptEntity | str | UnknownEntity
82
82
  property_: str
83
83
  value_type: DataType | ConceptEntity | MultiValueTypeInfo | UnknownEntity | str
84
84
  name: str | None = None
@@ -11,7 +11,11 @@ from cognite.neat.core._issues.errors._resources import (
11
11
  ResourceDuplicatedError,
12
12
  ResourceNotDefinedError,
13
13
  )
14
- from cognite.neat.core._issues.warnings._models import ConceptOnlyDataModelWarning, UndefinedConceptWarning
14
+ from cognite.neat.core._issues.warnings._models import (
15
+ ConceptOnlyDataModelWarning,
16
+ DanglingPropertyWarning,
17
+ UndefinedConceptWarning,
18
+ )
15
19
  from cognite.neat.core._issues.warnings._resources import (
16
20
  ResourceNotDefinedWarning,
17
21
  ResourceRegexViolationWarning,
@@ -47,6 +51,7 @@ class ConceptualValidation:
47
51
  self._referenced_classes_exist()
48
52
  self._referenced_value_types_exist()
49
53
  self._concept_only_data_model()
54
+ self._dangling_properties()
50
55
  self._regex_compliance_with_physical_data_model()
51
56
 
52
57
  return self.issue_list
@@ -56,6 +61,13 @@ class ConceptualValidation:
56
61
  if not self._properties:
57
62
  self.issue_list.append(ConceptOnlyDataModelWarning())
58
63
 
64
+ def _dangling_properties(self) -> None:
65
+ """Check if there are properties that do not reference any concept."""
66
+ dangling_properties = [prop for prop in self._properties if prop.concept == UnknownEntity()]
67
+ if dangling_properties:
68
+ for prop in dangling_properties:
69
+ self.issue_list.append(DanglingPropertyWarning(property_id=prop.property_))
70
+
59
71
  def _duplicated_resources(self) -> None:
60
72
  properties_sheet = self._read_info_by_spreadsheet.get("Properties")
61
73
  concepts_sheet = self._read_info_by_spreadsheet.get("Concepts")
@@ -119,7 +131,7 @@ class ConceptualValidation:
119
131
 
120
132
  def _undefined_classes(self) -> None:
121
133
  defined_concept = {concept.concept for concept in self._concepts}
122
- referred_concepts = {property_.concept for property_ in self._properties}
134
+ referred_concepts = {property_.concept for property_ in self._properties} - {UnknownEntity()}
123
135
 
124
136
  if undefined_concepts := referred_concepts.difference(defined_concept):
125
137
  for concept in undefined_concepts:
@@ -153,7 +165,7 @@ class ConceptualValidation:
153
165
  def _referenced_classes_exist(self) -> None:
154
166
  # needs to be complete for this validation to pass
155
167
  defined_concept = {concept.concept for concept in self._concepts}
156
- classes_with_explicit_properties = {property_.concept for property_ in self._properties}
168
+ classes_with_explicit_properties = {property_.concept for property_ in self._properties} - {UnknownEntity()}
157
169
 
158
170
  # USE CASE: models are complete
159
171
  if missing_classes := classes_with_explicit_properties.difference(defined_concept):
@@ -199,7 +211,7 @@ class ConceptualValidation:
199
211
  PATTERNS.physical_property_id_compliance.pattern,
200
212
  )
201
213
  )
202
- if not PATTERNS.view_id_compliance.match(prop_.concept.suffix):
214
+ if prop_.concept != UnknownEntity() and not PATTERNS.view_id_compliance.match(prop_.concept.suffix):
203
215
  self.issue_list.append(
204
216
  ResourceRegexViolationWarning(
205
217
  prop_.concept,
@@ -123,7 +123,7 @@ class ConceptualProperty(SheetRow):
123
123
  knowledge graph. Defaults to None (no transformation)
124
124
  """
125
125
 
126
- concept: ConceptEntityType = Field(
126
+ concept: ConceptEntityType | UnknownEntity = Field(
127
127
  alias="Concept",
128
128
  description="Concept id that the property is defined for, strongly advise `PascalCase` usage.",
129
129
  )
@@ -109,6 +109,16 @@ class ConceptOnlyDataModelWarning(UserModelingWarning):
109
109
  fix = "Define properties for concepts or make sure that concepts implement other concepts that have properties."
110
110
 
111
111
 
112
+ @dataclass(unsafe_hash=True)
113
+ class DanglingPropertyWarning(UserModelingWarning):
114
+ """Property {property_id} is not defined for any concept.
115
+ This will likely cause issues when converting to a physical data model."""
116
+
117
+ fix = "Define the property for a concept or remove it from the data model."
118
+
119
+ property_id: str
120
+
121
+
112
122
  @dataclass(unsafe_hash=True)
113
123
  class UndefinedViewWarning(UserModelingWarning):
114
124
  """Undefined view {value_type} has been referred as value type for property <{view_property}> of view {view_id}."""
@@ -98,6 +98,10 @@ def read_individual_sheet(
98
98
  # Special handling for Value Type column, #N/A is treated specially by NEAT it means Unknown
99
99
  raw["Value Type"] = raw["Value Type"].replace(float("nan"), "#N/A")
100
100
 
101
+ if "Concept" in raw.columns:
102
+ # Special handling for Concept column, #N/A is treated specially by NEAT it means Unknown
103
+ raw["Concept"] = raw["Concept"].replace(float("nan"), "#N/A")
104
+
101
105
  output = raw.replace(float("nan"), None).to_dict(orient="records")
102
106
  if return_read_info:
103
107
  # If no rows are skipped, row 1 is the header row.
@@ -0,0 +1,4 @@
1
+ ### Improved
2
+
3
+ - Enhanced OWL importer to detect and include object and data type
4
+ properties without explicitly defined domain or range
@@ -0,0 +1,39 @@
1
+ Improve OWL importer (#1250)
2
+
3
+ # Description
4
+
5
+ Updated the OWL importer to support parsing of object and data type
6
+ properties that do not have explicitly defined domain or range (aka
7
+ dangling properties). These properties are now captured and included
8
+ during import, ensuring better coverage of implicit or loosely defined
9
+ ontologies.
10
+
11
+
12
+ **Why this change benefits users:**
13
+ Many OWL ontologies omit explicit domain or range declarations,
14
+ especially in evolving or lightweight schemas. Previously, such
15
+ properties might have been ignored or incompletely imported. With this
16
+ update, the importer now captures these properties, improving support
17
+ for loosely structured ontologies and increasing data completeness. This
18
+ allows users to work more effectively with third-party or custom
19
+ ontologies that do not strictly follow formal OWL modeling conventions.
20
+
21
+ **Risk Reviews**
22
+ This is stacked PR. PR larger than 100 lines due to test data, otherwise
23
+ pretty small PR.
24
+
25
+ ## Bump
26
+
27
+ - [x] Patch
28
+ - [ ] Minor
29
+ - [ ] Skip
30
+
31
+ ## Changelog
32
+ ### Improved
33
+
34
+ - Enhanced OWL importer to detect and include object and data type
35
+ properties without explicitly defined domain or range
36
+
37
+ ---------
38
+
39
+ Co-authored-by: Nikola Vasiljevic <nikola@Nikolas-MacBook-Air.local>
@@ -0,0 +1 @@
1
+ 0.123.13
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "cognite-neat"
3
- version = "0.123.12"
3
+ version = "0.123.14"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -45,6 +45,7 @@ class SchemaData:
45
45
  class Conceptual:
46
46
  _conceptual = _schema_dir / "conceptual"
47
47
  only_concepts_xlsx = _conceptual / "only_concepts.xlsx"
48
+ dangling_properties_xlsx = _conceptual / "dangling-properties.xlsx"
48
49
  info_arch_car_rules_xlsx = _conceptual / "info-arch-car-rules.xlsx"
49
50
  information_unknown_value_type_xlsx = _conceptual / "information-unknown-value-type.xlsx"
50
51
  info_with_cdm_ref_xlsx = _conceptual / "info_with_cdm_ref.xlsx"
@@ -0,0 +1,89 @@
1
+ @prefix : <http://example.com/industrial#> .
2
+ @prefix owl: <http://www.w3.org/2002/07/owl#> .
3
+ @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
4
+ @prefix xml: <http://www.w3.org/XML/1998/namespace> .
5
+ @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
6
+ @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
7
+ @base <http://example.com/industrial#> .
8
+
9
+ <http://example.com/industrial> rdf:type owl:Ontology .
10
+
11
+ #################################################################
12
+ # Object Properties
13
+ #################################################################
14
+
15
+ ### http://example.com/industrial/has.Relation-Type(Generic):X~?@!$&'*+,;=%[]
16
+ <http://example.com/industrial/has.Relation-Type(Generic):X~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
17
+ rdfs:label "has generic relation" .
18
+
19
+
20
+ ### http://example.com/industrial/has.Sensor-Unit(01):Temp~?@!$&'*+,;=%[]
21
+ <http://example.com/industrial/has.Sensor-Unit(01):Temp~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
22
+ rdfs:range <http://example.com/industrial/Sensor.Unit_01(Temp)~?@!$&'*+,;=%[]> ;
23
+ rdfs:label "has sensor unit" .
24
+
25
+
26
+ ### http://example.com/industrial/is.Connected-To(Control):Panel~?@!$&'*+,;=%[]
27
+ <http://example.com/industrial/is.Connected-To(Control):Panel~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
28
+ rdfs:domain <http://example.com/industrial/Sensor.Unit_01(Temp)~?@!$&'*+,;=%[]> ;
29
+ rdfs:label "is connected to" .
30
+
31
+
32
+ ### http://example.com/industrial/is.Controlled-By(Panel):Safety~?@!$&'*+,;=%[]
33
+ <http://example.com/industrial/is.Controlled-By(Panel):Safety~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
34
+ rdfs:domain <http://example.com/industrial/Machine.Type-A(01)~?@!$&'*+,;=%[]> ;
35
+ rdfs:range <http://example.com/industrial/Control.Panel-1(Safety)~?@!$&'*+,;=%[]> ;
36
+ rdfs:label "is controlled by" .
37
+
38
+
39
+ ### http://example.com/industrial/links.Interface-Module(02):IO~?@!$&'*+,;=%[]
40
+ <http://example.com/industrial/links.Interface-Module(02):IO~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
41
+ rdfs:label "links interface module" .
42
+
43
+
44
+ ### http://example.com/industrial/logs.Data-Stream(01):Raw~?@!$&'*+,;=%[]
45
+ <http://example.com/industrial/logs.Data-Stream(01):Raw~?@!$&'*+,;=%[]> rdf:type owl:ObjectProperty ;
46
+ rdfs:label "logs raw data stream" .
47
+
48
+
49
+ #################################################################
50
+ # Data properties
51
+ #################################################################
52
+
53
+ ### http://example.com/industrial/contains.Serial-Number(ID):X~?@!$&'*+,;=%[]
54
+ <http://example.com/industrial/contains.Serial-Number(ID):X~?@!$&'*+,;=%[]> rdf:type owl:DatatypeProperty ;
55
+ rdfs:range xsd:string ;
56
+ rdfs:label "contains serial number" .
57
+
58
+
59
+ ### http://example.com/industrial/has.Value-Reading(Temp):C~?@!$&'*+,;=%[]
60
+ <http://example.com/industrial/has.Value-Reading(Temp):C~?@!$&'*+,;=%[]> rdf:type owl:DatatypeProperty ;
61
+ rdfs:domain <http://example.com/industrial/Sensor.Unit_01(Temp)~?@!$&'*+,;=%[]> ;
62
+ rdfs:label "has temperature value (Celsius)" .
63
+
64
+
65
+ ### http://example.com/industrial/reports.Status-Flag(OK):1~?@!$&'*+,;=%[]
66
+ <http://example.com/industrial/reports.Status-Flag(OK):1~?@!$&'*+,;=%[]> rdf:type owl:DatatypeProperty ;
67
+ rdfs:label "reports status flag" .
68
+
69
+
70
+ #################################################################
71
+ # Classes
72
+ #################################################################
73
+
74
+ ### http://example.com/industrial/Control.Panel-1(Safety)~?@!$&'*+,;=%[]
75
+ <http://example.com/industrial/Control.Panel-1(Safety)~?@!$&'*+,;=%[]> rdf:type owl:Class ;
76
+ rdfs:label "Safety Control Panel" .
77
+
78
+
79
+ ### http://example.com/industrial/Machine.Type-A(01)~?@!$&'*+,;=%[]
80
+ <http://example.com/industrial/Machine.Type-A(01)~?@!$&'*+,;=%[]> rdf:type owl:Class ;
81
+ rdfs:label "Machine Type A" .
82
+
83
+
84
+ ### http://example.com/industrial/Sensor.Unit_01(Temp)~?@!$&'*+,;=%[]
85
+ <http://example.com/industrial/Sensor.Unit_01(Temp)~?@!$&'*+,;=%[]> rdf:type owl:Class ;
86
+ rdfs:label "Temperature Sensor Unit" .
87
+
88
+
89
+ ### Generated by the OWL API (version 4.5.29.2024-05-13T12:11:03Z) https://github.com/owlcs/owlapi
@@ -5,6 +5,7 @@ from cognite.client.data_classes.data_modeling import ContainerId, ViewId
5
5
 
6
6
  from cognite.neat.core._data_model.importers import ExcelImporter
7
7
  from cognite.neat.core._data_model.models import ConceptualDataModel, PhysicalDataModel
8
+ from cognite.neat.core._data_model.models.entities._single_value import UnknownEntity
8
9
  from cognite.neat.core._data_model.transformers import (
9
10
  VerifyAnyDataModel,
10
11
  VerifyPhysicalDataModel,
@@ -24,6 +25,7 @@ from cognite.neat.core._issues.warnings import (
24
25
  NotSupportedViewContainerLimitWarning,
25
26
  PropertyDefinitionWarning,
26
27
  )
28
+ from cognite.neat.core._issues.warnings._models import DanglingPropertyWarning
27
29
  from tests.config import DOC_RULES
28
30
  from tests.data import SchemaData
29
31
 
@@ -242,3 +244,15 @@ class TestExcelImporter:
242
244
  ("Manufacturer", "name"): {"min_count": 0, "max_count": 1},
243
245
  ("Color", "name"): {"min_count": 0, "max_count": 1},
244
246
  }
247
+
248
+ def test_dangling_properties(self):
249
+ """Test that dangling properties are correctly identified."""
250
+ importer = ExcelImporter(SchemaData.Conceptual.dangling_properties_xlsx)
251
+ with catch_issues() as issues:
252
+ read_dm = importer.to_data_model()
253
+ validated_dm = VerifyAnyDataModel().transform(read_dm)
254
+
255
+ assert not issues.has_errors
256
+ assert issues.has_warning_type(DanglingPropertyWarning)
257
+ assert all([prop.concept == UnknownEntity() for prop in validated_dm.properties])
258
+ assert all([prop.value_type == UnknownEntity() for prop in validated_dm.properties])
@@ -4,6 +4,7 @@ from cognite.neat.core._data_model.analysis import DataModelAnalysis
4
4
  from cognite.neat.core._data_model.models.entities import ConceptEntity
5
5
  from cognite.neat.core._data_model.transformers._verification import VerifyAnyDataModel
6
6
  from cognite.neat.core._issues import catch_issues
7
+ from cognite.neat.core._issues.warnings._models import DanglingPropertyWarning
7
8
  from cognite.neat.core._issues.warnings._resources import ResourceNotDefinedWarning, ResourceRegexViolationWarning
8
9
  from tests.data import SchemaData
9
10
 
@@ -51,14 +52,37 @@ def test_owl_enitity_quoting():
51
52
  categorized_issues[type(issue)] = []
52
53
  categorized_issues[type(issue)].append(issue)
53
54
 
54
- assert len(issues) == 13
55
+ assert len(issues) == 24
55
56
  # quoting is successful, but regex warnings are raised
56
57
  assert not issues.has_errors
57
58
  assert issues.has_warnings
58
59
 
59
- assert len(categorized_issues) == 2
60
- assert len(categorized_issues[ResourceRegexViolationWarning]) == 12
60
+ assert len(categorized_issues) == 3
61
+ assert len(categorized_issues[ResourceRegexViolationWarning]) == 17
61
62
  assert len(categorized_issues[ResourceNotDefinedWarning]) == 1
63
+ assert len(categorized_issues[DanglingPropertyWarning]) == 6
62
64
 
63
- assert len(conceptual_data_model.concepts) == 3
64
- assert len(conceptual_data_model.properties) == 3
65
+ expected_concepts = {
66
+ ConceptEntity(
67
+ prefix="neat_space", suffix="Control.Panel-1%28Safety%29~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D"
68
+ ),
69
+ ConceptEntity(prefix="neat_space", suffix="Machine.Type-A%2801%29~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D"),
70
+ ConceptEntity(
71
+ prefix="neat_space", suffix="Sensor.Unit_01%28Temp%29~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D"
72
+ ),
73
+ }
74
+
75
+ expected_properties = {
76
+ "contains.Serial-Number%28ID%29%3AX~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
77
+ "has.Relation-Type%28Generic%29%3AX~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
78
+ "has.Sensor-Unit%2801%29%3ATemp~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
79
+ "has.Value-Reading%28Temp%29%3AC~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
80
+ "is.Connected-To%28Control%29%3APanel~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
81
+ "is.Controlled-By%28Panel%29%3ASafety~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
82
+ "links.Interface-Module%2802%29%3AIO~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
83
+ "logs.Data-Stream%2801%29%3ARaw~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
84
+ "reports.Status-Flag%28OK%29%3A1~%3F%40%21%24%26%27%2A%2B%2C%3B%3D%25%5B%5D",
85
+ }
86
+
87
+ assert {concept.concept for concept in conceptual_data_model.concepts} == expected_concepts
88
+ assert {prop.property_ for prop in conceptual_data_model.properties} == expected_properties
@@ -23,6 +23,7 @@ from cognite.neat.core._data_model.models.entities import (
23
23
  ConceptEntity,
24
24
  MultiValueTypeInfo,
25
25
  )
26
+ from cognite.neat.core._data_model.models.entities._single_value import UnknownEntity
26
27
  from cognite.neat.core._data_model.transformers._converters import (
27
28
  ConceptualToPhysical,
28
29
  ToCompliantEntities,
@@ -34,7 +35,7 @@ from cognite.neat.core._issues._base import MultiValueError
34
35
  from cognite.neat.core._issues._contextmanagers import catch_issues
35
36
  from cognite.neat.core._issues.errors import ResourceNotDefinedError
36
37
  from cognite.neat.core._issues.errors._resources import ResourceDuplicatedError
37
- from cognite.neat.core._issues.warnings._models import ConceptOnlyDataModelWarning
38
+ from cognite.neat.core._issues.warnings._models import ConceptOnlyDataModelWarning, DanglingPropertyWarning
38
39
 
39
40
 
40
41
  def case_insensitive_value_types():
@@ -180,15 +181,63 @@ def concepts_only_data_model():
180
181
  ],
181
182
  "Properties": [],
182
183
  },
184
+ id="concept_only_data_model",
185
+ )
186
+
187
+
188
+ def dangling_properties_data_model():
189
+ yield pytest.param(
183
190
  {
184
- ResourceDuplicatedError(
185
- identifier="name",
186
- resource_type="property",
187
- location="the Properties sheet at row 1 and 2 if data model is read from a spreadsheet.",
188
- ),
189
- ConceptOnlyDataModelWarning(),
191
+ "Metadata": {
192
+ "role": "information architect",
193
+ "creator": "Jon, Emma, David",
194
+ "space": "power",
195
+ "external_id": "power2consumer",
196
+ "created": datetime(2024, 2, 9, 0, 0),
197
+ "updated": datetime(2024, 2, 9, 0, 0),
198
+ "version": "0.1.0",
199
+ "name": "Power to Consumer Data Model",
200
+ },
201
+ "Concepts": [
202
+ {
203
+ "Concept": "GeneratingUnit",
204
+ "Description": None,
205
+ "Parent Class": None,
206
+ },
207
+ {
208
+ "Concept": "Substation",
209
+ "Description": None,
210
+ "Parent Class": None,
211
+ },
212
+ ],
213
+ "Properties": [
214
+ {
215
+ "Concept": UnknownEntity(),
216
+ "Property": "name_xx",
217
+ "Description": None,
218
+ "Value Type": "string",
219
+ "Min Count": 1,
220
+ "Max Count": 1.0,
221
+ "Default": None,
222
+ "Source": None,
223
+ "MatchType": None,
224
+ "Transformation": None,
225
+ },
226
+ {
227
+ "Concept": UnknownEntity(),
228
+ "Property": "name",
229
+ "Description": None,
230
+ "Value Type": UnknownEntity(),
231
+ "Min Count": 1,
232
+ "Max Count": 1.0,
233
+ "Default": None,
234
+ "Source": None,
235
+ "MatchType": None,
236
+ "Transformation": None,
237
+ },
238
+ ],
190
239
  },
191
- id="concept_only_data_model",
240
+ id="dangling_properties_data_model",
192
241
  )
193
242
 
194
243
 
@@ -256,8 +305,21 @@ class TestInformationRules:
256
305
 
257
306
  assert set(e.value.errors) == expected_exception
258
307
 
259
- @pytest.mark.parametrize("dm_dict, expected_exception", list(concepts_only_data_model()))
260
- def test_concepts_only_data_model(self, dm_dict, expected_exception) -> None:
308
+ @pytest.mark.parametrize("dm_dict", list(dangling_properties_data_model()))
309
+ def test_dangling_properties(self, dm_dict) -> None:
310
+ input_rules = ImportedDataModel(
311
+ unverified_data_model=UnverifiedConceptualDataModel.load(dm_dict),
312
+ context={},
313
+ )
314
+ with catch_issues() as issues:
315
+ _ = VerifyAnyDataModel(validate=True).transform(input_rules)
316
+
317
+ assert not issues.has_errors
318
+ assert len(issues) == 4
319
+ assert len([issue for issue in issues if isinstance(issue, DanglingPropertyWarning)]) == 2
320
+
321
+ @pytest.mark.parametrize("dm_dict", list(concepts_only_data_model()))
322
+ def test_concepts_only_data_model(self, dm_dict) -> None:
261
323
  input_rules = ImportedDataModel(
262
324
  unverified_data_model=UnverifiedConceptualDataModel.load(dm_dict),
263
325
  context={},
@@ -346,7 +346,7 @@ wheels = [
346
346
 
347
347
  [[package]]
348
348
  name = "cognite-neat"
349
- version = "0.123.12"
349
+ version = "0.123.14"
350
350
  source = { editable = "." }
351
351
  dependencies = [
352
352
  { name = "backports-strenum", marker = "python_full_version < '3.11'" },