Skip to content

Releases: cognitedata/neat

0.112.0

03 Mar 10:04
7d80a2b
Compare
Choose a tag to compare

Added

  • Drop-down menus for columns in the Excel representation of DMS Rules
    (data model)

Fixed

  • The neat.read.cdf.classic.graph() no longer loses asset partens when
    identifier='externalId'.

0.111.2

03 Mar 09:10
c6a5278
Compare
Choose a tag to compare

Improved

  • The neat.to.cdf.instances() no longer loads CogniteAsset (and
    extensions) twice.

0.111.1

28 Feb 15:28
b56bda3
Compare
Choose a tag to compare

Dummy release, testing of new release flow.

v0.111.0

28 Feb 09:14
0a2f51c
Compare
Choose a tag to compare

Fixed

  • Passing space_property to neat.to.cdf.instances() is no longer ignored.
  • The neat.inspect.issues(...) and neat.inspect.outcome.issues(...) now prints out a maximum of 50 issues. This is
    to avoid the output being too large. You can pass return_dataframe=True to get all issues as a DataFrame.
  • The neat.read.cdf.classic.graph(..., identifier="externalId") now correctly looks up external ID for
    label.dataSetId, relationship.dataSetId, relationship.sourceExternalId, and relationship.targetExternalId.
  • The neat.read.cdf.graph() extracts json as a json-string instead of a regular string.
  • The neat.read.cdf.graph() has start and endNode properties for edges.
  • Now DMS rules validation are checked for existence of all components of schema, raise error if at least one is missing
  • The neat.to.cdf.instances(space_property=)' now automatically fixes spaces with invalid characters
  • Filters were not taken into account when importing DMS Data Model
  • Description was not properly parsed from DMS data model (e.g. split between creator and description)
  • Print out of errors in neat.inspect.issues()
  • Handling of empty strings for implements in DMS and Information rules

Added

  • Enable data model to be composed of views from multiple spaces with warning being raised
  • The neat.to.cdf.instances(space_property=)' now automatically fixes spaces with invalid characters.
  • Support for less restrictive edge type
  • Public interface for exporting data model to ontology via neat.to.ontology()
  • Alpha flags to readers / to-ers that are not critical for v1 of neat
  • The neat.read.cdf.raw(...) method which supports reading raw data from CDF.
  • Added "Extending Core Data Model via Concept Selection" tutorial to docs

Improved

  • Setting of proper value type for default
  • Errors that do not have loc are now well handled in neat session
  • Validation on used spaces
  • The neat.set.data_model_id() now also sets the display name of the data model.
  • Data model implements visualization in NeatSession

v0.110.0

28 Feb 08:05
5b34745
Compare
Choose a tag to compare

[0.110.0] - 17-02-2025

Added

  • [ALPHA] Added standardization of version and space for views in DMS data model under neat.prepare.data_model.standardize_space_and_version().
  • The neat.to.excel(...) now supports passing a data model directly in the include_reference parameter.
  • [ALPHA] Ability to subset data model to desired concepts (classes/views) via neat.subset.data_model endpoint
  • Validation of DMS rules does not allow re-definition of any of the resources
  • Validation of INFO rules does not allow re-definition of any of the resources
  • Validation of DMS rules does not allow re-definition of any of the resources

Fixed

  • In Model was not automatically set to True importing from spreadsheet missing value in this column
  • Change the Instance source field on InformationProperty to be less restrictive. All URIs are now allowed.
  • The neat.infer() maintains acronyms when renaming invalid properties/classes.
  • neat.show.data_model() fixed for information rules

Changed

  • Moved examples under neat.read.examples[nordic44, pump_example]
  • [BREAKING] In Information rules, the Instance Source field is now a URIRef list instead of a RDFPath. In addition,
    the classes now also have an Instance Source column with the rdf:type of the class.

Improved

  • The neat.read.excel(...) now gives more information about the location of the error in the Excel file.
  • Automatic drop of rows in Excel rules if cells for critical columns are missing
  • [BREAKING] multi value types are now serialized as a comma separated values (previous we used | as separator)
  • The neat.infer() now is case-insensitive when inferring the data model. This is to match CDF's behavior.

[0.109.4] - 03-02-2025

Fixed

  • The neat.create.enterprise_model() now sorts properties based on (view + property) in alphabetical order.

[0.109.3] - 03-02-2025

Added

  • Support for standardizing of naming in the neat.prepare.data_model.standardize_naming() method.

Improved

  • neat.inspect.issues() for errors in Metadata sheet and ill-formed views in te Views and Properties sheets
  • neat.infer() now automatically makes the inferred classes and properties comply with the CDF naming conventions.

Fixed

  • The neat.create + neat.to.excel(..., include_reference=True) now correctly includes the reference data model
    in the Excel file.

[0.109.2] - 31-01-2025

Added

  • [ALPHA] Support for external modification of data model from NeatSession and its re-import
  • Export of data model to Excel will now automatically hide the columns used for the internal neat processes.
  • [ALPHA] when exporting data model to Excel one can specify to export only properties of views which are in the same space as the data model

Fixed

  • The neat.create.data_product_model no longer includes properties pointing to views not in the model.

[0.109.1] - 28-01-2025

Fixed

  • The neat.inspect.issue() now returns data model issues.
  • Issue with setting new data model id for rules that have raw filter

[0.109.0] - 28-01-2025

Improved

  • AML and DEXPI reader for neat session automatically perform extraction and transformation
  • The get_cognite_client function no longer prints an irrelevant warning message when running outside a git
    repository.
  • The neat.verify() no longer gives warnings about empty Cognite system containers.
  • The neat.infer() is now much faster for large number of instances. (It now scales linearly with number of properties
    and not instances.). In addition, it supports inferring schema with an existing data model.

Changed

  • [BREAKING] NeatSession.prepare.data_model.cdf_compliant_external_ids is moved under NeatSession.fix.data_model.cdf_compliant_external_ids
  • [BREAKING] cdf_compliant_external_ids expects validated InformationRules as input instead of InformationInputRules
  • [BREAKING] The neat.prepare.data_model.to_solution/to_enterprise/to_data_product methods are moved to
    neat.create.solution_model/enterprise_model/data_product_model. In addition, the methods been simplified with
    fewer parameters and better defaults.
  • [BREAKING] NeatSession.prepare.data_model.prefix works only on verified Information and DMS rules, where in case of both rules are provided, it will use DMS rules
  • [BREAKING] The neat.convert() no longer takes a target parameter. Only conversion from Information to DMS rules is
    supported.
  • [BREAKING] The neat.prepare.data_model.drop(...) has been moved to neat.drop.data_model.views(...). In addition,
    the drop paramter has been split into view_external_id and group to differentiate between dropping individual
    views and groups of views.

Removed

  • [BREAKING] NeatSession.prepare.dexpi and NeatSession.prepare.aml methods are removed. Use NeatSession.read.rdf.dexpi and NeatSession.read.rdf.aml instead.
  • [BREAKING] NeatSession.prepare.data_model.cdf_compliant_external_ids

Fixed

  • Fixed issue with not correctly set of max count when inferring properties which value type are multi type
  • neat.read.cdf.classic.graph no longer requires read access to data sets in CDF.

Added

  • Support for "on-disk" storage for oxigraph in NeatSession
  • New method neat.inspect.views() to check the views in the data model.

[0.108.0] - 22-01-2025

Added

  • Support RDF Datasets in NeatGraphStore enabling writing of sources triples to dedicated named graphs
  • Support for classic graph using externalIDs neat.read.cdf.classic.graph(..., id="externalId")

Improved

  • The neat.infer() no longer skips externalId/external_id properties when inferring the data model.
  • Importing rules which were exported then modified externally then re-imported to the neat session
  • The neat.read.cdf.classic.graph(...) gives an error is the root asset is not found in CDF.
  • The neat.read.cdf.graph(...) method now shows progress bars for each view when loading large graphs.
  • Initiating NeatSession will automatically select the best possible graph storage
  • Form of internal neat data model
  • The neat.read.cdf.classic.graph(...) now looks-up internal ids for external ids upon extraction instead of a
    separate step. This has a significant performance improvement for large graphs.

Changed

  • The neat.read.cdf.graph(...) no longer extracts instances from cognite views by default. Instead, the parameter
    skip_cognite_views has been added to the method to allow for this.

[0.107.0] - 15-01-2025

Fixed

  • The neat.prepare.instances.relationships_as_edges() no longer creates invalid identifiers for the edges.
  • The neat.to.cdf.instances() can now create edges with properties.

Added

  • Fast serialization of NeatGraphStore
  • neat.to.session(...) and neat.from.session(...) methods to save and load a NeatSession object to and from a file.
  • Internal support for remote oxigraph store
  • Neat can now read a knowledge graph from DMS with the neat.read.cdf.graph(...) method.

Improved

  • Better error message if NeatSession(..., storage="oxigraph") and the oxigraph package is not installed.
  • NeatIDs are now human-readable and deterministic.
  • The neat.convert() from DMS ot information now sets the container.usedFor to "node"/"edge"/"all" based on
    how the classes are implemented.

Changed

  • [BREAKING] The Transformation column in the Information Data Model properties sheet has been renamed to
    Instnace Source.
  • [BREAKING] The neat.convert() no longer has a property mode used to recognize classes that should be implemented
    as edges. Instead, information model to dms model conversion classes with both startNode and endNode properties
    are implemented as edges.

Removed

  • [BREAKING] The neat.prepare.instances.classic_to_core() and neat.prepare.data_models.add_implents_to_classes()
    methods have been removed. These were only used for the classic to core flow. The simplified classic to core flow
    now solves this automatically.

[0.106.0] - 09-01-2025

Added

  • Method for setting session client, neat.set.client(...).

Fixed

  • neat.prepare.instances.make_connection_on_exact_match can now run multiple times.
  • The mapping.data_model.classic_to_core method now produces a ..SourceSystem with a guid property that ensures
    that only instances written through this view are returned when querying it.
  • The neat.read.cdf.classic.graph(...) now handles lack of access to CDF resources more gracefully.

Improved

  • neat.infer(...) and neat.to.cdf.instances(...) now display a progress bar if the number of instances is large.

[0.105.2] - 08-01-2025

Added

  • The get_cognite_client function uses the current working directory to store the environment file if neat
    is not run inside a git repository.

[0.105.1] - 08-01-2025

Added

  • neat.to.cdf.instances() now automatically ignore relations above the DMS limit of 100. This is to ensure that
    the instances are successfully loaded into CDF. A warning is issued to the user if any relations are ignored.

Fixed

  • The neat.prepare.instances.make_connection_on_exact_match no longer raises a SyntaxError when called.

[0.105.0] - 07-01-2025

Added

  • All neat.read methods now supports reading from a URL.
  • neat.prepare.instances.connection_to_data_type(...) added to convert connection to data type.
  • neat.prepare.instances.classic_to_core() which bundles the preparation from classic to core.

Fixed

  • neat.read.yaml(...) no longer raises a ValueError if a view is referencing an enum property in a container
    that is not part of the model.
  • neat.read.yaml('....zip', format='toolkit') now correctly puts containers into a subfolder in the zip file.
  • `neat.to.cdf.data_model(......
Read more

v0.90.2

09 Sep 08:29
0fa38e3
Compare
Choose a tag to compare

Changes from 0.88.3 until and including 0.90.2

  • Added:

    • DMSExtractor to extract instances from CDF into NeatStore.
    • Support for edges with properties, explicit node types, and units on fload64 and float32 in DMS Rules.
    • Support for enums in DMS Rules.
  • Improved:

    • Data model visualization reduced to export-only in the Knowledge Acquisition tutorial.
    • New video added for the Export Semantic Data Model chapter.
    • Default handling for connections and unknown value types in DMS rules.
    • Improved handling of properties pointing to non-existing nodes in data model inference.
    • Improved handling of cardinality for attribute properties and multiple predicates in concept definitions.
  • Changed:

    • Workflow renamed from Visualize_Semantic_Data_Model to Export_Semantic_Data_Model.
    • Breaking change: Removed InformationRules.as_dms_rules() method, use cognite.neat.rules.transformers and transform method instead.
  • Removed:

    • Visualize_Data_Model_Using_Mock_Graph removed from UI, leaving only the workflow builder and executor features.
  • Fixed:

    • File upload issue causing blank screens in UI.
    • Graph store step config issue preventing triple loading.
    • Circular dependency issue.
    • DMSLoader now correctly identifies edges and sets node types.
    • IMF rules importer issue with non-compliant identifiers.
    • Duplicate generation of properties.

v0.88.3

20 Aug 11:40
6cb8f85
Compare
Choose a tag to compare

[0.88.3] - 20-08-24

Fixed

  • IMF rules importer failing due to references

Improved

  • Handling of references for OWL importer

Added

  • Test for IMF importer

v0.88.2

18 Aug 05:12
91f9ffe
Compare
Choose a tag to compare

Added

  • IMF rules importer

Improved

  • Organization of RDF based importers

Details

Full Changelog: v0.85.4...v0.88.2

v0.85.4

01 Jul 13:50
e65cee2
Compare
Choose a tag to compare

Fixed
Another issue with docker release.

What's Changed

Full Changelog: v0.85.3...v0.85.4

v0.85.3

01 Jul 09:59
5b90dc8
Compare
Choose a tag to compare

Fixed

  • Another issue with docker release.

What's Changed

Full Changelog: v0.82.2...v0.85.3