cognite-neat 0.85.9__tar.gz → 0.85.11__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 (317) hide show
  1. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/PKG-INFO +1 -1
  2. cognite_neat-0.85.11/cognite/neat/_version.py +1 -0
  3. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/queries/_base.py +27 -2
  4. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/stores/_base.py +12 -0
  5. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/transformers/_classic_cdf.py +56 -9
  6. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_rules.py +70 -0
  7. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_rules_input.py +3 -1
  8. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/entities.py +7 -0
  9. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/pyproject.toml +1 -1
  10. cognite_neat-0.85.9/cognite/neat/_version.py +0 -1
  11. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/LICENSE +0 -0
  12. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/README.md +0 -0
  13. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/__init__.py +0 -0
  14. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/_shared.py +0 -0
  15. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/__init__.py +0 -0
  16. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/asgi/metrics.py +0 -0
  17. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/configuration.py +0 -0
  18. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/context_manager/__init__.py +0 -0
  19. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/context_manager/manager.py +0 -0
  20. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/data_classes/__init__.py +0 -0
  21. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/data_classes/rest.py +0 -0
  22. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/explorer.py +0 -0
  23. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/configuration.py +0 -0
  24. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/core.py +0 -0
  25. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/crud.py +0 -0
  26. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/data_exploration.py +0 -0
  27. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/metrics.py +0 -0
  28. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/rules.py +0 -0
  29. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/routers/workflows.py +0 -0
  30. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/utils/__init__.py +0 -0
  31. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/utils/data_mapping.py +0 -0
  32. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/utils/logging.py +0 -0
  33. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/api/utils/query_templates.py +0 -0
  34. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/main.py +0 -0
  35. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/monitoring/__init__.py +0 -0
  36. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/monitoring/metrics.py +0 -0
  37. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/index.html +0 -0
  38. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/.gitignore +0 -0
  39. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/README.md +0 -0
  40. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/asset-manifest.json +0 -0
  41. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/favicon.ico +0 -0
  42. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/img/architect-icon.svg +0 -0
  43. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/img/developer-icon.svg +0 -0
  44. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/img/sme-icon.svg +0 -0
  45. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/index.html +0 -0
  46. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/logo192.png +0 -0
  47. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/manifest.json +0 -0
  48. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/robots.txt +0 -0
  49. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css +0 -0
  50. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css.map +0 -0
  51. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js +0 -0
  52. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.LICENSE.txt +0 -0
  53. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.map +0 -0
  54. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/app/ui/neat-app/build/static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg +0 -0
  55. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/config.py +0 -0
  56. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/constants.py +0 -0
  57. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/exceptions.py +0 -0
  58. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/__init__.py +0 -0
  59. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/_shared.py +0 -0
  60. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/_tracking/__init__.py +0 -0
  61. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/_tracking/base.py +0 -0
  62. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/_tracking/log.py +0 -0
  63. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  64. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  65. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/examples/__init__.py +0 -0
  66. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  67. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/exceptions.py +0 -0
  68. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/__init__.py +0 -0
  69. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_base.py +0 -0
  70. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/__init__.py +0 -0
  71. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_assets.py +0 -0
  72. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_events.py +0 -0
  73. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_files.py +0 -0
  74. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_labels.py +0 -0
  75. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_relationships.py +0 -0
  76. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_sequences.py +0 -0
  77. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_classic_cdf/_timeseries.py +0 -0
  78. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_dexpi.py +0 -0
  79. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_mock_graph_generator.py +0 -0
  80. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/extractors/_rdf_file.py +0 -0
  81. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/issues/__init__.py +0 -0
  82. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/issues/loader.py +0 -0
  83. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/loaders/__init__.py +0 -0
  84. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/loaders/_base.py +0 -0
  85. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/loaders/_rdf2asset.py +0 -0
  86. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/loaders/_rdf2dms.py +0 -0
  87. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/models.py +0 -0
  88. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/queries/__init__.py +0 -0
  89. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/queries/_construct.py +0 -0
  90. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/queries/_shared.py +0 -0
  91. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/stores/__init__.py +0 -0
  92. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/stores/_oxrdflib.py +0 -0
  93. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/stores/_provenance.py +0 -0
  94. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/transformers/__init__.py +0 -0
  95. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/graph/transformers/_base.py +0 -0
  96. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/issues.py +0 -0
  97. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/__init__.py +0 -0
  98. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/__init__.py +0 -0
  99. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  100. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  101. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/examples/__init__.py +0 -0
  102. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  103. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/exceptions.py +0 -0
  104. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/extractors/__init__.py +0 -0
  105. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/extractors/_base.py +0 -0
  106. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/extractors/_dexpi.py +0 -0
  107. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/extractors/_graph_capturing_sheet.py +0 -0
  108. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/extractors/_mock_graph_generator.py +0 -0
  109. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/__init__.py +0 -0
  110. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/_asset_loader.py +0 -0
  111. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/_base.py +0 -0
  112. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/_exceptions.py +0 -0
  113. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/core/__init__.py +0 -0
  114. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/core/labels.py +0 -0
  115. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/core/models.py +0 -0
  116. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/core/rdf_to_assets.py +0 -0
  117. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/core/rdf_to_relationships.py +0 -0
  118. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/rdf_to_dms.py +0 -0
  119. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/loaders/validator.py +0 -0
  120. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/models.py +0 -0
  121. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/__init__.py +0 -0
  122. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_base.py +0 -0
  123. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_graphdb_store.py +0 -0
  124. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_memory_store.py +0 -0
  125. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_oxigraph_store.py +0 -0
  126. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_oxrdflib.py +0 -0
  127. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/stores/_rdf_to_graph.py +0 -0
  128. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/transformations/__init__.py +0 -0
  129. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/transformations/entity_matcher.py +0 -0
  130. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/transformations/query_generator/__init__.py +0 -0
  131. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/transformations/query_generator/sparql.py +0 -0
  132. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/graph/transformations/transformer.py +0 -0
  133. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/__init__.py +0 -0
  134. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/analysis.py +0 -0
  135. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-graphql.xlsx +0 -0
  136. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/Rules-Nordic44.xlsx +0 -0
  137. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/__init__.py +0 -0
  138. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/power-grid-containers.yaml +0 -0
  139. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/power-grid-example.xlsx +0 -0
  140. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/power-grid-model.yaml +0 -0
  141. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/rules-template.xlsx +0 -0
  142. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/sheet2cdf-transformation-rules.xlsx +0 -0
  143. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/skos-rules.xlsx +0 -0
  144. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/source-to-solution-mapping-rules.xlsx +0 -0
  145. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/examples/wind-energy.owl +0 -0
  146. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exceptions.py +0 -0
  147. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/__init__.py +0 -0
  148. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_base.py +0 -0
  149. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_core/__init__.py +0 -0
  150. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_core/rules2labels.py +0 -0
  151. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2dms.py +0 -0
  152. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2excel.py +0 -0
  153. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2graphql.py +0 -0
  154. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2ontology.py +0 -0
  155. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2pydantic_models.py +0 -0
  156. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2rules.py +0 -0
  157. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_rules2triples.py +0 -0
  158. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/exporters/_validation.py +0 -0
  159. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/__init__.py +0 -0
  160. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_base.py +0 -0
  161. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_dict2rules.py +0 -0
  162. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_dms2rules.py +0 -0
  163. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_graph2rules.py +0 -0
  164. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_json2rules.py +0 -0
  165. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_owl2rules/__init__.py +0 -0
  166. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2classes.py +0 -0
  167. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  168. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2properties.py +0 -0
  169. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2rules.py +0 -0
  170. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_spreadsheet2rules.py +0 -0
  171. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_xsd2rules.py +0 -0
  172. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/importers/_yaml2rules.py +0 -0
  173. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/__init__.py +0 -0
  174. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/_base.py +0 -0
  175. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/raw_rules.py +0 -0
  176. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/rdfpath.py +0 -0
  177. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/rules.py +0 -0
  178. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/tables.py +0 -0
  179. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/rules/models/value_types.py +0 -0
  180. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Export_DMS/workflow.yaml +0 -0
  181. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  182. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  183. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  184. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Import_DMS/workflow.yaml +0 -0
  185. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  186. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  187. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  188. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  189. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/legacy/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  190. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/py.typed +0 -0
  191. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/__init__.py +0 -0
  192. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/_shared.py +0 -0
  193. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/analysis/__init__.py +0 -0
  194. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/analysis/_base.py +0 -0
  195. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/analysis/_information_rules.py +0 -0
  196. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/examples/__init__.py +0 -0
  197. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/examples/wind-energy.owl +0 -0
  198. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exceptions.py +0 -0
  199. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/__init__.py +0 -0
  200. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_base.py +0 -0
  201. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_rules2dms.py +0 -0
  202. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_rules2excel.py +0 -0
  203. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_rules2ontology.py +0 -0
  204. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_rules2yaml.py +0 -0
  205. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/exporters/_validation.py +0 -0
  206. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/__init__.py +0 -0
  207. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_base.py +0 -0
  208. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dms2rules.py +0 -0
  209. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dtdl2rules/__init__.py +0 -0
  210. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  211. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  212. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  213. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_dtdl2rules/spec.py +0 -0
  214. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_inference2rules.py +0 -0
  215. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_owl2rules/__init__.py +0 -0
  216. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_owl2rules/_owl2classes.py +0 -0
  217. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  218. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_owl2rules/_owl2properties.py +0 -0
  219. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_owl2rules/_owl2rules.py +0 -0
  220. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_spreadsheet2rules.py +0 -0
  221. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/importers/_yaml2rules.py +0 -0
  222. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/__init__.py +0 -0
  223. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/base.py +0 -0
  224. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/dms.py +0 -0
  225. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/fileread.py +0 -0
  226. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/formatters.py +0 -0
  227. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/importing.py +0 -0
  228. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/spreadsheet.py +0 -0
  229. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/issues/spreadsheet_file.py +0 -0
  230. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/__init__.py +0 -0
  231. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_base.py +0 -0
  232. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_constants.py +0 -0
  233. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_rdfpath.py +0 -0
  234. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_types/__init__.py +0 -0
  235. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_types/_base.py +0 -0
  236. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/_types/_field.py +0 -0
  237. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/__init__.py +0 -0
  238. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/_converter.py +0 -0
  239. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/_rules.py +0 -0
  240. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/_rules_input.py +0 -0
  241. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/_serializer.py +0 -0
  242. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/asset/_validation.py +0 -0
  243. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/data_types.py +0 -0
  244. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/__init__.py +0 -0
  245. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_converter.py +0 -0
  246. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_exporter.py +0 -0
  247. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_schema.py +0 -0
  248. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_serializer.py +0 -0
  249. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/dms/_validation.py +0 -0
  250. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/domain.py +0 -0
  251. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/__init__.py +0 -0
  252. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/_converter.py +0 -0
  253. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/_rules.py +0 -0
  254. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/_rules_input.py +0 -0
  255. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/_serializer.py +0 -0
  256. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/information/_validation.py +0 -0
  257. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/rules/models/wrapped_entities.py +0 -0
  258. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/__init__.py +0 -0
  259. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/auth.py +0 -0
  260. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/auxiliary.py +0 -0
  261. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf.py +0 -0
  262. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_classes.py +0 -0
  263. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_loaders/__init__.py +0 -0
  264. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_loaders/_base.py +0 -0
  265. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_loaders/_data_modeling.py +0 -0
  266. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_loaders/_ingestion.py +0 -0
  267. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/cdf_loaders/data_classes.py +0 -0
  268. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/exceptions.py +0 -0
  269. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/spreadsheet.py +0 -0
  270. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/text.py +0 -0
  271. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/upload.py +0 -0
  272. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/utils.py +0 -0
  273. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/utils/xml_.py +0 -0
  274. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/__init__.py +0 -0
  275. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/_exceptions.py +0 -0
  276. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/base.py +0 -0
  277. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/cdf_store.py +0 -0
  278. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Export_DMS/workflow.yaml +0 -0
  279. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  280. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  281. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  282. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Import_DMS/workflow.yaml +0 -0
  283. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  284. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  285. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  286. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  287. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  288. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/manager.py +0 -0
  289. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/migration/__init__.py +0 -0
  290. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/migration/steps.py +0 -0
  291. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/migration/wf_manifests.py +0 -0
  292. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/model.py +0 -0
  293. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/__init__.py +0 -0
  294. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/data_contracts.py +0 -0
  295. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/__init__.py +0 -0
  296. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/__init__.py +0 -0
  297. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/graph_extractor.py +0 -0
  298. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/graph_loader.py +0 -0
  299. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/graph_store.py +0 -0
  300. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/rules_exporter.py +0 -0
  301. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/rules_importer.py +0 -0
  302. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/current/rules_validator.py +0 -0
  303. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/io/__init__.py +0 -0
  304. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/io/io_steps.py +0 -0
  305. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/__init__.py +0 -0
  306. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/graph_contextualization.py +0 -0
  307. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/graph_extractor.py +0 -0
  308. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/graph_loader.py +0 -0
  309. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/graph_store.py +0 -0
  310. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/graph_transformer.py +0 -0
  311. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/rules_exporter.py +0 -0
  312. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/lib/legacy/rules_importer.py +0 -0
  313. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps/step_model.py +0 -0
  314. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/steps_registry.py +0 -0
  315. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/tasks.py +0 -0
  316. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/triggers.py +0 -0
  317. {cognite_neat-0.85.9 → cognite_neat-0.85.11}/cognite/neat/workflows/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cognite-neat
3
- Version: 0.85.9
3
+ Version: 0.85.11
4
4
  Summary: Knowledge graph transformation
5
5
  Home-page: https://cognite-neat.readthedocs-hosted.com/
6
6
  License: Apache-2.0
@@ -0,0 +1 @@
1
+ __version__ = "0.85.11"
@@ -2,6 +2,7 @@ import warnings
2
2
  from typing import Literal, cast, overload
3
3
 
4
4
  from rdflib import RDF, Graph, URIRef
5
+ from rdflib import Literal as RdfLiteral
5
6
  from rdflib.query import ResultRow
6
7
 
7
8
  from cognite.neat.rules.models.entities import ClassEntity
@@ -18,6 +19,24 @@ class Queries:
18
19
  self.graph = graph
19
20
  self.rules = rules
20
21
 
22
+ def summarize_instances(self) -> list[tuple]:
23
+ """Summarize instances in the graph store by class and count"""
24
+
25
+ query_statement = """ SELECT ?class (COUNT(?instance) AS ?instanceCount)
26
+ WHERE {
27
+ ?instance a ?class .
28
+ }
29
+ GROUP BY ?class
30
+ ORDER BY DESC(?instanceCount) """
31
+
32
+ return [
33
+ (
34
+ remove_namespace_from_uri(cast(URIRef, cast(tuple, res)[0])),
35
+ cast(RdfLiteral, cast(tuple, res)[1]).value,
36
+ )
37
+ for res in list(self.graph.query(query_statement))
38
+ ]
39
+
21
40
  def list_instances_ids_of_class(self, class_uri: URIRef, limit: int = -1) -> list[URIRef]:
22
41
  """Get instances ids for a given class
23
42
 
@@ -68,7 +87,10 @@ class Queries:
68
87
  # We cannot include the RDF.type in case there is a neat:type property
69
88
  return [remove_namespace_from_uri(*triple) for triple in result if triple[1] != RDF.type] # type: ignore[misc, index]
70
89
  else:
71
- warnings.warn("No rules found for the graph store, returning empty list.", stacklevel=2)
90
+ warnings.warn(
91
+ "No rules found for the graph store, returning empty list.",
92
+ stacklevel=2,
93
+ )
72
94
  return []
73
95
 
74
96
  def construct_instances_of_class(self, class_: str, properties_optional: bool = True) -> list[tuple[str, str, str]]:
@@ -95,7 +117,10 @@ class Queries:
95
117
  # We cannot include the RDF.type in case there is a neat:type property
96
118
  return [remove_namespace_from_uri(*triple) for triple in result if triple[1] != RDF.type] # type: ignore[misc, index]
97
119
  else:
98
- warnings.warn("No rules found for the graph store, returning empty list.", stacklevel=2)
120
+ warnings.warn(
121
+ "No rules found for the graph store, returning empty list.",
122
+ stacklevel=2,
123
+ )
99
124
  return []
100
125
 
101
126
  def list_triples(self, limit: int = 25) -> list[ResultRow]:
@@ -5,6 +5,7 @@ from datetime import datetime, timezone
5
5
  from pathlib import Path
6
6
  from typing import cast
7
7
 
8
+ import pandas as pd
8
9
  from rdflib import Graph, Namespace, URIRef
9
10
  from rdflib.plugins.stores.sparqlstore import SPARQLUpdateStore
10
11
 
@@ -283,12 +284,23 @@ class NeatGraphStore:
283
284
  )
284
285
  )
285
286
 
287
+ @property
288
+ def summary(self) -> pd.DataFrame:
289
+ return pd.DataFrame(self.queries.summarize_instances(), columns=["Type", "Occurrence"])
290
+
286
291
  def _repr_html_(self) -> str:
287
292
  provenance = self.provenance._repr_html_()
293
+ summary: pd.DataFrame = self.summary
294
+ summary_text = (
295
+ "<br /><strong>Graph is empty</strong><br />"
296
+ if summary.empty
297
+ else f"<br /><strong>Graph content</strong><br />{cast(pd.DataFrame, summary)._repr_html_()}" # type: ignore[operator]
298
+ )
288
299
 
289
300
  return (
290
301
  f"<strong>{type(self).__name__}</strong> A graph store is a container for storing triples. "
291
302
  "It can be queried and transformed to extract information.<br />"
292
303
  "<strong>Provenance</strong> Provenance is a record of changes that have occurred in the graph store.<br />"
293
304
  f"{provenance}"
305
+ f"{summary_text}"
294
306
  )
@@ -1,6 +1,6 @@
1
1
  from typing import cast
2
2
 
3
- from rdflib import Graph, Literal, URIRef
3
+ from rdflib import RDF, Graph, Literal, URIRef
4
4
 
5
5
  from cognite.neat.constants import DEFAULT_NAMESPACE
6
6
  from cognite.neat.graph import extractors
@@ -21,11 +21,16 @@ class AddAssetDepth(BaseTransformer):
21
21
  <{asset_id}> <{root_prop}> ?root .}}"""
22
22
 
23
23
  def __init__(
24
- self, asset_type: URIRef | None = None, root_prop: URIRef | None = None, parent_prop: URIRef | None = None
24
+ self,
25
+ asset_type: URIRef | None = None,
26
+ root_prop: URIRef | None = None,
27
+ parent_prop: URIRef | None = None,
28
+ depth_typing: dict[int, str] | None = None,
25
29
  ):
26
30
  self.asset_type = asset_type or DEFAULT_NAMESPACE.Asset
27
31
  self.root_prop = root_prop or DEFAULT_NAMESPACE.root
28
32
  self.parent_prop = parent_prop or DEFAULT_NAMESPACE.parent
33
+ self.depth_typing = depth_typing
29
34
 
30
35
  def transform(self, graph: Graph) -> None:
31
36
  """Adds depth of asset in the asset hierarchy to the graph."""
@@ -34,6 +39,13 @@ class AddAssetDepth(BaseTransformer):
34
39
  if depth := self.get_depth(graph, asset_id, self.root_prop, self.parent_prop):
35
40
  graph.add((asset_id, DEFAULT_NAMESPACE.depth, Literal(depth)))
36
41
 
42
+ if self.depth_typing and (type_ := self.depth_typing.get(depth, None)):
43
+ # remove existing type
44
+ graph.remove((asset_id, RDF.type, None))
45
+
46
+ # add new type
47
+ graph.add((asset_id, RDF.type, DEFAULT_NAMESPACE[type_]))
48
+
37
49
  @classmethod
38
50
  def get_depth(
39
51
  cls,
@@ -62,7 +74,12 @@ class AddAssetDepth(BaseTransformer):
62
74
  class AssetTimeSeriesConnector(BaseTransformer):
63
75
  description: str = "Connects assets to timeseries, thus forming bi-directional connection"
64
76
  _use_only_once: bool = True
65
- _need_changes = frozenset({str(extractors.AssetsExtractor.__name__), str(extractors.TimeSeriesExtractor.__name__)})
77
+ _need_changes = frozenset(
78
+ {
79
+ str(extractors.AssetsExtractor.__name__),
80
+ str(extractors.TimeSeriesExtractor.__name__),
81
+ }
82
+ )
66
83
  _asset_template: str = """SELECT ?asset_id WHERE {{
67
84
  <{timeseries_id}> <{asset_prop}> ?asset_id .
68
85
  ?asset_id a <{asset_type}>}}"""
@@ -100,7 +117,12 @@ class AssetTimeSeriesConnector(BaseTransformer):
100
117
  class AssetSequenceConnector(BaseTransformer):
101
118
  description: str = "Connects assets to sequences, thus forming bi-directional connection"
102
119
  _use_only_once: bool = True
103
- _need_changes = frozenset({str(extractors.AssetsExtractor.__name__), str(extractors.SequencesExtractor.__name__)})
120
+ _need_changes = frozenset(
121
+ {
122
+ str(extractors.AssetsExtractor.__name__),
123
+ str(extractors.SequencesExtractor.__name__),
124
+ }
125
+ )
104
126
  _asset_template: str = """SELECT ?asset_id WHERE {{
105
127
  <{sequence_id}> <{asset_prop}> ?asset_id .
106
128
  ?asset_id a <{asset_type}>}}"""
@@ -138,7 +160,12 @@ class AssetSequenceConnector(BaseTransformer):
138
160
  class AssetFileConnector(BaseTransformer):
139
161
  description: str = "Connects assets to files, thus forming bi-directional connection"
140
162
  _use_only_once: bool = True
141
- _need_changes = frozenset({str(extractors.AssetsExtractor.__name__), str(extractors.FilesExtractor.__name__)})
163
+ _need_changes = frozenset(
164
+ {
165
+ str(extractors.AssetsExtractor.__name__),
166
+ str(extractors.FilesExtractor.__name__),
167
+ }
168
+ )
142
169
  _asset_template: str = """SELECT ?asset_id WHERE {{
143
170
  <{file_id}> <{asset_prop}> ?asset_id .
144
171
  ?asset_id a <{asset_type}>}}"""
@@ -174,7 +201,12 @@ class AssetFileConnector(BaseTransformer):
174
201
  class AssetEventConnector(BaseTransformer):
175
202
  description: str = "Connects assets to events, thus forming bi-directional connection"
176
203
  _use_only_once: bool = True
177
- _need_changes = frozenset({str(extractors.AssetsExtractor.__name__), str(extractors.EventsExtractor.__name__)})
204
+ _need_changes = frozenset(
205
+ {
206
+ str(extractors.AssetsExtractor.__name__),
207
+ str(extractors.EventsExtractor.__name__),
208
+ }
209
+ )
178
210
  _asset_template: str = """SELECT ?asset_id WHERE {{
179
211
  <{event_id}> <{asset_prop}> ?asset_id .
180
212
  ?asset_id a <{asset_type}>}}"""
@@ -211,7 +243,10 @@ class AssetRelationshipConnector(BaseTransformer):
211
243
  description: str = "Connects assets via relationships"
212
244
  _use_only_once: bool = True
213
245
  _need_changes = frozenset(
214
- {str(extractors.AssetsExtractor.__name__), str(extractors.RelationshipsExtractor.__name__)}
246
+ {
247
+ str(extractors.AssetsExtractor.__name__),
248
+ str(extractors.RelationshipsExtractor.__name__),
249
+ }
215
250
  )
216
251
  _asset_template: str = """SELECT ?source ?target WHERE {{
217
252
  <{relationship_id}> <{relationship_source_xid_prop}> ?source_xid .
@@ -256,8 +291,20 @@ class AssetRelationshipConnector(BaseTransformer):
256
291
  # files can be connected to multiple assets in the graph
257
292
  for source_asset_id, target_asset_id in cast(list[tuple], assets_id_res):
258
293
  # create a relationship between the two assets
259
- graph.add((source_asset_id, DEFAULT_NAMESPACE.relationship, relationship_id))
260
- graph.add((target_asset_id, DEFAULT_NAMESPACE.relationship, relationship_id))
294
+ graph.add(
295
+ (
296
+ source_asset_id,
297
+ DEFAULT_NAMESPACE.relationship,
298
+ relationship_id,
299
+ )
300
+ )
301
+ graph.add(
302
+ (
303
+ target_asset_id,
304
+ DEFAULT_NAMESPACE.relationship,
305
+ relationship_id,
306
+ )
307
+ )
261
308
 
262
309
  # add source and target to the relationship
263
310
  graph.add((relationship_id, DEFAULT_NAMESPACE.source, source_asset_id))
@@ -2,6 +2,7 @@ import math
2
2
  import re
3
3
  import sys
4
4
  import warnings
5
+ from collections import defaultdict
5
6
  from datetime import datetime
6
7
  from typing import TYPE_CHECKING, Any, ClassVar, Literal
7
8
 
@@ -390,3 +391,72 @@ class DMSRules(BaseRules):
390
391
  from ._converter import _DMSRulesConverter
391
392
 
392
393
  return _DMSRulesConverter(self).as_domain_rules()
394
+
395
+ def create_reference(
396
+ self, reference: "DMSRules", view_extension_mapping: dict[str, str], default_extension: str | None = None
397
+ ) -> None:
398
+ """Takes this data models and makes it into an extension of the reference data model.
399
+
400
+ The argument view_extension_mapping is a dictionary where the keys are views of this data model,
401
+ and each value is the view of the reference data model that the view should extend. For example:
402
+
403
+ ```python
404
+ view_extension_mapping = {"Pump": "Asset"}
405
+ ```
406
+
407
+ This would make the view "Pump" in this data model extend the view "Asset" in the reference data model.
408
+ Note that all the keys in the dictionary must be external ids of views in this data model,
409
+ and all the values must be external ids of views in the reference data model.
410
+
411
+ Args:
412
+ reference: The reference data model
413
+ view_extension_mapping: A dictionary mapping views in this data model to views in the reference data model
414
+ default_extension: The default view in the reference data model that views in this
415
+ data model should extend if no mapping is provided.
416
+
417
+ """
418
+ if self.reference is not None:
419
+ raise ValueError("Reference already exists")
420
+ self.reference = reference
421
+ view_by_external_id = {view.view.external_id: view for view in self.views}
422
+ ref_view_by_external_id = {view.view.external_id: view for view in reference.views}
423
+
424
+ if invalid_views := set(view_extension_mapping.keys()) - set(view_by_external_id.keys()):
425
+ raise ValueError(f"Views are not in this dat model {invalid_views}")
426
+ if invalid_views := set(view_extension_mapping.values()) - set(ref_view_by_external_id.keys()):
427
+ raise ValueError(f"Views are not in the reference data model {invalid_views}")
428
+ if default_extension and default_extension not in ref_view_by_external_id:
429
+ raise ValueError(f"Default extension view not in the reference data model {default_extension}")
430
+
431
+ properties_by_view_external_id: dict[str, dict[str, DMSProperty]] = defaultdict(dict)
432
+ for prop in self.properties:
433
+ properties_by_view_external_id[prop.view.external_id][prop.view_property] = prop
434
+
435
+ ref_properties_by_view_external_id: dict[str, dict[str, DMSProperty]] = defaultdict(dict)
436
+ for prop in reference.properties:
437
+ ref_properties_by_view_external_id[prop.view.external_id][prop.view_property] = prop
438
+
439
+ for view_external_id, view in view_by_external_id.items():
440
+ if view_external_id in view_extension_mapping:
441
+ ref_external_id = view_extension_mapping[view_external_id]
442
+ elif default_extension:
443
+ ref_external_id = default_extension
444
+ else:
445
+ continue
446
+
447
+ ref_view = ref_view_by_external_id[ref_external_id]
448
+ shared_properties = set(properties_by_view_external_id[view_external_id].keys()) & set(
449
+ ref_properties_by_view_external_id[ref_external_id].keys()
450
+ )
451
+ if shared_properties:
452
+ if view.implements is None:
453
+ view.implements = [ref_view.view]
454
+ elif isinstance(view.implements, list) and ref_view.view not in view.implements:
455
+ view.implements.append(ref_view.view)
456
+ for prop_name in shared_properties:
457
+ prop = properties_by_view_external_id[view_external_id][prop_name]
458
+ ref_prop = ref_properties_by_view_external_id[ref_external_id][prop_name]
459
+ if ref_prop.container and ref_prop.container_property:
460
+ prop.container = ref_prop.container
461
+ prop.container_property = ref_prop.container_property
462
+ prop.reference = ReferenceEntity.from_entity(ref_prop.view, ref_prop.view_property)
@@ -146,7 +146,9 @@ class DMSPropertyInput:
146
146
  "Value Type": value_type,
147
147
  "Property (linage)": self.property_ or self.view_property,
148
148
  "Class (linage)": (
149
- ClassEntity.load(self.class_, prefix=default_space, version=default_version) if self.class_ else None
149
+ ClassEntity.load(self.class_ or self.view, prefix=default_space, version=default_version)
150
+ if self.class_ or self.view
151
+ else None
150
152
  ),
151
153
  "Name": self.name,
152
154
  "Description": self.description,
@@ -499,6 +499,13 @@ class ReferenceEntity(ClassEntity):
499
499
  prefix: str
500
500
  property_: str | None = Field(None, alias="property")
501
501
 
502
+ @classmethod
503
+ def from_entity(cls, entity: Entity, property_: str) -> "ReferenceEntity":
504
+ if isinstance(entity, ClassEntity):
505
+ return cls(prefix=str(entity.prefix), suffix=entity.suffix, version=entity.version, property=property_)
506
+ else:
507
+ return cls(prefix=str(entity.prefix), suffix=entity.suffix, property=property_)
508
+
502
509
  def as_view_id(self) -> ViewId:
503
510
  if isinstance(self.prefix, _UndefinedType) or isinstance(self.suffix, _UnknownType):
504
511
  raise ValueError("Prefix is not defined or suffix is unknown")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.85.9"
3
+ version = "0.85.11"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -1 +0,0 @@
1
- __version__ = "0.85.9"
File without changes
File without changes