CatalogueOfLife / checklistbank

UI for checklistbank.org
https://www.checklistbank.org/
7 stars 2 forks source link

Sector comparison view #35

Open mdoering opened 5 years ago

mdoering commented 5 years ago

Visualizing changes between different sector sync attempts should assist the editorial work a lot. The API is providing two ways of comparing different versions of a sector:

TextTree A indented, simple text tree representation including synonyms for the entire sector is part of the SyncImport metrics we generate for every sync attempt. The API offers a diff service between any two successful attempts which can be rendered as a markdown table. We can easily change the representation or even allow to ask for different formats (e.g UnifiedDiff, Markdown, Html)

http://api-dev.col.plus/assembly/3/sync/210/treediff?attempts=7..9

NameIndeIds Also the complete set of NameIndexIds for all names is included. The API will offer a diff between any 2 attempts which could be visualised in a simple (potentially large) table.

http://api-dev.col.plus/assembly/3/sync/210/namesdiff?attempts=7..9

thomasstjerne commented 5 years ago

The namesdiff gives a list of nameIndexIds. I cant find a way to retrieve a name by nameIndexId, could they be regular ids instead, or is there some way to get them by nameIndexId?

mdoering commented 5 years ago

nameIndexId are nameId from the pCat, that's all they are. 8ww8gj is therefore resolved as http://api-dev.col.plus/dataset/2/name/8ww8gj

I could also expose the names index with a special url to now have to memorize the datasetKey.

mdoering commented 5 years ago

The usage information only exists in the sector source dataset. But there is no guarantee that the name still exists in the source if its not the latest import. The names index will never remove a name so you can always resolve the ids there.

To retrieve a real name usage from a dataset by the nameIndexID you should use the search with a NAME_INDEX_ID query param.

thomasstjerne commented 5 years ago

But how do I get one name by nameIndexId in the names index?

mdoering commented 5 years ago

see above, isn't that what you need? The search is exposing a bug @ayco-at-naturalis promised to fix this week: https://github.com/Sp2000/colplus-backend/issues/298

It should then be http://api-dev.col.plus/name/search?datasetKey=2045&nameIndexID=9kpmj7

But I think you are better off using the names index directly (see above)

mdoering commented 5 years ago

search by nameIndexID is working now: http://api-dev.col.plus/name/search?nameIndexID=6r_vqz

thomasstjerne commented 4 years ago

This one is blocked by https://github.com/Sp2000/colplus-backend/issues/384

Sector 2728 has two syncs: https://api-dev.col.plus/assembly/3/sync?sectorKey=2728&state=finished&limit=2

but no data recieved here https://api-dev.col.plus/sector/2728/treediff?attempts=1..2