cognite-neat 0.79.0__tar.gz → 0.80.0__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.
Files changed (306) hide show
  1. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/PKG-INFO +1 -1
  2. cognite_neat-0.80.0/cognite/neat/_version.py +1 -0
  3. cognite_neat-0.80.0/cognite/neat/graph/__init__.py +3 -0
  4. cognite_neat-0.80.0/cognite/neat/graph/_shared.py +5 -0
  5. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/__init__.py +15 -0
  6. cognite_neat-0.80.0/cognite/neat/graph/extractors/_rdf_file.py +18 -0
  7. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/loaders/_base.py +2 -2
  8. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/loaders/_rdf2dms.py +4 -4
  9. cognite_neat-0.80.0/cognite/neat/graph/stores/__init__.py +3 -0
  10. cognite_neat-0.80.0/cognite/neat/graph/stores/_base.py +257 -0
  11. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_inference2rules.py +2 -2
  12. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/pyproject.toml +1 -1
  13. cognite_neat-0.79.0/cognite/neat/_version.py +0 -1
  14. cognite_neat-0.79.0/cognite/neat/graph/stores/_base.py +0 -393
  15. cognite_neat-0.79.0/cognite/neat/legacy/graph/__init__.py +0 -3
  16. cognite_neat-0.79.0/cognite/neat/legacy/graph/stores/__init__.py +0 -13
  17. cognite_neat-0.79.0/cognite/neat/legacy/graph/stores/_graphdb_store.py +0 -51
  18. cognite_neat-0.79.0/cognite/neat/legacy/graph/stores/_memory_store.py +0 -43
  19. cognite_neat-0.79.0/cognite/neat/legacy/graph/stores/_oxigraph_store.py +0 -147
  20. cognite_neat-0.79.0/cognite/neat/legacy/graph/stores/_rdf_to_graph.py +0 -40
  21. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/LICENSE +0 -0
  22. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/README.md +0 -0
  23. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/__init__.py +0 -0
  24. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/__init__.py +0 -0
  25. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/asgi/metrics.py +0 -0
  26. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/configuration.py +0 -0
  27. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/context_manager/__init__.py +0 -0
  28. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/context_manager/manager.py +0 -0
  29. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/data_classes/__init__.py +0 -0
  30. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/data_classes/rest.py +0 -0
  31. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/explorer.py +0 -0
  32. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/configuration.py +0 -0
  33. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/core.py +0 -0
  34. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/crud.py +0 -0
  35. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/data_exploration.py +0 -0
  36. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/metrics.py +0 -0
  37. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/rules.py +0 -0
  38. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/routers/workflows.py +0 -0
  39. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/utils/__init__.py +0 -0
  40. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/utils/data_mapping.py +0 -0
  41. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/utils/logging.py +0 -0
  42. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/api/utils/query_templates.py +0 -0
  43. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/main.py +0 -0
  44. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/monitoring/__init__.py +0 -0
  45. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/monitoring/metrics.py +0 -0
  46. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/index.html +0 -0
  47. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/.gitignore +0 -0
  48. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/README.md +0 -0
  49. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/asset-manifest.json +0 -0
  50. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/favicon.ico +0 -0
  51. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/img/architect-icon.svg +0 -0
  52. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/img/developer-icon.svg +0 -0
  53. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/img/sme-icon.svg +0 -0
  54. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/index.html +0 -0
  55. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/logo192.png +0 -0
  56. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/manifest.json +0 -0
  57. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/robots.txt +0 -0
  58. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css +0 -0
  59. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css.map +0 -0
  60. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js +0 -0
  61. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.LICENSE.txt +0 -0
  62. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.map +0 -0
  63. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/app/ui/neat-app/build/static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg +0 -0
  64. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/config.py +0 -0
  65. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/constants.py +0 -0
  66. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/exceptions.py +0 -0
  67. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/_tracking/__init__.py +0 -0
  68. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/_tracking/base.py +0 -0
  69. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/_tracking/log.py +0 -0
  70. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  71. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  72. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/examples/__init__.py +0 -0
  73. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  74. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/exceptions.py +0 -0
  75. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_base.py +0 -0
  76. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/__init__.py +0 -0
  77. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_assets.py +0 -0
  78. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_events.py +0 -0
  79. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_files.py +0 -0
  80. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_labels.py +0 -0
  81. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_relationships.py +0 -0
  82. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_sequences.py +0 -0
  83. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_classic_cdf/_timeseries.py +0 -0
  84. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/extractors/_mock_graph_generator.py +0 -0
  85. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/issues/__init__.py +0 -0
  86. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/issues/loader.py +0 -0
  87. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/loaders/__init__.py +0 -0
  88. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/models.py +0 -0
  89. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/stores/_oxrdflib.py +0 -0
  90. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/graph/stores/_provenance.py +0 -0
  91. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/issues.py +0 -0
  92. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/__init__.py +0 -0
  93. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/__init__.py +0 -0
  94. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  95. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  96. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/examples/__init__.py +0 -0
  97. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  98. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/exceptions.py +0 -0
  99. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/extractors/__init__.py +0 -0
  100. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/extractors/_base.py +0 -0
  101. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/extractors/_dexpi.py +0 -0
  102. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/extractors/_graph_capturing_sheet.py +0 -0
  103. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/extractors/_mock_graph_generator.py +0 -0
  104. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/__init__.py +0 -0
  105. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/_asset_loader.py +0 -0
  106. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/_base.py +0 -0
  107. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/_exceptions.py +0 -0
  108. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/core/__init__.py +0 -0
  109. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/core/labels.py +0 -0
  110. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/core/models.py +0 -0
  111. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/core/rdf_to_assets.py +0 -0
  112. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/core/rdf_to_relationships.py +0 -0
  113. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/rdf_to_dms.py +0 -0
  114. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/loaders/validator.py +0 -0
  115. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/models.py +0 -0
  116. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/stores/__init__.py +0 -0
  117. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/stores/_base.py +0 -0
  118. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/stores/_graphdb_store.py +0 -0
  119. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/stores/_memory_store.py +0 -0
  120. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/stores/_oxigraph_store.py +0 -0
  121. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/stores/_oxrdflib.py +0 -0
  122. {cognite_neat-0.79.0/cognite/neat → cognite_neat-0.80.0/cognite/neat/legacy}/graph/stores/_rdf_to_graph.py +0 -0
  123. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/transformations/__init__.py +0 -0
  124. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/transformations/entity_matcher.py +0 -0
  125. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/transformations/query_generator/__init__.py +0 -0
  126. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/transformations/query_generator/sparql.py +0 -0
  127. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/graph/transformations/transformer.py +0 -0
  128. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/__init__.py +0 -0
  129. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/analysis.py +0 -0
  130. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-TNT.xlsx +0 -0
  131. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-graphql.xlsx +0 -0
  132. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/__init__.py +0 -0
  133. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/power-grid-containers.yaml +0 -0
  134. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/power-grid-example.xlsx +0 -0
  135. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/power-grid-model.yaml +0 -0
  136. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/rules-template.xlsx +0 -0
  137. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/sheet2cdf-transformation-rules.xlsx +0 -0
  138. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/skos-rules.xlsx +0 -0
  139. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/source-to-solution-mapping-rules.xlsx +0 -0
  140. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/examples/wind-energy.owl +0 -0
  141. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exceptions.py +0 -0
  142. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/__init__.py +0 -0
  143. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_base.py +0 -0
  144. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_core/__init__.py +0 -0
  145. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_core/rules2labels.py +0 -0
  146. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2dms.py +0 -0
  147. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2excel.py +0 -0
  148. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2graphql.py +0 -0
  149. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2ontology.py +0 -0
  150. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2pydantic_models.py +0 -0
  151. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2rules.py +0 -0
  152. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_rules2triples.py +0 -0
  153. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/exporters/_validation.py +0 -0
  154. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/__init__.py +0 -0
  155. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_base.py +0 -0
  156. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_dict2rules.py +0 -0
  157. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_dms2rules.py +0 -0
  158. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_graph2rules.py +0 -0
  159. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_json2rules.py +0 -0
  160. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_owl2rules/__init__.py +0 -0
  161. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2classes.py +0 -0
  162. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  163. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2properties.py +0 -0
  164. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2rules.py +0 -0
  165. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_spreadsheet2rules.py +0 -0
  166. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_xsd2rules.py +0 -0
  167. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/importers/_yaml2rules.py +0 -0
  168. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/__init__.py +0 -0
  169. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/_base.py +0 -0
  170. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/raw_rules.py +0 -0
  171. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/rdfpath.py +0 -0
  172. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/rules.py +0 -0
  173. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/tables.py +0 -0
  174. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/rules/models/value_types.py +0 -0
  175. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Export_DMS/workflow.yaml +0 -0
  176. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  177. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  178. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  179. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Import_DMS/workflow.yaml +0 -0
  180. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  181. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  182. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  183. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  184. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/legacy/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  185. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/py.typed +0 -0
  186. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/__init__.py +0 -0
  187. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/_shared.py +0 -0
  188. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/analysis/__init__.py +0 -0
  189. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/analysis/_base.py +0 -0
  190. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/analysis/_information_rules.py +0 -0
  191. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/examples/__init__.py +0 -0
  192. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/examples/wind-energy.owl +0 -0
  193. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exceptions.py +0 -0
  194. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/__init__.py +0 -0
  195. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_base.py +0 -0
  196. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_rules2dms.py +0 -0
  197. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_rules2excel.py +0 -0
  198. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_rules2ontology.py +0 -0
  199. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_rules2yaml.py +0 -0
  200. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/exporters/_validation.py +0 -0
  201. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/__init__.py +0 -0
  202. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_base.py +0 -0
  203. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dms2rules.py +0 -0
  204. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dtdl2rules/__init__.py +0 -0
  205. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  206. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  207. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  208. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_dtdl2rules/spec.py +0 -0
  209. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_owl2rules/__init__.py +0 -0
  210. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_owl2rules/_owl2classes.py +0 -0
  211. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  212. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_owl2rules/_owl2properties.py +0 -0
  213. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_owl2rules/_owl2rules.py +0 -0
  214. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_spreadsheet2rules.py +0 -0
  215. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/importers/_yaml2rules.py +0 -0
  216. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/__init__.py +0 -0
  217. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/base.py +0 -0
  218. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/dms.py +0 -0
  219. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/fileread.py +0 -0
  220. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/formatters.py +0 -0
  221. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/importing.py +0 -0
  222. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/spreadsheet.py +0 -0
  223. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/issues/spreadsheet_file.py +0 -0
  224. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/__init__.py +0 -0
  225. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/_base.py +0 -0
  226. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/_rdfpath.py +0 -0
  227. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/_types/__init__.py +0 -0
  228. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/_types/_base.py +0 -0
  229. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/_types/_field.py +0 -0
  230. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/data_types.py +0 -0
  231. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/__init__.py +0 -0
  232. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_converter.py +0 -0
  233. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_exporter.py +0 -0
  234. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_rules.py +0 -0
  235. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_rules_input.py +0 -0
  236. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_schema.py +0 -0
  237. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_serializer.py +0 -0
  238. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/dms/_validation.py +0 -0
  239. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/domain.py +0 -0
  240. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/entities.py +0 -0
  241. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/__init__.py +0 -0
  242. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/_converter.py +0 -0
  243. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/_rules.py +0 -0
  244. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/_rules_input.py +0 -0
  245. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/_serializer.py +0 -0
  246. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/information/_validation.py +0 -0
  247. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/rules/models/wrapped_entities.py +0 -0
  248. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/__init__.py +0 -0
  249. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/auxiliary.py +0 -0
  250. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf.py +0 -0
  251. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_classes.py +0 -0
  252. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_loaders/__init__.py +0 -0
  253. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_loaders/_base.py +0 -0
  254. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_loaders/_data_modeling.py +0 -0
  255. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_loaders/_ingestion.py +0 -0
  256. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/cdf_loaders/data_classes.py +0 -0
  257. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/exceptions.py +0 -0
  258. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/spreadsheet.py +0 -0
  259. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/text.py +0 -0
  260. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/upload.py +0 -0
  261. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/utils.py +0 -0
  262. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/utils/xml.py +0 -0
  263. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/__init__.py +0 -0
  264. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/_exceptions.py +0 -0
  265. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/base.py +0 -0
  266. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/cdf_store.py +0 -0
  267. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Export_DMS/workflow.yaml +0 -0
  268. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  269. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  270. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  271. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Import_DMS/workflow.yaml +0 -0
  272. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  273. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  274. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  275. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  276. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  277. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/manager.py +0 -0
  278. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/migration/__init__.py +0 -0
  279. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/migration/steps.py +0 -0
  280. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/migration/wf_manifests.py +0 -0
  281. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/model.py +0 -0
  282. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/__init__.py +0 -0
  283. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/data_contracts.py +0 -0
  284. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/__init__.py +0 -0
  285. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/__init__.py +0 -0
  286. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/graph_extractor.py +0 -0
  287. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/graph_loader.py +0 -0
  288. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/graph_store.py +0 -0
  289. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/rules_exporter.py +0 -0
  290. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/rules_importer.py +0 -0
  291. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/current/rules_validator.py +0 -0
  292. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/io/__init__.py +0 -0
  293. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/io/io_steps.py +0 -0
  294. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/__init__.py +0 -0
  295. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/graph_contextualization.py +0 -0
  296. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/graph_extractor.py +0 -0
  297. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/graph_loader.py +0 -0
  298. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/graph_store.py +0 -0
  299. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/graph_transformer.py +0 -0
  300. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/rules_exporter.py +0 -0
  301. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/lib/legacy/rules_importer.py +0 -0
  302. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps/step_model.py +0 -0
  303. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/steps_registry.py +0 -0
  304. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/tasks.py +0 -0
  305. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/cognite/neat/workflows/triggers.py +0 -0
  306. {cognite_neat-0.79.0 → cognite_neat-0.80.0}/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.79.0
3
+ Version: 0.80.0
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.80.0"
@@ -0,0 +1,3 @@
1
+ from .stores import NeatGraphStore
2
+
3
+ __all__ = ["NeatGraphStore"]
@@ -0,0 +1,5 @@
1
+ from typing import Literal, TypeAlias
2
+
3
+ MIMETypes: TypeAlias = Literal[
4
+ "application/rdf+xml", "text/turtle", "application/n-triple", "application/n-quads", "application/trig"
5
+ ]
@@ -6,6 +6,7 @@ from ._classic_cdf._relationships import RelationshipsExtractor
6
6
  from ._classic_cdf._sequences import SequencesExtractor
7
7
  from ._classic_cdf._timeseries import TimeSeriesExtractor
8
8
  from ._mock_graph_generator import MockGraphGenerator
9
+ from ._rdf_file import RdfFileExtractor
9
10
 
10
11
  __all__ = [
11
12
  "AssetsExtractor",
@@ -16,4 +17,18 @@ __all__ = [
16
17
  "EventsExtractor",
17
18
  "FilesExtractor",
18
19
  "LabelsExtractor",
20
+ "RdfFileExtractor",
19
21
  ]
22
+
23
+
24
+ TripleExtractors = (
25
+ AssetsExtractor
26
+ | MockGraphGenerator
27
+ | RelationshipsExtractor
28
+ | TimeSeriesExtractor
29
+ | SequencesExtractor
30
+ | EventsExtractor
31
+ | FilesExtractor
32
+ | LabelsExtractor
33
+ | RdfFileExtractor
34
+ )
@@ -0,0 +1,18 @@
1
+ from pathlib import Path
2
+
3
+ from rdflib import URIRef
4
+
5
+ from cognite.neat.graph._shared import MIMETypes
6
+ from cognite.neat.graph.extractors._base import BaseExtractor
7
+
8
+
9
+ class RdfFileExtractor(BaseExtractor):
10
+ def __init__(
11
+ self,
12
+ filepath: Path,
13
+ mime_type: MIMETypes = "application/rdf+xml",
14
+ base_uri: URIRef | None = None,
15
+ ):
16
+ self.filepath = filepath
17
+ self.mime_type = mime_type
18
+ self.base_uri = base_uri
@@ -6,7 +6,7 @@ from typing import ClassVar, Generic, Literal, TypeVar, overload
6
6
  from cognite.client import CogniteClient
7
7
  from cognite.client.data_classes.capabilities import Capability
8
8
 
9
- from cognite.neat.graph import NeatGraphStoreBase
9
+ from cognite.neat.graph import NeatGraphStore
10
10
  from cognite.neat.graph.issues.loader import FailedAuthorizationError
11
11
  from cognite.neat.issues import NeatIssue, NeatIssueList
12
12
  from cognite.neat.utils.upload import UploadDiffsID, UploadResultIDs
@@ -18,7 +18,7 @@ class BaseLoader(ABC, Generic[T_Output]):
18
18
  _new_line = "\n"
19
19
  _encoding = "utf-8"
20
20
 
21
- def __init__(self, graph_store: NeatGraphStoreBase):
21
+ def __init__(self, graph_store: NeatGraphStore):
22
22
  self.graph_store = graph_store
23
23
 
24
24
  @abstractmethod
@@ -17,7 +17,7 @@ from pydantic.main import Model
17
17
 
18
18
  from cognite.neat.graph._tracking import LogTracker, Tracker
19
19
  from cognite.neat.graph.issues import loader as loader_issues
20
- from cognite.neat.graph.stores import NeatGraphStoreBase
20
+ from cognite.neat.graph.stores import NeatGraphStore
21
21
  from cognite.neat.issues import NeatIssue, NeatIssueList
22
22
  from cognite.neat.rules.models import DMSRules
23
23
  from cognite.neat.rules.models.data_types import _DATA_TYPE_BY_DMS_TYPE
@@ -29,7 +29,7 @@ from ._base import CDFLoader
29
29
  class DMSLoader(CDFLoader[dm.InstanceApply]):
30
30
  def __init__(
31
31
  self,
32
- graph_store: NeatGraphStoreBase,
32
+ graph_store: NeatGraphStore,
33
33
  data_model: dm.DataModel[dm.View] | None,
34
34
  instance_space: str,
35
35
  class_by_view_id: dict[ViewId, str] | None = None,
@@ -48,7 +48,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
48
48
  cls,
49
49
  client: CogniteClient,
50
50
  data_model_id: dm.DataModelId,
51
- graph_store: NeatGraphStoreBase,
51
+ graph_store: NeatGraphStore,
52
52
  instance_space: str,
53
53
  ) -> "DMSLoader":
54
54
  issues: list[NeatIssue] = []
@@ -61,7 +61,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
61
61
  return cls(graph_store, data_model, instance_space, {}, issues)
62
62
 
63
63
  @classmethod
64
- def from_rules(cls, rules: DMSRules, graph_store: NeatGraphStoreBase, instance_space: str) -> "DMSLoader":
64
+ def from_rules(cls, rules: DMSRules, graph_store: NeatGraphStore, instance_space: str) -> "DMSLoader":
65
65
  issues: list[NeatIssue] = []
66
66
  data_model: dm.DataModel[dm.View] | None = None
67
67
  try:
@@ -0,0 +1,3 @@
1
+ from ._base import NeatGraphStore
2
+
3
+ __all__ = ["NeatGraphStore"]
@@ -0,0 +1,257 @@
1
+ import sys
2
+ import warnings
3
+ from collections.abc import Iterable
4
+ from datetime import datetime
5
+ from pathlib import Path
6
+ from typing import cast
7
+
8
+ import pytz
9
+ from rdflib import RDF, Graph, Namespace, URIRef
10
+ from rdflib.plugins.stores.sparqlstore import SPARQLUpdateStore
11
+ from rdflib.query import ResultRow
12
+
13
+ from cognite.neat.graph._shared import MIMETypes
14
+ from cognite.neat.graph.extractors import RdfFileExtractor, TripleExtractors
15
+ from cognite.neat.graph.models import Triple
16
+ from cognite.neat.rules.models.information import InformationRules
17
+ from cognite.neat.utils import remove_namespace
18
+ from cognite.neat.utils.auxiliary import local_import
19
+
20
+ from ._provenance import Change, Provenance
21
+
22
+ if sys.version_info < (3, 11):
23
+ from typing_extensions import Self
24
+ else:
25
+ from typing import Self
26
+
27
+
28
+ class NeatGraphStore:
29
+ """NeatGraphStore is a class that stores the graph and provides methods to read/write data it contains
30
+
31
+
32
+ Args:
33
+ graph : Instance of rdflib.Graph class for graph storage
34
+ rules:
35
+ """
36
+
37
+ rdf_store_type: str
38
+
39
+ def __init__(
40
+ self,
41
+ graph: Graph,
42
+ rules: InformationRules | None = None,
43
+ ):
44
+ _start = datetime.now(pytz.utc)
45
+ self.graph = graph
46
+ self.provenance = Provenance(
47
+ [
48
+ Change.record(
49
+ activity=f"{type(self).__name__}.__init__",
50
+ start=_start,
51
+ end=datetime.now(pytz.utc),
52
+ description=f"Initialize graph store as {type(self.graph.store).__name__}",
53
+ )
54
+ ]
55
+ )
56
+ self.rules = rules
57
+
58
+ if self.rules and self.rules.prefixes:
59
+ self._upsert_prefixes(self.rules.prefixes)
60
+
61
+ self.queries = _Queries(self)
62
+
63
+ def _upsert_prefixes(self, prefixes: dict[str, Namespace]) -> None:
64
+ """Adds prefixes to the graph store."""
65
+ _start = datetime.now(pytz.utc)
66
+ for prefix, namespace in prefixes.items():
67
+ self.graph.bind(prefix, namespace)
68
+
69
+ self.provenance.append(
70
+ Change.record(
71
+ activity=f"{type(self).__name__}._upsert_prefixes",
72
+ start=_start,
73
+ end=datetime.now(pytz.utc),
74
+ description="Upsert prefixes to graph store",
75
+ )
76
+ )
77
+
78
+ @classmethod
79
+ def from_memory_store(cls, rules: InformationRules | None = None) -> "Self":
80
+ return cls(Graph(), rules)
81
+
82
+ @classmethod
83
+ def from_sparql_store(
84
+ cls,
85
+ query_endpoint: str | None = None,
86
+ update_endpoint: str | None = None,
87
+ returnFormat: str = "csv",
88
+ rules: InformationRules | None = None,
89
+ ) -> "Self":
90
+ store = SPARQLUpdateStore(
91
+ query_endpoint=query_endpoint,
92
+ update_endpoint=update_endpoint,
93
+ returnFormat=returnFormat,
94
+ context_aware=False,
95
+ postAsEncoded=False,
96
+ autocommit=False,
97
+ )
98
+ graph = Graph(store=store)
99
+ return cls(graph, rules)
100
+
101
+ @classmethod
102
+ def from_oxi_store(cls, storage_dir: Path | None = None, rules: InformationRules | None = None) -> "Self":
103
+ """Creates a NeatGraphStore from an Oxigraph store."""
104
+ local_import("pyoxigraph", "oxi")
105
+ import pyoxigraph
106
+
107
+ from cognite.neat.graph.stores._oxrdflib import OxigraphStore
108
+
109
+ # Adding support for both oxigraph in-memory and file-based storage
110
+ for i in range(4):
111
+ try:
112
+ oxi_store = pyoxigraph.Store(path=str(storage_dir) if storage_dir else None)
113
+ break
114
+ except OSError as e:
115
+ if "lock" in str(e) and i < 3:
116
+ continue
117
+ raise e
118
+ else:
119
+ raise Exception("Error initializing Oxigraph store")
120
+
121
+ graph = Graph(store=OxigraphStore(store=oxi_store))
122
+ graph.default_union = True
123
+
124
+ return cls(graph, rules)
125
+
126
+ def write(self, extractor: TripleExtractors) -> None:
127
+ if isinstance(extractor, RdfFileExtractor):
128
+ self._parse_file(extractor.filepath, extractor.mime_type, extractor.base_uri)
129
+ else:
130
+ self._add_triples(extractor.extract())
131
+
132
+ def _parse_file(
133
+ self,
134
+ filepath: Path,
135
+ mime_type: MIMETypes = "application/rdf+xml",
136
+ base_uri: URIRef | None = None,
137
+ ) -> None:
138
+ """Imports graph data from file.
139
+
140
+ Args:
141
+ filepath : File path to file containing graph data, by default None
142
+ mime_type : MIME type of graph data, by default "application/rdf+xml"
143
+ add_base_iri : Add base IRI to graph, by default True
144
+ """
145
+
146
+ # Oxigraph store, do not want to type hint this as it is an optional dependency
147
+ if type(self.graph.store).__name__ == "OxigraphStore":
148
+
149
+ def parse_to_oxi_store():
150
+ local_import("pyoxigraph", "oxi")
151
+ from cognite.neat.graph.stores._oxrdflib import OxigraphStore
152
+
153
+ cast(OxigraphStore, self.graph.store)._inner.bulk_load(str(filepath), mime_type, base_iri=base_uri) # type: ignore[attr-defined]
154
+ cast(OxigraphStore, self.graph.store)._inner.optimize() # type: ignore[attr-defined]
155
+
156
+ parse_to_oxi_store()
157
+
158
+ # All other stores
159
+ else:
160
+ if filepath.is_file():
161
+ self.graph.parse(filepath, publicID=base_uri)
162
+ else:
163
+ for filename in filepath.iterdir():
164
+ if filename.is_file():
165
+ self.graph.parse(filename, publicID=base_uri)
166
+
167
+ def _add_triples(self, triples: Iterable[Triple], batch_size: int = 10_000):
168
+ """Adds triples to the graph store in batches.
169
+
170
+ Args:
171
+ triples: list of triples to be added to the graph store
172
+ batch_size: Batch size of triples per commit, by default 10_000
173
+ verbose: Verbose mode, by default False
174
+ """
175
+
176
+ commit_counter = 0
177
+ number_of_written_triples = 0
178
+
179
+ def check_commit(force_commit: bool = False):
180
+ """Commit nodes to the graph if batch counter is reached or if force_commit is True"""
181
+ nonlocal commit_counter
182
+ nonlocal number_of_written_triples
183
+ if force_commit:
184
+ number_of_written_triples += commit_counter
185
+ self.graph.commit()
186
+ return
187
+ commit_counter += 1
188
+ if commit_counter >= batch_size:
189
+ number_of_written_triples += commit_counter
190
+ self.graph.commit()
191
+ commit_counter = 0
192
+
193
+ for triple in triples:
194
+ self.graph.add(triple)
195
+ check_commit()
196
+
197
+ check_commit(force_commit=True)
198
+
199
+
200
+ class _Queries:
201
+ """Helper class for storing standard queries for the graph store."""
202
+
203
+ def __init__(self, store: NeatGraphStore):
204
+ self.store = store
205
+
206
+ def list_instances_ids_of_class(self, class_uri: URIRef, limit: int = -1) -> list[URIRef]:
207
+ """Get instances ids for a given class
208
+
209
+ Args:
210
+ class_uri: Class for which instances are to be found
211
+ limit: Max number of instances to return, by default -1 meaning all instances
212
+
213
+ Returns:
214
+ List of class instance URIs
215
+ """
216
+ query_statement = "SELECT DISTINCT ?subject WHERE { ?subject a <class> .} LIMIT X".replace(
217
+ "class", class_uri
218
+ ).replace("LIMIT X", "" if limit == -1 else f"LIMIT {limit}")
219
+ return [cast(tuple, res)[0] for res in list(self.store.graph.query(query_statement))]
220
+
221
+ def list_instances_of_type(self, class_uri: URIRef) -> list[ResultRow]:
222
+ """Get all triples for instances of a given class
223
+
224
+ Args:
225
+ class_uri: Class for which instances are to be found
226
+
227
+ Returns:
228
+ List of triples for instances of the given class
229
+ """
230
+ query = (
231
+ f"SELECT ?instance ?prop ?value "
232
+ f"WHERE {{ ?instance rdf:type <{class_uri}> . ?instance ?prop ?value . }} order by ?instance "
233
+ )
234
+
235
+ # Select queries gives an iterable of result rows
236
+ return cast(list[ResultRow], list(self.store.graph.query(query)))
237
+
238
+ def triples_of_type_instances(self, rdf_type: str) -> list[tuple[str, str, str]]:
239
+ """Get all triples of a given type.
240
+
241
+ This method assumes the graph has been transformed into the default namespace.
242
+ """
243
+
244
+ if self.store.rules:
245
+ query = (
246
+ f"SELECT ?instance ?prop ?value "
247
+ f"WHERE {{ ?instance a <{self.store.rules.metadata.namespace[rdf_type]}> . ?instance ?prop ?value . }} "
248
+ "order by ?instance"
249
+ )
250
+
251
+ result = self.store.graph.query(query)
252
+
253
+ # We cannot include the RDF.type in case there is a neat:type property
254
+ return [remove_namespace(*triple) for triple in result if triple[1] != RDF.type] # type: ignore[misc, index]
255
+ else:
256
+ warnings.warn("No rules found for the graph store, returning empty list.", stacklevel=2)
257
+ return []
@@ -8,7 +8,7 @@ from rdflib import Literal as RdfLiteral
8
8
 
9
9
  import cognite.neat.rules.issues as issues
10
10
  from cognite.neat.constants import PREFIXES
11
- from cognite.neat.graph.stores import NeatGraphStoreBase
11
+ from cognite.neat.graph.stores import NeatGraphStore
12
12
  from cognite.neat.rules.importers._base import BaseImporter, Rules, _handle_issues
13
13
  from cognite.neat.rules.issues import IssueList
14
14
  from cognite.neat.rules.models import InformationRules, RoleTypes
@@ -47,7 +47,7 @@ class InferenceImporter(BaseImporter):
47
47
  self.max_number_of_instance = max_number_of_instance
48
48
 
49
49
  @classmethod
50
- def from_graph_store(cls, store: NeatGraphStoreBase, max_number_of_instance: int = -1):
50
+ def from_graph_store(cls, store: NeatGraphStore, max_number_of_instance: int = -1):
51
51
  issue_list = IssueList(title="Inferred from graph store")
52
52
 
53
53
  return cls(issue_list, store.graph, max_number_of_instance=max_number_of_instance)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.79.0"
3
+ version = "0.80.0"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -1 +0,0 @@
1
- __version__ = "0.79.0"