-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cube attribute: published/draft -> versioned cubes #34
Comments
|
To review: |
|
See commit zazuko/rdf-cube-schema-viz@8b0e0a1 (mentioned the wrong issue, sorry about) |
FYI: Only published datasets will be written into the Lindas DB (as part of the publication process). So therefore this flag might be either be irrelevant for ITX or used in order to establish a preview mechanism. |
@danielmittag Yes, preview is definitely a use-case, as I described in this issue. Even if we only end up with "published" cubes in the MVP, it's useful to specify this attribute. |
Merging the concerns of zazuko/rdf-cube-schema-viz#2 with this. |
The scope( if the dataset/cube shall be shown in visualize.admin.ch ) is dependent on zazuko/cube-creator#319. |
Further do we have now Versions in cubes dependent on zazuko/cube-creator#318 they will be also explicitly marked with the version number. Once we have examples for this we need a query for @herrstucki which lists the last version of the cubes to be shown in "visualize.admin.ch". |
Maybe it should be similar to how swisstopo links from the "main" of a municipality entry to different versions via dc:hasVersion (e.g. https://ld.geo.admin.ch/boundaries/municipality/2553?format=html) If this is all described somewhere already, please let me know :) Re: example queries: will I need to do this with "raw" SPARQL or is this something that's possible with https://github.com/zazuko/rdf-cube-view-query (AFAIK it's currently not possible to filter cubes with it)? |
After today's discussion the main initial use case is for the Visualization Tool is to hold a reference to a cube that will automatically resolve to the latest version. E.g. something similar to npm's tagging system, where publishing a new version will update the Locking a chart to use a specific version also needs to be possible but is of lesser priority. E.g. |
It is unfortunately not easily possible to completely exchange the We have discussed 3 variations which are possible to connect the different versions of the same cubes and navigate them:
This different possibilities can be also combined. It depends also a bit what is the best for the https://github.com/zazuko/rdf-cube-view-query @bergos ? Any preference @herrstucki ? Finally we had a short brainstorm on the problematic of changing structure inside the cube. Our first take on this is that we provide all metadata in regards of changes in the structure or also used variables, or min. / max. values. That said, it is best that the consuming application will decide on what changes it can migrate too in regard of which use case it implements. (In the case of visualize.admin.ch the changes which are still acceptable might even change by the kind of graph drawing was chosen.) More practical solution in the beginning might be defined with the customer. |
@herrstucki @bergos ping? |
Final first implementation: Draft / Published is attached to the cube in their kind of Class A cube is in the scope of an application by adding Versioned Cubes:
|
@bergos for Versioned Cubes we need:
|
I would propose to extend the Find the version history of a cube: const versionHistory = cube.in(ns.schema.hasPart).term Find all cubes attached to the version history: const cubes = await source.cubes({
filters: [
Cube.filter.isPartOf(versionHistory)
]
}) Find latest cube for a specific version history (still returns an array, but must have length 1 if there is no error in the data): const cubes = await source.cubes({
filters: [
Cube.filter.isPartOf(versionHistory),
Cube.filter.noValidThrough()
]
}) |
@herrstucki would that solve the versioning part for you? |
I created this PR zazuko/rdf-cube-view-query#28 for the mentioned features. |
The example looks good to me! However, @bergos' example above I don't understand fully: const versionHistory = cube.in(ns.schema.hasPart).term Is |
@herrstucki
<versionHistory> <hasPart> <cube/1>.
<cube/1> <isPartOf> <versionHistory>. # virtual, does not exist in the store |
@bergos https://github.com/zazuko/rdf-cube-schema-viz/issues/1#issuecomment-772507646 could almost 1:1 be used in the docs of rdf-cube-view-query lib.. do you want to paste it there? |
Ahh, didn't know about the difference between |
Good to close? |
also add the description about the version of the dimension visualize-admin/visualization-tool#75 (comment) |
@herrstucki please be aware that https://ld.admin.ch/definedTerm/creativeWorkStatus/ will change to https://ld.admin.ch/vocabulary/creativeWorkStatus/. Therefore
will change to
This change will start gradually in INT once zazuko/cube-creator#793 is created. So I propose do query for both meanwhile, before going to PROD we will assure that only the second and final version is active. |
@herrstucki i added this section: https://github.com/zazuko/rdf-cube-schema-viz/blob/master/README.md#version-history-of-cubes. Two things:
|
I find it hard to come up with an exhaustive list but broadly speaking:
/cc @ptbrowne |
@herrstucki Thank you. I think it is enough to understand the problem which originates of changing structurally for new versions. We will not be able to strictly check these anyway. @semanticfire will integrate this with ongoing documentation effort. |
We had a small discussion about this with @herrstucki.
I am not sure what to make of that. If this is only done in the documentation, there will be charts which will error. I think it should be the cube creator responsibility to automatically expire the cube if any major change have been done to the cube. This problem is very similar to what's being done with semantic versioning for libraries. It would be good to list all those cases and assign an importance to this. As a starter:
As right now we do not have this "semantic versioning", I think "major version bump" means here "deprecating the cube". The charts should automatically bump until the next deprecation flag on a cube version. |
We absolutely can add such checks to not allow a publication of a cube which changes in a form which is not allowed. That is what I was asking for. If you can provide a list of checks to do, we can attack this. That is speaking for the cube-creator. Other data providers might still create cubes which are not valid, so always try to have safe-guards in your implementation. |
The general functionality is described at https://zazuko.github.io/rdf-cube-schema/#version-history-of-cubes The LINDAS / visualize.admin.ch specific information can be found here https://github.com/zazuko/cube-creator/wiki/LINDAS-Specifics#needed-attributes-that-a-cube-shows-up-on-visualizeadminch. And finally for now we have a remark on the allowed changes for compatibility of the same version line here https://github.com/zazuko/cube-creator/wiki/4.-Publication#to-check-before-a-publication. |
Cube-level metadata attribute to describe if a cube is "published" or "draft"/"preview"
The text was updated successfully, but these errors were encountered: