Skip to content

Releases: simphony/simphony-osp

v3.9.0

07 Dec 13:03
8178abf
Compare
Choose a tag to compare
  • Extended schema validation feature to attributes (featuring not only cardinality verification, but also value, range for integer attributes and length for string attributes) (#822, #830)
  • Fixed typo in example_rdf_import_export.py (thanks @ahashibon)

v4.0.0

07 Dec 14:41
78a94bd
Compare
Choose a tag to compare

Changes since the last major version, as well as their motivation, are summarized below. For a detailed list of all changes since the last major version, check the commit history since the last commit common to this and the previous major release.

  • Rebranded OSP-core to SimPhoNy OSP. Replaced domain simphony-project.eu with simphony-osp.eu. Renamed Python package from osp-core to simphony-osp.

  • Python 3.6 is no longer supported.

Ontology management

In SimPhoNy, data takes the form of knowledge-graphs based on ontologies. All information is represented in terms of ontology individuals that belong to specific ontology classes, have specific attributes and can be connected to other individuals through relationships. Classes, attributes and relationships are defined in the ontologies. Therefore, in order for SimPhoNy to be able to properly interpret the data, such ontologies need to be made available to it. For that purpose, SimPhoNy includes an ontology management tool called pico.

This section is focused on the changes that affect the ontology languages supported by SimPhoNy, the changes affecting pico, the included ontology packages, and the definition of ontology packages.

SimPhoNy v4 aims to adhere to the OWL and RDFS standards from W3C, which led to the following changes:

In addition, the following ontology packages are now bundled with SimPhoNy:

Changes were made also to the way ontology packages are defined:

  • The collection of keywords used to define ontology packages has been reduced (click here to compare it with SimPhoNy v3). This change is motivated by the replacement of the CUDS concept by that of ontology individual (see Assertional Knowledge section of these release notes), as well as by the simplification of the retrieval of entities from ontology namespaces (see Terminological Knowledge section of these release notes).

Terminological knowledge

SimPhoNy v4 is geared towards the use of any OWL ontology or RDFS vocabulary. In the past major version, there was a bias towards the EMMO ontology, which led to a few consequences with respect to the handling of terminological knowledge. For example, as the EMMO did not require the use of annotation properties for A-Box construction, annotation properties were not supported.

  • Support for annotation properties, which are accessed normally from the namespace object.

  • It is no longer necessary to specify whether entities from ontology namespaces should be accessed by label or by prefix. It is simply possible to access them using both at all times, and all labels in all languages can be used.

Assertional knowledge (former CUDS API)

In SimPhoNy v3, assertional knowledge was represented as CUDS objects. The idea behind CUDS objects was to fit ontology entities in a hierarchical structure, inspired by the concept of mereotopology, that the EMMO ontology makes heavy use of.

Idea behind the CUDS concept from SimPhoNy v3

Idea behind the CUDS concept from SimPhoNy v3.

Therefore, CUDS objects were good to handle use-cases were mereotopology plays a role. However, the needs of the community of SimPhoNy users were different: most of them needed to use a knowledge graph rather than a hierarchical structure. This led to modifications in the implementation that tried to make a compromise mixing the original concept with RDF. However, a graph is not a hierarchical structure. Therefore, this mix was placing artificial constraints and limitations that made it impractical to use SimPhoNy whenever it was necessary to structure data in the form of a graph.

Therefore, SimPhoNy v4 foregoes this attempt to make a hierarchical structure compatible with a graph and is designed instead to just deal with the ontology-based data in its natural graph form. This has led to the following changes:

  • The concept of CUDS as a recursive container of ontology individuals controlled by the active and passive relationships defined for the ontology either in the ontology package file or YAML ontologies is no longer in the software. To transfer ontology individuals between sessions, just select them using any of the available querying methods and add them to the new session. The same behaviour that was available for CUDS objects can be achieved through the find function from the simphony_osp.tools.search module by passing the formerly defined active relationships as an argument.

  • As a consequence, the syntax for defining ontology packages has been simplified. Active and passive relationship definitions are no longer needed.

Other changes unrelated to the former CUDS concept have also been made in order to better support arbitrary OWL ontologies and RDFS vocabularies:

  • The label attribute of ontology individuals now refers to their rdfs:label/skos:prefLabel and is configurable.

  • Added the index notation as an additional manner to manage relationships, attributes and the newly supported annotations.

  • Using the index notation, any attribute can be assigned to any ontology individual. In SimPhoNy v3, the attributes that could be assigned were restricted to classes declared as the attribute's domain.

  • Non-functional ontology attributes are now supported.

Sessions and wrappers (from the user's perspective)

SimPhoNy v4 introduces significant changes in the Wrapper API. Although most changes only affect developers (see section Wrapper and Operations APIs (changes from the developers's perspective of these release notes), some of them also affect regular users.

A collection of those stem from the fact that the CUDS concept is no longer part of SimPhoNy. In SimPhoNy v3, CUDS objects enforced a hierarchical structure also on the interaction with software through wrappers, resulting in a myriad of issues. Basing SimPhoNy v4 internals completely on the RDF standard allowed to tackle such issues. This translates in a number of changes for users when dealing with sessions and wrappers:

  • Sessions no longer need to be instantiated with a wrapper object in order to work with them. The wrapper object was a "root" object from which all ontology individuals in the session were be reachable (in line with the hierarchical CUDS concept), that no longer needed. Ontology individuals are just contained in the session and can be distributed among several connected components of the session's knowledge graph. Therefore there cannot be "orphan" ontology individuals anymore (since they can always be accessed) and sessions do not need to be "pruned" anymore.

  • Improved RDF import and export features to better accommodate the new possibilities, although it is arguably still complex.

One of the features of SimPhoNy v3, the file support, was a great chance to extend the ontology-based knowledge graphs so that even the data that cannot be or may not be worth ontologizing can conceptually still fit in knowledge-graphs. Thus, in SimPhoNy v4, although the Wrapper API still needs to evolve to have all the features that would ideally be desired for them, files are consider...

Read more

v4.0.0rc4

26 Sep 13:47
7defe53
Compare
Choose a tag to compare
v4.0.0rc4 Pre-release
Pre-release

⚠️ This is a release-candidate version of the next major release of SimPhoNy. This version has not yet been thoroughly tested, and its functionality is not yet fully documented. Unless you are explicitly looking to try this version, please head to the latest stable release.

A summary of what changed since the last major version will be made available with the final release. Meanwhile, you may check the commit history since the last commit common to this and the stable release.

Changes since the last release-candidate:

  • Improve import and export functions (#818). Check out the new documentation. Added SKOS to the included ontologies.
  • Updated find with ontology annotation support (#819). Have a look at the documentation to learn how to use it.
  • Improved docstrings of Wrapper API methods (#823). Included BufferType in simphony_osp.development module.

v4.0.0rc3

09 Sep 17:49
b33e7ac
Compare
Choose a tag to compare
v4.0.0rc3 Pre-release
Pre-release

⚠️ This is a release-candidate version of the next major release of SimPhoNy. This version has not yet been thoroughly tested, and its functionality is not yet fully documented. Unless you are explicitly looking to try this version, please head to the latest stable release.

A summary of what changed since the last major version will be made available with the final release. Meanwhile, you may check the commit history since the last commit common to this and the stable release.

Changes since the last release-candidate:

  • Renamed dcat2 ontology package to dcat. (#812)
  • Added several members to the simphony_osp.ontology module. (#809)
  • Added several members to the simphony_osp.session module. (#810)
  • Replaced domain "simphony-project.eu" with "simphony-osp.eu". (#811)
  • Fixed minor bugs related to ontology restrictions and compositions, attributes, relationships, classes and individuals. Fixed minor bug in host and sparql functions. (#813)
  • Fixed several docstrings and public API definitions. (#814)

v4.0.0rc2

04 Aug 09:52
0e20478
Compare
Choose a tag to compare
v4.0.0rc2 Pre-release
Pre-release

⚠️ This is a release-candidate version of the next major release of SimPhoNy. This version has not yet been thoroughly tested, and its functionality is not yet fully documented. Unless you are explicitly looking to try this version, please head to the latest stable release.

A summary of what changed since the last major version will be made available with the final release. Meanwhile, you may check the commit history since the last commit common to this and the stable release.

Changes since the last release-candidate:

  • Possibility to import and export triples with predicates which are object properties and point to IRIs that do not belong to any class or belong to a class that is not defined on the ontology (#806)

v4.0.0rc1

15 Jul 15:23
1b34bad
Compare
Choose a tag to compare
v4.0.0rc1 Pre-release
Pre-release

⚠️ This is a release-candidate version of the next major release of SimPhoNy. This version has not yet been thoroughly tested, and its functionality is not yet fully documented. Unless you are explicitly looking to try this version, please head to the latest stable release.

A summary of what changed since the last major version will be made available with the final release. Meanwhile, you may check the commit history since the last commit common to this and the stable release.

v3.8.0

07 Apr 08:55
f2d15e4
Compare
Choose a tag to compare
  • Performance improvements: smaller delays when opening and navigating a remote triplestore, faster access to namespace elements.
  • Imported CUDS now keep their original IRIs. The previous behaviour was assigning an UUID to them, and adding a reference to their original IRI through an owl:sameAs predicate.
  • pico can now be used from within the Python interpreter as a module, see the usage instructions on the documentation.
  • pico has slightly improved its dependency management. It will impede the uninstallation of ontology packages that are dependencies of other packages (but still provide instructions on how to uninstall all of them together) and it will automatically install the dependencies of a package if such dependencies are bundled with OSP-core.
  • Added limited support for RDFS vocabularies (only classes are supported, not relationships). They can be installed in the same way as OWL ontologies are, check the documentation for more details.
  • OSP-core's code is now required to be formatted with black and isort. Several other code style conventions are also enforced. If you are a contributor, please check the "Contribute" section of the documentation for details on how to apply this formatting automatically.

v3.7.0

10 Feb 12:29
638fc6a
Compare
Choose a tag to compare
  • OSP-core is now available on PyPI.
  • When committing data within a session, OSP-core generates a warning when CUDS that have been used in the session (e.g. newly created) are unreachable from the wrapper object (the session's root). Generating this warning involves traversing the connected component of the graph containing the root, which is computationally expensive. Users will now be warned when they are working with a large dataset, so that they can turn off the unreachable CUDS warning when working with large datasets. Instructions on how to turn off the unreachable CUDS warning are provided within the large dataset warning itself.
  • Fixed bug that dropped the connection of the transport session during long data transfers.
  • Fixed bug that impeded the installation of ontologies with entities with multiple labels assigned when some of them had a language defined and some of them did not. The installation also did not work when the same entity had the same label but defined with multiple label predicates (e.g. rdfs:label and skos:prefLabel simultaneously).

v3.6.1

01 Feb 14:48
cbfa060
Compare
Choose a tag to compare

Critical bugfix release:

  • Fixed "Transport session not working with Python 3.10" (#740).

v3.6.0

09 Dec 10:00
e1383f8
Compare
Choose a tag to compare
  • Performance improvements for some CUDS API methods (see benchmark results).
  • Drop "-beta" label for releases.