cjio
cjio copied to clipboard
lineage only for some operators?
Why certain commands are included in the lineage (eg merge, filter_lod), while others are not (eg. clean), when all of them modifies the citymodel.
We saw this as a lineage vs. versioning balance. In theory, lineage only cares about major geoprocessing steps. Something like clean is better stored in the versioning of a city model, in my opinion. It was also a first step in automatic metadata generation and started with specific major processes with the hope that it might inspire others. Metadata can be subjective so users can also make their own decisions in the end about which steps they wish to include. I think the discussion about lineage vs. versioning is an interesting one and one that is on going. I'm not against other steps being included though, and I hope that by not including them I'm not suggesting that they shouldn't be included, just that we didn't prioritise them at the time for lineage. The more metadata the better.
One thing to add here, from a developer's perspective, is that adding a lineage item falls under the responsibility of the individual commands and might require different implementation per operation. So, we should keep track of that. Unfortunately, the boundaries of what should be in lineage and how it's documented aren't always clear, afaik myself, so it's something to think about while moving forwards and try and improve as we implement more things in cjio.
New behaviour of cjio is the following (d094f851a1a44e8fa0ccb10c7a52e3497f78d229):
If "+metadata-extended"
is in the file then ops that modify the file (merge, subset, filter_lod) will update the
"+metadata-extended"
(with all the advanced metadata, including lineage), if not present then nothing is added.
One can simply add the "+metadata-extended"
with the new cjio operator:
metadata_create
And one can delete the "+metadata-extended"
(which would mean the ops won't store or update metadata) with the new cjio operator: metadata_remove
I also bluntly decided to start the name of cjio with the property and add the verb after, easier for users, so we have for metadata:
metadata_create Add the +metadata-extended properties...
metadata_get Shows the metadata and +metadata-extended of...
metadata_remove Remove the +metadata-extended properties.
metadata_update Update the +metadata-extended for properties...
Lineage for clean
or remove_textures
is not implemented yet, but I reckon it should.