From f0e94aabc71d947ee26adecd79ebaaad7e46ea31 Mon Sep 17 00:00:00 2001 From: ml bonhomme <bonhomme@teklia.com> Date: Tue, 23 Jan 2024 14:29:15 +0000 Subject: [PATCH] Cache corpus worker runs --- arkindex/documents/fixtures/data.json | 1132 +++++++++-------- arkindex/process/api.py | 51 + .../management/commands/cache_worker_runs.py | 12 + arkindex/process/managers.py | 37 +- .../migrations/0027_workerrun_has_results.py | 18 + arkindex/process/models.py | 1 + arkindex/process/serializers/imports.py | 19 + arkindex/process/serializers/worker_runs.py | 12 +- .../tests/commands/test_cache_worker_runs.py | 59 + .../process/tests/test_corpus_worker_runs.py | 188 +++ arkindex/project/api_v1.py | 2 + 11 files changed, 958 insertions(+), 573 deletions(-) create mode 100644 arkindex/process/management/commands/cache_worker_runs.py create mode 100644 arkindex/process/migrations/0027_workerrun_has_results.py create mode 100644 arkindex/process/tests/commands/test_cache_worker_runs.py create mode 100644 arkindex/process/tests/test_corpus_worker_runs.py diff --git a/arkindex/documents/fixtures/data.json b/arkindex/documents/fixtures/data.json index b515da387b..e83b947afe 100644 --- a/arkindex/documents/fixtures/data.json +++ b/arkindex/documents/fixtures/data.json @@ -1,19 +1,19 @@ [ { "model": "process.process", - "pk": "55e92ea6-625a-4c30-9724-b1f327941cac", + "pk": "058fd42a-ff15-4c95-95fc-e3743dbbbcdb", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "name": null, - "creator": 2, + "creator": 1, "corpus": null, - "mode": "local", + "mode": "repository", "revision": null, "activity_state": "disabled", "started": null, "finished": null, - "farm": null, + "farm": "296cbab6-7c00-4866-8890-4e40bf78a6a6", "element": null, "folder_type": null, "element_type": null, @@ -36,19 +36,19 @@ }, { "model": "process.process", - "pk": "6f170a31-9cf3-4fef-a684-ce8c8a4000d2", + "pk": "685bdd10-7fdf-4363-b62e-886bd89a4919", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "name": null, - "creator": 1, - "corpus": null, - "mode": "repository", + "name": "Process fixture", + "creator": 2, + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "mode": "workers", "revision": null, "activity_state": "disabled", "started": null, "finished": null, - "farm": "d4639943-3bc5-4839-ba11-bac03818050c", + "farm": "296cbab6-7c00-4866-8890-4e40bf78a6a6", "element": null, "folder_type": null, "element_type": null, @@ -71,12 +71,12 @@ }, { "model": "process.process", - "pk": "6f8334b3-b89c-48ef-b69f-255a5c4f868d", + "pk": "b569febd-7bb0-4283-8d86-4535d43a5686", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "name": null, - "creator": 1, + "creator": 2, "corpus": null, "mode": "local", "revision": null, @@ -106,19 +106,19 @@ }, { "model": "process.process", - "pk": "d9f1b26c-6aae-4e22-a9cc-d218a245794e", + "pk": "ee420daa-2192-43e1-9206-726edec61c72", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "name": "Process fixture", - "creator": 2, - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "mode": "workers", + "name": null, + "creator": 1, + "corpus": null, + "mode": "local", "revision": null, "activity_state": "disabled", "started": null, "finished": null, - "farm": "d4639943-3bc5-4839-ba11-bac03818050c", + "farm": null, "element": null, "folder_type": null, "element_type": null, @@ -141,25 +141,25 @@ }, { "model": "process.repository", - "pk": "c32a2335-9132-402b-9a3b-bd76b0140c1a", + "pk": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "fields": { - "url": "http://gitlab/repo" + "url": "http://my_repo.fake/workers/worker" } }, { "model": "process.repository", - "pk": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "pk": "d9701b21-f620-497f-839e-049969784e2b", "fields": { - "url": "http://my_repo.fake/workers/worker" + "url": "http://gitlab/repo" } }, { "model": "process.revision", - "pk": "97306172-bca6-46a6-9789-4b084e09c008", + "pk": "24b5a51d-1c85-460c-ba90-269277a61424", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "repo": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repo": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "hash": "1337", "message": "My w0rk3r", "author": "Test user" @@ -167,11 +167,11 @@ }, { "model": "process.revision", - "pk": "c5cf2885-3440-4838-be93-d8211c8a811c", + "pk": "9104ff70-7586-463d-a230-949225f00bf8", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "repo": "c32a2335-9132-402b-9a3b-bd76b0140c1a", + "repo": "d9701b21-f620-497f-839e-049969784e2b", "hash": "42", "message": "Salve", "author": "Some user" @@ -179,50 +179,50 @@ }, { "model": "process.worker", - "pk": "03ca969c-2fee-4a4c-b2f7-c283fb72bf91", + "pk": "31fcc074-a86e-4f5f-9416-f548a4b428cc", "fields": { - "name": "Worker requiring a GPU", - "slug": "worker-gpu", - "type": "7dee488e-7a48-434b-9163-6396972bff7f", + "name": "Document layout analyser", + "slug": "dla", + "type": "b4cee6a9-d059-48dc-9e2d-e0d591d45e37", "description": "", - "repository": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repository": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "public": false, "archived": null } }, { "model": "process.worker", - "pk": "081bfea3-f8eb-4070-9cb4-6cc4e7b260b8", + "pk": "32005c5b-88f1-4c54-ad38-a1276558e3e3", "fields": { - "name": "Recognizer", - "slug": "reco", - "type": "250cfaca-9733-42ef-a265-b8e8aea73075", + "name": "File import", + "slug": "file_import", + "type": "799fd6b7-945d-4f1f-9252-2aae4f3cc889", "description": "", - "repository": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repository": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "public": false, "archived": null } }, { "model": "process.worker", - "pk": "3d121605-190a-4faa-8085-e7c1bffc4297", + "pk": "5e4258d9-f8a2-4716-aac2-9293a521831a", "fields": { - "name": "Document layout analyser", - "slug": "dla", - "type": "40620987-763e-4e69-baa8-5bdf28f8b6c3", + "name": "Recognizer", + "slug": "reco", + "type": "ed8d9b05-5b55-4dc9-9724-ad8cd437a711", "description": "", - "repository": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repository": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "public": false, "archived": null } }, { "model": "process.worker", - "pk": "6a9a5388-c047-4bbf-9c41-86fbc578fd92", + "pk": "71ad2a59-a1c5-427e-94da-bc45c944f0a7", "fields": { "name": "Custom worker", "slug": "custom", - "type": "a9458b4e-5ac9-4caa-b2fd-516b16222604", + "type": "6d23ada7-4c6e-4fc0-b527-695cdeb3141c", "description": "", "repository": null, "public": false, @@ -231,92 +231,94 @@ }, { "model": "process.worker", - "pk": "a9950b39-1c6d-4dde-bbd5-9545871189f4", + "pk": "7df6f050-5af7-4338-9e6b-d99ade1bfc24", "fields": { - "name": "File import", - "slug": "file_import", - "type": "6772567a-5429-4d97-b1aa-8c779d30c68f", + "name": "Worker requiring a GPU", + "slug": "worker-gpu", + "type": "b3b684f3-8b66-4c5b-84a3-75bb9607d845", "description": "", - "repository": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repository": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "public": false, "archived": null } }, { "model": "process.worker", - "pk": "ddeda096-4d97-45c5-95fc-600397638cb7", + "pk": "f8f04683-490f-481c-8fdf-86ad4bea60b7", "fields": { "name": "Generic worker with a Model", "slug": "generic", - "type": "250cfaca-9733-42ef-a265-b8e8aea73075", + "type": "ed8d9b05-5b55-4dc9-9724-ad8cd437a711", "description": "", - "repository": "eaa88eb6-31f6-464c-bba1-d64724703d2f", + "repository": "d00dbcb7-c16c-4c3f-b070-bc3b4e5c4fa3", "public": false, "archived": null } }, { "model": "process.workertype", - "pk": "250cfaca-9733-42ef-a265-b8e8aea73075", + "pk": "6d23ada7-4c6e-4fc0-b527-695cdeb3141c", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "slug": "recognizer", - "display_name": "Recognizer" + "slug": "custom", + "display_name": "Custom" } }, { "model": "process.workertype", - "pk": "40620987-763e-4e69-baa8-5bdf28f8b6c3", + "pk": "799fd6b7-945d-4f1f-9252-2aae4f3cc889", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "slug": "dla", - "display_name": "Document Layout Analysis" + "slug": "import", + "display_name": "Import" } }, { "model": "process.workertype", - "pk": "6772567a-5429-4d97-b1aa-8c779d30c68f", + "pk": "b3b684f3-8b66-4c5b-84a3-75bb9607d845", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "slug": "import", - "display_name": "Import" + "slug": "worker", + "display_name": "Worker requiring a GPU" } }, { "model": "process.workertype", - "pk": "7dee488e-7a48-434b-9163-6396972bff7f", + "pk": "b4cee6a9-d059-48dc-9e2d-e0d591d45e37", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "slug": "worker", - "display_name": "Worker requiring a GPU" + "slug": "dla", + "display_name": "Document Layout Analysis" } }, { "model": "process.workertype", - "pk": "a9458b4e-5ac9-4caa-b2fd-516b16222604", + "pk": "ed8d9b05-5b55-4dc9-9724-ad8cd437a711", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "slug": "custom", - "display_name": "Custom" + "slug": "recognizer", + "display_name": "Recognizer" } }, { "model": "process.workerversion", - "pk": "28cc29d7-c2c2-41d2-b051-4553f9535ea9", + "pk": "2b15b05d-d4fc-41d9-92cd-a860dbd9c107", "fields": { - "worker": "a9950b39-1c6d-4dde-bbd5-9545871189f4", - "revision": "97306172-bca6-46a6-9789-4b084e09c008", + "worker": "7df6f050-5af7-4338-9e6b-d99ade1bfc24", + "revision": "24b5a51d-1c85-460c-ba90-269277a61424", "version": null, - "configuration": {}, + "configuration": { + "test": 42 + }, "state": "available", - "gpu_usage": "disabled", + "gpu_usage": "required", "model_usage": "disabled", - "docker_image": "27166636-75bd-4296-adce-ba8fa09a36c5", + "docker_image": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "docker_image_iid": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z" @@ -324,10 +326,10 @@ }, { "model": "process.workerversion", - "pk": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "pk": "72342686-2a64-4fda-a22f-d4d1be6e21e3", "fields": { - "worker": "081bfea3-f8eb-4070-9cb4-6cc4e7b260b8", - "revision": "97306172-bca6-46a6-9789-4b084e09c008", + "worker": "31fcc074-a86e-4f5f-9416-f548a4b428cc", + "revision": "24b5a51d-1c85-460c-ba90-269277a61424", "version": null, "configuration": { "test": 42 @@ -335,7 +337,7 @@ "state": "available", "gpu_usage": "disabled", "model_usage": "disabled", - "docker_image": "27166636-75bd-4296-adce-ba8fa09a36c5", + "docker_image": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "docker_image_iid": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z" @@ -343,18 +345,18 @@ }, { "model": "process.workerversion", - "pk": "3e12e240-0b7e-43f1-8e63-0ccd0b851548", + "pk": "98e3114d-a9c7-4302-8046-b67745a45cd7", "fields": { - "worker": "ddeda096-4d97-45c5-95fc-600397638cb7", - "revision": "97306172-bca6-46a6-9789-4b084e09c008", + "worker": "5e4258d9-f8a2-4716-aac2-9293a521831a", + "revision": "24b5a51d-1c85-460c-ba90-269277a61424", "version": null, "configuration": { "test": 42 }, "state": "available", "gpu_usage": "disabled", - "model_usage": "required", - "docker_image": "27166636-75bd-4296-adce-ba8fa09a36c5", + "model_usage": "disabled", + "docker_image": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "docker_image_iid": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z" @@ -362,18 +364,18 @@ }, { "model": "process.workerversion", - "pk": "52ef38e2-e71e-4bcd-aa26-2eaad0d682ef", + "pk": "c56b9c71-6d7d-4784-aaef-492d4ea5bf42", "fields": { - "worker": "03ca969c-2fee-4a4c-b2f7-c283fb72bf91", - "revision": "97306172-bca6-46a6-9789-4b084e09c008", + "worker": "f8f04683-490f-481c-8fdf-86ad4bea60b7", + "revision": "24b5a51d-1c85-460c-ba90-269277a61424", "version": null, "configuration": { "test": 42 }, "state": "available", - "gpu_usage": "required", - "model_usage": "disabled", - "docker_image": "27166636-75bd-4296-adce-ba8fa09a36c5", + "gpu_usage": "disabled", + "model_usage": "required", + "docker_image": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "docker_image_iid": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z" @@ -381,18 +383,16 @@ }, { "model": "process.workerversion", - "pk": "6fe5da3e-18f0-4c08-ab75-631c527534df", + "pk": "eaf9d6a7-c399-43bf-814d-fe9942083b62", "fields": { - "worker": "3d121605-190a-4faa-8085-e7c1bffc4297", - "revision": "97306172-bca6-46a6-9789-4b084e09c008", + "worker": "32005c5b-88f1-4c54-ad38-a1276558e3e3", + "revision": "24b5a51d-1c85-460c-ba90-269277a61424", "version": null, - "configuration": { - "test": 42 - }, + "configuration": {}, "state": "available", "gpu_usage": "disabled", "model_usage": "disabled", - "docker_image": "27166636-75bd-4296-adce-ba8fa09a36c5", + "docker_image": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "docker_image_iid": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z" @@ -400,9 +400,9 @@ }, { "model": "process.workerversion", - "pk": "c82df68d-f845-4e3d-a1de-4c84be97230a", + "pk": "ecc4ed88-7e15-4194-bfe7-c508cc23e5cd", "fields": { - "worker": "6a9a5388-c047-4bbf-9c41-86fbc578fd92", + "worker": "71ad2a59-a1c5-427e-94da-bc45c944f0a7", "revision": null, "version": 1, "configuration": { @@ -419,63 +419,67 @@ }, { "model": "process.workerrun", - "pk": "4f2c84cf-f641-4d79-a7f0-d21075e61632", + "pk": "46d3e9c9-21b6-4a65-b8bb-0c72d3a270dd", "fields": { - "process": "6f8334b3-b89c-48ef-b69f-255a5c4f868d", - "version": "c82df68d-f845-4e3d-a1de-4c84be97230a", + "process": "685bdd10-7fdf-4363-b62e-886bd89a4919", + "version": "72342686-2a64-4fda-a22f-d4d1be6e21e3", "model_version": null, "parents": "[]", "configuration": null, - "summary": "Worker Custom worker @ version 1", + "summary": "Worker Document layout analyser @ 723426", "created": "2020-02-02T01:23:45.678Z", - "updated": "2020-02-02T01:23:45.678Z" + "updated": "2020-02-02T01:23:45.678Z", + "has_results": false } }, { "model": "process.workerrun", - "pk": "ca9e5c86-ac92-4f73-b170-fff5e6331888", + "pk": "157e9b04-a96a-4172-afa7-fcfca5cdb0ff", "fields": { - "process": "d9f1b26c-6aae-4e22-a9cc-d218a245794e", - "version": "6fe5da3e-18f0-4c08-ab75-631c527534df", + "process": "685bdd10-7fdf-4363-b62e-886bd89a4919", + "version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "model_version": null, - "parents": "[]", + "parents": "[\"46d3e9c9-21b6-4a65-b8bb-0c72d3a270dd\"]", "configuration": null, - "summary": "Worker Document layout analyser @ 6fe5da", + "summary": "Worker Recognizer @ 98e311", "created": "2020-02-02T01:23:45.678Z", - "updated": "2020-02-02T01:23:45.678Z" + "updated": "2020-02-02T01:23:45.678Z", + "has_results": false } }, { "model": "process.workerrun", - "pk": "b68c0c89-1642-4ac3-813d-fa0fe5fbe54d", + "pk": "176855f8-1633-481d-8c9a-c34929214579", "fields": { - "process": "d9f1b26c-6aae-4e22-a9cc-d218a245794e", - "version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "process": "ee420daa-2192-43e1-9206-726edec61c72", + "version": "ecc4ed88-7e15-4194-bfe7-c508cc23e5cd", "model_version": null, - "parents": "[\"ca9e5c86-ac92-4f73-b170-fff5e6331888\"]", + "parents": "[]", "configuration": null, - "summary": "Worker Recognizer @ 38af22", + "summary": "Worker Custom worker @ version 1", "created": "2020-02-02T01:23:45.678Z", - "updated": "2020-02-02T01:23:45.678Z" + "updated": "2020-02-02T01:23:45.678Z", + "has_results": false } }, { "model": "process.workerrun", - "pk": "b88f23f6-af5d-4e20-bc58-fcc4c9966c5f", + "pk": "36c3b0c0-0439-43e2-8c1f-5985a3d4aa0a", "fields": { - "process": "55e92ea6-625a-4c30-9724-b1f327941cac", - "version": "c82df68d-f845-4e3d-a1de-4c84be97230a", + "process": "b569febd-7bb0-4283-8d86-4535d43a5686", + "version": "ecc4ed88-7e15-4194-bfe7-c508cc23e5cd", "model_version": null, "parents": "[]", "configuration": null, "summary": "Worker Custom worker @ version 1", "created": "2020-02-02T01:23:45.678Z", - "updated": "2020-02-02T01:23:45.678Z" + "updated": "2020-02-02T01:23:45.678Z", + "has_results": false } }, { "model": "documents.corpus", - "pk": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "pk": "72fa2511-2af5-4219-996a-45493ad64b25", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", @@ -488,33 +492,33 @@ }, { "model": "documents.elementtype", - "pk": "5b656298-6b77-441d-89bc-944f83e90318", + "pk": "904d9648-3396-4caf-943f-88a07124e4c1", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "slug": "volume", - "display_name": "Volume", - "folder": true, + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "slug": "page", + "display_name": "Page", + "folder": false, "indexable": false, "color": "28b62c" } }, { "model": "documents.elementtype", - "pk": "a7a4d3cf-504a-4092-8828-5a19e3d31138", + "pk": "c14e6460-6cdb-40cb-a173-16d7977c1a89", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "slug": "word", - "display_name": "Word", - "folder": false, + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "slug": "volume", + "display_name": "Volume", + "folder": true, "indexable": false, "color": "28b62c" } }, { "model": "documents.elementtype", - "pk": "ac394477-b189-4a8c-b61a-194e15c7ca75", + "pk": "e4145fd4-f924-47e1-afda-672e77c67ebf", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", "slug": "surface", "display_name": "Surface", "folder": false, @@ -524,9 +528,9 @@ }, { "model": "documents.elementtype", - "pk": "b377e013-b313-412a-bd95-58681f87857c", + "pk": "e9e89260-d222-4c84-91de-137aea3d78e2", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", "slug": "act", "display_name": "Act", "folder": false, @@ -536,11 +540,11 @@ }, { "model": "documents.elementtype", - "pk": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", + "pk": "f0847218-ec03-4162-97f8-475af67f89a2", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "slug": "page", - "display_name": "Page", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "slug": "text_line", + "display_name": "Line", "folder": false, "indexable": false, "color": "28b62c" @@ -548,11 +552,11 @@ }, { "model": "documents.elementtype", - "pk": "d5db136a-308b-4719-8553-b9f1485dbd31", + "pk": "fc6d1b82-6805-4f99-b655-74e5c9347007", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "slug": "text_line", - "display_name": "Line", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "slug": "word", + "display_name": "Word", "folder": false, "indexable": false, "color": "28b62c" @@ -560,279 +564,279 @@ }, { "model": "documents.elementpath", - "pk": "003b020e-d3e9-4ab7-b5de-2bf54ceba1e0", - "fields": { - "element": "41d359f5-3f19-4f17-9cbb-83b68f124ed4", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"a7d90223-fc30-4409-8ae6-2505695867d4\"]", - "ordering": 2 - } -}, -{ - "model": "documents.elementpath", - "pk": "077144c7-d29c-4230-b87e-81336ec32ff1", + "pk": "11da3c9c-c117-4c77-a455-ffa7abdaa8ce", "fields": { - "element": "7aa6af77-3552-46ff-afdd-ecf210c2da44", - "path": "[]", + "element": "20b23d6a-bbaa-4121-a177-e0732ada7f8f", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"7513bffc-5996-4299-9595-2062cdeb115a\"]", "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "153359d1-24aa-4231-a101-0df86d3302fe", + "pk": "13de7e72-b357-4279-a624-cf6d7d84e25b", "fields": { - "element": "a344a86c-c126-464b-927f-40a4583de0a2", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 4 + "element": "e951bfaa-d89f-44f4-9960-8f378e02058b", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"55513b17-d8de-4a75-91ba-8bc196d47614\"]", + "ordering": 2 } }, { "model": "documents.elementpath", - "pk": "22f15836-34e5-4eed-975c-4eaa44cae20f", + "pk": "1c7fa20d-f8e7-4946-aea5-737baf759779", "fields": { - "element": "01c3a423-096e-412d-b559-b1d6bcc2f4bc", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"bef956e0-f9f1-43c6-9409-cc64588fd4c2\"]", + "element": "28d5fd6a-420c-40c7-a9ea-d3a177f82558", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"31e2e447-82c1-4fd8-83d0-9cfdabc95e7e\"]", "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "25fff9a2-6747-4cfa-adab-29f1156c3926", + "pk": "1d61aecf-1fd1-4e94-8bb1-35b39c5e3ed4", "fields": { - "element": "9ce76cf5-862d-4645-8469-2d9bca27c5e9", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"6ef0d61a-9fd2-417e-b8cf-a68cdc569f8d\"]", + "element": "81c5be37-e857-456a-95f6-2b24f0047dc2", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"31e2e447-82c1-4fd8-83d0-9cfdabc95e7e\"]", "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "2f797330-815a-4b4f-b033-0210ce06f116", + "pk": "20a244b7-de0e-4bf7-b879-6a60710f97e9", "fields": { - "element": "429edf14-afcc-46f9-b2a0-5c24fab6aa57", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"d01d0065-f45f-42c5-82c9-d7b3e9e98cd1\"]", - "ordering": 0 + "element": "8c90ad46-af7e-4978-9033-96e222dc38ff", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"5663bdae-584f-42a8-a2b8-e0fe66f4004e\"]", + "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "479d4e56-c8a7-4275-90ff-7775d385a1af", + "pk": "22eed241-6d46-45aa-970f-e360b7585ae7", "fields": { - "element": "02d9886a-65ee-4c39-b961-a28d2178df73", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"a7d90223-fc30-4409-8ae6-2505695867d4\"]", - "ordering": 1 + "element": "4e85e0c6-1ec2-4043-a68b-965de889fe07", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"adaba455-2666-4754-bfdc-507ad0148039\"]", + "ordering": 2 } }, { "model": "documents.elementpath", - "pk": "4b21fc9a-fd94-4567-a02c-2ddfb0a751d8", + "pk": "26e5bf2f-5a26-4c76-ac16-ce88d810c303", "fields": { - "element": "baccd487-e8fb-456a-9a2e-4fe0827d38bf", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 7 + "element": "c2fab6ef-de18-431f-9093-af7cd0b70807", + "path": "[\"3f9fa439-631e-4abd-98bb-8054f97e15f2\"]", + "ordering": 2 } }, { "model": "documents.elementpath", - "pk": "554746d0-9765-490b-91ad-a25d0369c0d3", + "pk": "3ed5c9d4-27c9-4b1d-9559-ddf7bf849f12", "fields": { - "element": "794f4388-a512-49ad-abb8-6e9d234895f3", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"d01d0065-f45f-42c5-82c9-d7b3e9e98cd1\"]", - "ordering": 1 + "element": "a690a807-284e-4d80-9d11-f79325f672ea", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 6 } }, { "model": "documents.elementpath", - "pk": "58f9ecc4-9b8f-4bf2-86bf-172fc8c76b9e", + "pk": "486b89ac-e2f1-418a-bd9c-568b2d7e79d7", "fields": { - "element": "f769df85-a9c6-49ae-a42a-32d01c8b0103", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"a344a86c-c126-464b-927f-40a4583de0a2\"]", + "element": "0781cf7e-dbdb-4d7f-88c2-66c3e393bbb0", + "path": "[\"3f9fa439-631e-4abd-98bb-8054f97e15f2\"]", "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "62c6e9ef-34e6-453d-9e84-da6e857797c7", + "pk": "581713c4-f920-4dd3-ae1c-d32ca09befe4", "fields": { - "element": "5fc4e41b-a399-4794-84b4-6821bee6a996", - "path": "[\"7aa6af77-3552-46ff-afdd-ecf210c2da44\"]", + "element": "8281b5ad-11b4-42c6-9862-42150df27778", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"a690a807-284e-4d80-9d11-f79325f672ea\"]", "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "649d5264-3184-4b2c-a452-c3575c28a352", + "pk": "59f5b157-d13a-4977-9b82-12fdbbfde513", "fields": { - "element": "d15b508f-b7f4-4521-9346-757c641c7f54", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"bef956e0-f9f1-43c6-9409-cc64588fd4c2\"]", - "ordering": 0 + "element": "7513bffc-5996-4299-9595-2062cdeb115a", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 3 } }, { "model": "documents.elementpath", - "pk": "67f05365-3912-4135-ad73-6c9642876da6", + "pk": "63fc9259-a88c-4f48-b933-422b7014bdd1", "fields": { - "element": "2606fa5a-4356-4646-a6b6-c0d9adced4c8", - "path": "[\"7aa6af77-3552-46ff-afdd-ecf210c2da44\"]", - "ordering": 2 + "element": "5663bdae-584f-42a8-a2b8-e0fe66f4004e", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 4 } }, { "model": "documents.elementpath", - "pk": "72332ada-b46e-473c-8681-eacbdcdd4e0c", + "pk": "71b99ec3-3a9e-4444-8672-49651f417672", "fields": { - "element": "6ef0d61a-9fd2-417e-b8cf-a68cdc569f8d", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 6 + "element": "d66ac8fc-bdbe-46f5-8a77-eb43d08f2b92", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"adaba455-2666-4754-bfdc-507ad0148039\"]", + "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "96af6dbc-51df-4bd2-a67f-cb211d51a246", + "pk": "74487ae7-2c42-4a68-9dab-7c6dea52f90c", "fields": { - "element": "649a8f7c-2db7-43cf-82a5-ca86206d9d46", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 5 + "element": "1b3127bc-894c-4393-bfd0-466e8d792edf", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"55513b17-d8de-4a75-91ba-8bc196d47614\"]", + "ordering": 3 } }, { "model": "documents.elementpath", - "pk": "9bbe0819-eea7-48a5-9d4c-cbe33968412f", + "pk": "7b7c8a68-de01-45d4-b9b5-4b8323329a47", "fields": { - "element": "bef956e0-f9f1-43c6-9409-cc64588fd4c2", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", + "element": "3f9fa439-631e-4abd-98bb-8054f97e15f2", + "path": "[]", "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "a2377e58-1a90-46a6-8d25-b805e8dd0621", + "pk": "8ade2361-18c8-48ca-b4a8-8117bd3b1abb", "fields": { - "element": "5012bb0c-0249-4507-813e-879682b9321e", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"a7d90223-fc30-4409-8ae6-2505695867d4\"]", - "ordering": 0 + "element": "bd30ae78-55fc-4910-b238-d68f53bb49c7", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"55513b17-d8de-4a75-91ba-8bc196d47614\"]", + "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "b7765894-b58d-44d9-8293-3757dbf846cb", + "pk": "aa38c6f6-4918-402c-9409-1c5b1e68dbab", "fields": { - "element": "bb6a86ce-c3a9-47e0-8f6e-9dc9eb067d98", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"a344a86c-c126-464b-927f-40a4583de0a2\"]", - "ordering": 0 + "element": "12d411b9-0332-43ae-a666-3784080fca98", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"adaba455-2666-4754-bfdc-507ad0148039\"]", + "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "b7a1b98c-f79e-4e72-ad2c-f9c3cb0525bd", + "pk": "b05ae558-fecb-404b-91f1-73e08e4c5b46", "fields": { - "element": "a6ec2e2c-7f41-4fc8-aa05-c3d3a4ffd44d", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"bef956e0-f9f1-43c6-9409-cc64588fd4c2\"]", - "ordering": 2 + "element": "df9bfd2a-10f5-490a-a884-90f07579f2d2", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 7 } }, { "model": "documents.elementpath", - "pk": "b9700ac6-7339-437c-8a4a-a0154d4d490e", + "pk": "b5afd649-7093-4781-b2ac-2b7069fc724b", "fields": { - "element": "1a2f95f4-c69c-4d3e-babc-0cc61ea04b8b", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"baccd487-e8fb-456a-9a2e-4fe0827d38bf\"]", - "ordering": 0 + "element": "31e2e447-82c1-4fd8-83d0-9cfdabc95e7e", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 1 } }, { "model": "documents.elementpath", - "pk": "bc200b4d-4eba-43f5-a800-573609152cbd", + "pk": "c3545e9b-aa99-4ae0-821a-64518a49fdd0", "fields": { - "element": "cc07dfc7-811c-4550-b2d9-b309f6c282ff", - "path": "[]", + "element": "6952f8ae-c780-498e-bb72-b708c62ebab2", + "path": "[\"3f9fa439-631e-4abd-98bb-8054f97e15f2\"]", "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "c70833cc-31fd-48a4-9d87-7af6b8d78271", + "pk": "d3720460-f831-4d9a-971e-686003dbfd3b", "fields": { - "element": "cc0ec6c0-8eae-44ca-8179-7417456b8229", - "path": "[\"7aa6af77-3552-46ff-afdd-ecf210c2da44\"]", - "ordering": 1 + "element": "9fd890b5-d1d2-4822-a8ec-be13d6f1dc6c", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"df9bfd2a-10f5-490a-a884-90f07579f2d2\"]", + "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "cb05e758-c987-412d-b173-620b60e54bed", + "pk": "d50ff7a9-7636-4cba-b87b-ea69129e4141", "fields": { - "element": "447fa573-bf5b-4683-ab69-b7dcdc57c1f5", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"649a8f7c-2db7-43cf-82a5-ca86206d9d46\"]", - "ordering": 0 + "element": "2bff1d97-9e6e-44f3-b1f7-46a690b8903d", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 5 } }, { "model": "documents.elementpath", - "pk": "d5174202-d76c-43e0-bb09-a0bfd9046361", + "pk": "d963d765-36e4-46e9-bd94-c9bbcd774802", "fields": { - "element": "b13c0dc4-9e1d-4903-ba42-efff19ab32c2", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"bef956e0-f9f1-43c6-9409-cc64588fd4c2\"]", - "ordering": 3 + "element": "adaba455-2666-4754-bfdc-507ad0148039", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 2 } }, { "model": "documents.elementpath", - "pk": "d5abdd9e-5dca-49a6-a0b7-fb9d20925c61", + "pk": "d9fb240f-4467-423c-9e71-e417c3bd4146", "fields": { - "element": "a7d90223-fc30-4409-8ae6-2505695867d4", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", + "element": "c67d9aed-d407-4fc0-8ea0-51a2bd40fcd9", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"31e2e447-82c1-4fd8-83d0-9cfdabc95e7e\"]", "ordering": 2 } }, { "model": "documents.elementpath", - "pk": "dbcb356a-d7da-4f81-99c4-86dbad2d4420", + "pk": "df28af0f-39cd-445e-ae1e-3fea442e6309", "fields": { - "element": "6c0b88e8-e83f-4781-ac4b-e46944e4e2f6", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 3 + "element": "55513b17-d8de-4a75-91ba-8bc196d47614", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\"]", + "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "e64a336d-20c9-4c8b-9fb7-0632aa1dd7ac", + "pk": "e999c614-f43d-4730-a90d-6324d26a470c", "fields": { - "element": "7311f153-7a61-4fef-875b-ed36a2537fce", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"d01d0065-f45f-42c5-82c9-d7b3e9e98cd1\"]", - "ordering": 2 + "element": "a813eb0d-c1dd-4da4-a7aa-99c66ad23be1", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"55513b17-d8de-4a75-91ba-8bc196d47614\"]", + "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "e9518a0a-0210-42d8-8f3e-fa7b25c64f49", + "pk": "ecb56f3a-f189-4b87-b101-841e3e7511c3", "fields": { - "element": "d01d0065-f45f-42c5-82c9-d7b3e9e98cd1", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\"]", - "ordering": 1 + "element": "399a5140-c11b-44c6-b198-4db610c421e9", + "path": "[]", + "ordering": 0 + } +}, +{ + "model": "documents.elementpath", + "pk": "f1375bc3-2569-4c20-b666-0e6f0f8b03bb", + "fields": { + "element": "6eb6c71c-960d-4415-ad72-1ac6a0bbfe0e", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"5663bdae-584f-42a8-a2b8-e0fe66f4004e\"]", + "ordering": 0 } }, { "model": "documents.elementpath", - "pk": "f3d1dfb5-ab42-4a2b-ac74-ad914dd42985", + "pk": "f9662bce-c9e8-482e-a77e-96bfb1edeb9f", "fields": { - "element": "3a4f3fd5-ca40-4dad-8317-532565ec3def", - "path": "[\"cc07dfc7-811c-4550-b2d9-b309f6c282ff\", \"6c0b88e8-e83f-4781-ac4b-e46944e4e2f6\"]", + "element": "ac6f0834-e94d-477b-8cff-ab0ba2d6ff86", + "path": "[\"399a5140-c11b-44c6-b198-4db610c421e9\", \"2bff1d97-9e6e-44f3-b1f7-46a690b8903d\"]", "ordering": 0 } }, { "model": "documents.element", - "pk": "01c3a423-096e-412d-b559-b1d6bcc2f4bc", + "pk": "0781cf7e-dbdb-4d7f-88c2-66c3e393bbb0", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "ROY", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 2, page 1v", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", + "image": "e54b8850-0854-4e28-a965-ab8fcd2fee38", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -840,17 +844,17 @@ }, { "model": "documents.element", - "pk": "02d9886a-65ee-4c39-b961-a28d2178df73", + "pk": "12d411b9-0332-43ae-a666-3784080fca98", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", "name": "ROY", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", "rotation_angle": 0, "mirrored": false, @@ -859,18 +863,18 @@ }, { "model": "documents.element", - "pk": "1a2f95f4-c69c-4d3e-babc-0cc61ea04b8b", + "pk": "1b3127bc-894c-4393-bfd0-466e8d792edf", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", - "name": "Surface F", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "f0847218-ec03-4162-97f8-475af67f89a2", + "name": "Text line", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", - "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -878,18 +882,18 @@ }, { "model": "documents.element", - "pk": "2606fa5a-4356-4646-a6b6-c0d9adced4c8", + "pk": "20b23d6a-bbaa-4121-a177-e0732ada7f8f", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 2, page 2r", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", + "name": "Surface A", "creator": null, "worker_version": null, "worker_run": null, - "image": "3a90a6c2-5c43-4af2-993e-b46091607be6", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (0 0, 0 600, 600 600, 600 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -897,18 +901,18 @@ }, { "model": "documents.element", - "pk": "3a4f3fd5-ca40-4dad-8317-532565ec3def", + "pk": "28d5fd6a-420c-40c7-a9ea-d3a177f82558", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", - "name": "Surface A", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "ROY", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (0 0, 0 600, 600 600, 600 0, 0 0)", + "image": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", + "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -916,18 +920,18 @@ }, { "model": "documents.element", - "pk": "41d359f5-3f19-4f17-9cbb-83b68f124ed4", + "pk": "2bff1d97-9e6e-44f3-b1f7-46a690b8903d", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "DATUM", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e9e89260-d222-4c84-91de-137aea3d78e2", + "name": "Act 3", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", - "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -935,18 +939,18 @@ }, { "model": "documents.element", - "pk": "429edf14-afcc-46f9-b2a0-5c24fab6aa57", + "pk": "31e2e447-82c1-4fd8-83d0-9cfdabc95e7e", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "PARIS", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 1, page 1v", "creator": null, "worker_version": null, "worker_run": null, - "image": "333f1f5d-eb17-40a9-8401-d2303a978d5d", - "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", + "image": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -954,18 +958,18 @@ }, { "model": "documents.element", - "pk": "447fa573-bf5b-4683-ab69-b7dcdc57c1f5", + "pk": "399a5140-c11b-44c6-b198-4db610c421e9", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", - "name": "Surface D", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "c14e6460-6cdb-40cb-a173-16d7977c1a89", + "name": "Volume 1", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", - "polygon": "LINEARRING (0 0, 0 300, 300 300, 300 0, 0 0)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -973,18 +977,18 @@ }, { "model": "documents.element", - "pk": "5012bb0c-0249-4507-813e-879682b9321e", + "pk": "3f9fa439-631e-4abd-98bb-8054f97e15f2", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "PARIS", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "c14e6460-6cdb-40cb-a173-16d7977c1a89", + "name": "Volume 2", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", - "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -992,18 +996,18 @@ }, { "model": "documents.element", - "pk": "5fc4e41b-a399-4794-84b4-6821bee6a996", + "pk": "4e85e0c6-1ec2-4043-a68b-965de889fe07", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 2, page 1r", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "DATUM", "creator": null, "worker_version": null, "worker_run": null, - "image": "65351fbb-f6ce-429b-8615-3782bd4e1192", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", + "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1011,18 +1015,18 @@ }, { "model": "documents.element", - "pk": "649a8f7c-2db7-43cf-82a5-ca86206d9d46", + "pk": "55513b17-d8de-4a75-91ba-8bc196d47614", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "b377e013-b313-412a-bd95-58681f87857c", - "name": "Act 3", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 1, page 1r", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1030,13 +1034,13 @@ }, { "model": "documents.element", - "pk": "6c0b88e8-e83f-4781-ac4b-e46944e4e2f6", + "pk": "5663bdae-584f-42a8-a2b8-e0fe66f4004e", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "b377e013-b313-412a-bd95-58681f87857c", - "name": "Act 1", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e9e89260-d222-4c84-91de-137aea3d78e2", + "name": "Act 2", "creator": null, "worker_version": null, "worker_run": null, @@ -1049,18 +1053,18 @@ }, { "model": "documents.element", - "pk": "6ef0d61a-9fd2-417e-b8cf-a68cdc569f8d", + "pk": "6952f8ae-c780-498e-bb72-b708c62ebab2", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "b377e013-b313-412a-bd95-58681f87857c", - "name": "Act 4", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 2, page 1r", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "e59eb075-36d1-4c03-83d1-0a8bf3c93c2b", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1068,18 +1072,18 @@ }, { "model": "documents.element", - "pk": "7311f153-7a61-4fef-875b-ed36a2537fce", + "pk": "6eb6c71c-960d-4415-ad72-1ac6a0bbfe0e", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "DATUM", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", + "name": "Surface B", "creator": null, "worker_version": null, "worker_run": null, - "image": "333f1f5d-eb17-40a9-8401-d2303a978d5d", - "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1087,18 +1091,18 @@ }, { "model": "documents.element", - "pk": "794f4388-a512-49ad-abb8-6e9d234895f3", + "pk": "7513bffc-5996-4299-9595-2062cdeb115a", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "ROY", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e9e89260-d222-4c84-91de-137aea3d78e2", + "name": "Act 1", "creator": null, "worker_version": null, "worker_run": null, - "image": "333f1f5d-eb17-40a9-8401-d2303a978d5d", - "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1106,18 +1110,18 @@ }, { "model": "documents.element", - "pk": "7aa6af77-3552-46ff-afdd-ecf210c2da44", + "pk": "81c5be37-e857-456a-95f6-2b24f0047dc2", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "5b656298-6b77-441d-89bc-944f83e90318", - "name": "Volume 2", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "PARIS", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", + "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1125,17 +1129,17 @@ }, { "model": "documents.element", - "pk": "9ce76cf5-862d-4645-8469-2d9bca27c5e9", + "pk": "8281b5ad-11b4-42c6-9862-42150df27778", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", "name": "Surface E", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", "polygon": "LINEARRING (300 300, 300 600, 600 600, 600 300, 300 300)", "rotation_angle": 0, "mirrored": false, @@ -1144,18 +1148,18 @@ }, { "model": "documents.element", - "pk": "a344a86c-c126-464b-927f-40a4583de0a2", + "pk": "8c90ad46-af7e-4978-9033-96e222dc38ff", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "b377e013-b313-412a-bd95-58681f87857c", - "name": "Act 2", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", + "name": "Surface C", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1163,18 +1167,18 @@ }, { "model": "documents.element", - "pk": "a6ec2e2c-7f41-4fc8-aa05-c3d3a4ffd44d", + "pk": "9fd890b5-d1d2-4822-a8ec-be13d6f1dc6c", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "DATUM", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", + "name": "Surface F", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", + "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1182,18 +1186,18 @@ }, { "model": "documents.element", - "pk": "a7d90223-fc30-4409-8ae6-2505695867d4", + "pk": "a690a807-284e-4d80-9d11-f79325f672ea", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 1, page 2r", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e9e89260-d222-4c84-91de-137aea3d78e2", + "name": "Act 4", "creator": null, "worker_version": null, "worker_run": null, - "image": "c826c86a-e5d4-4de8-997b-31b65caf7011", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1201,18 +1205,18 @@ }, { "model": "documents.element", - "pk": "b13c0dc4-9e1d-4903-ba42-efff19ab32c2", + "pk": "a813eb0d-c1dd-4da4-a7aa-99c66ad23be1", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "d5db136a-308b-4719-8553-b9f1485dbd31", - "name": "Text line", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "PARIS", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1220,18 +1224,18 @@ }, { "model": "documents.element", - "pk": "baccd487-e8fb-456a-9a2e-4fe0827d38bf", + "pk": "ac6f0834-e94d-477b-8cff-ab0ba2d6ff86", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "b377e013-b313-412a-bd95-58681f87857c", - "name": "Act 5", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e4145fd4-f924-47e1-afda-672e77c67ebf", + "name": "Surface D", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", + "polygon": "LINEARRING (0 0, 0 300, 300 300, 300 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1239,18 +1243,18 @@ }, { "model": "documents.element", - "pk": "bb6a86ce-c3a9-47e0-8f6e-9dc9eb067d98", + "pk": "adaba455-2666-4754-bfdc-507ad0148039", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", - "name": "Surface B", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 1, page 2r", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (600 600, 600 1000, 1000 1000, 1000 600, 600 600)", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1258,18 +1262,18 @@ }, { "model": "documents.element", - "pk": "bef956e0-f9f1-43c6-9409-cc64588fd4c2", + "pk": "bd30ae78-55fc-4910-b238-d68f53bb49c7", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 1, page 1r", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "ROY", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (400 400, 400 500, 500 500, 500 400, 400 400)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1277,18 +1281,18 @@ }, { "model": "documents.element", - "pk": "cc07dfc7-811c-4550-b2d9-b309f6c282ff", + "pk": "c2fab6ef-de18-431f-9093-af7cd0b70807", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "5b656298-6b77-441d-89bc-944f83e90318", - "name": "Volume 1", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "904d9648-3396-4caf-943f-88a07124e4c1", + "name": "Volume 2, page 2r", "creator": null, "worker_version": null, "worker_run": null, - "image": null, - "polygon": null, + "image": "95daad78-e9ef-40bd-af2c-3d82478ffdd2", + "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1296,18 +1300,18 @@ }, { "model": "documents.element", - "pk": "cc0ec6c0-8eae-44ca-8179-7417456b8229", + "pk": "c67d9aed-d407-4fc0-8ea0-51a2bd40fcd9", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 2, page 1v", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "DATUM", "creator": null, "worker_version": null, "worker_run": null, - "image": "9f7b7678-defd-4ce7-be9b-ed5b04da3c04", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", + "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1315,18 +1319,18 @@ }, { "model": "documents.element", - "pk": "d01d0065-f45f-42c5-82c9-d7b3e9e98cd1", + "pk": "d66ac8fc-bdbe-46f5-8a77-eb43d08f2b92", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "c0686e6f-f7ee-47a6-91ef-276dc1c74604", - "name": "Volume 1, page 1v", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "PARIS", "creator": null, "worker_version": null, "worker_run": null, - "image": "333f1f5d-eb17-40a9-8401-d2303a978d5d", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "a5fc8045-7db0-4e8d-9267-641d221178a0", + "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1334,18 +1338,18 @@ }, { "model": "documents.element", - "pk": "d15b508f-b7f4-4521-9346-757c641c7f54", + "pk": "df9bfd2a-10f5-490a-a884-90f07579f2d2", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "a7a4d3cf-504a-4092-8828-5a19e3d31138", - "name": "PARIS", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "e9e89260-d222-4c84-91de-137aea3d78e2", + "name": "Act 5", "creator": null, "worker_version": null, "worker_run": null, - "image": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", - "polygon": "LINEARRING (100 100, 100 200, 200 200, 200 100, 100 100)", + "image": null, + "polygon": null, "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1353,18 +1357,18 @@ }, { "model": "documents.element", - "pk": "f769df85-a9c6-49ae-a42a-32d01c8b0103", + "pk": "e951bfaa-d89f-44f4-9960-8f378e02058b", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "ac394477-b189-4a8c-b61a-194e15c7ca75", - "name": "Surface C", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "fc6d1b82-6805-4f99-b655-74e5c9347007", + "name": "DATUM", "creator": null, "worker_version": null, "worker_run": null, - "image": "333f1f5d-eb17-40a9-8401-d2303a978d5d", - "polygon": "LINEARRING (0 0, 0 1000, 1000 1000, 1000 0, 0 0)", + "image": "cc181e62-8a90-416f-865a-fcb09ede3043", + "polygon": "LINEARRING (700 700, 700 800, 800 800, 800 700, 700 700)", "rotation_angle": 0, "mirrored": false, "confidence": null @@ -1372,67 +1376,67 @@ }, { "model": "documents.entitytype", - "pk": "389cf24a-71b8-4d59-ba20-1bead9c19100", + "pk": "092db92b-bc22-4f3d-9eef-f3a5de19f0e4", "fields": { - "name": "organization", + "name": "number", "color": "ff0000", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25" } }, { "model": "documents.entitytype", - "pk": "68cd175e-5519-469b-8795-4def01f68486", + "pk": "3c50e3f2-13b2-48c7-a0a6-0361b62f5422", "fields": { - "name": "person", + "name": "organization", "color": "ff0000", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25" } }, { "model": "documents.entitytype", - "pk": "79af3b80-5800-470e-9d50-76405371b35a", + "pk": "75dd387b-8b4f-4350-b851-0d33333de126", "fields": { "name": "location", "color": "ff0000", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25" } }, { "model": "documents.entitytype", - "pk": "a59ccd99-2b4f-4861-8480-e1d4481cd0d4", + "pk": "8255557e-015a-4516-beab-ec35b04944ad", "fields": { - "name": "date", + "name": "person", "color": "ff0000", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25" } }, { "model": "documents.entitytype", - "pk": "c4211cec-2f93-4e15-8e20-fb6597327b3c", + "pk": "f261cd39-5979-4a20-9bfa-d9f69a6942e7", "fields": { - "name": "number", + "name": "date", "color": "ff0000", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25" } }, { "model": "documents.transcription", - "pk": "23e55bee-fae7-433f-a1ce-4ff250f8a985", + "pk": "7552ceb2-6800-4138-b435-1cb808a6cd3b", "fields": { - "element": "d15b508f-b7f4-4521-9346-757c641c7f54", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "12d411b9-0332-43ae-a666-3784080fca98", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "PARIS", + "text": "ROY", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "2cb7dd1f-8189-4b80-974f-051e089feb42", + "pk": "75b50de3-bd80-49ca-84e6-276ce2602542", "fields": { - "element": "41d359f5-3f19-4f17-9cbb-83b68f124ed4", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "c67d9aed-d407-4fc0-8ea0-51a2bd40fcd9", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, "text": "DATUM", "orientation": "horizontal-lr", @@ -1441,10 +1445,10 @@ }, { "model": "documents.transcription", - "pk": "4fe2f9a4-927b-4d0e-a094-eacfad911931", + "pk": "77ed963f-581b-4dea-bb78-de71d70cc72d", "fields": { - "element": "5012bb0c-0249-4507-813e-879682b9321e", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "81c5be37-e857-456a-95f6-2b24f0047dc2", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, "text": "PARIS", "orientation": "horizontal-lr", @@ -1453,123 +1457,123 @@ }, { "model": "documents.transcription", - "pk": "65f20dc0-3ec0-46b5-b539-fa1c22055f9e", + "pk": "7b3b1132-e2d4-44bc-8a8d-fd765ceec893", "fields": { - "element": "7311f153-7a61-4fef-875b-ed36a2537fce", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "28d5fd6a-420c-40c7-a9ea-d3a177f82558", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "DATUM", + "text": "ROY", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "67d43d8f-0123-4d17-b496-527660f824d5", + "pk": "8d0ea627-cde3-4e5e-92ba-d505fd089d76", "fields": { - "element": "01c3a423-096e-412d-b559-b1d6bcc2f4bc", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "d66ac8fc-bdbe-46f5-8a77-eb43d08f2b92", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "ROY", + "text": "PARIS", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "6926bb8f-773f-4505-9b75-e93481a80198", + "pk": "9cb9b78a-8e64-46b8-9d80-01e636c51425", "fields": { - "element": "bef956e0-f9f1-43c6-9409-cc64588fd4c2", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "bd30ae78-55fc-4910-b238-d68f53bb49c7", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "Lorem ipsum dolor sit amet", + "text": "ROY", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "9cca8460-b694-4f75-be5b-c12f14f3e374", + "pk": "a0ea7274-b9d2-40f1-9359-eada35eafd98", "fields": { - "element": "02d9886a-65ee-4c39-b961-a28d2178df73", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "55513b17-d8de-4a75-91ba-8bc196d47614", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "ROY", + "text": "Lorem ipsum dolor sit amet", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "b0707c31-eb72-45e2-8a66-0d45a4011a0d", + "pk": "b5200354-6523-481a-a523-8307fdde8fa6", "fields": { - "element": "a6ec2e2c-7f41-4fc8-aa05-c3d3a4ffd44d", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "a813eb0d-c1dd-4da4-a7aa-99c66ad23be1", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "DATUM", + "text": "PARIS", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "cec50683-2c40-4a32-a7bd-332b3241e392", + "pk": "ee306a4e-78e4-4d0e-b577-ac72609b187e", "fields": { - "element": "429edf14-afcc-46f9-b2a0-5c24fab6aa57", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "4e85e0c6-1ec2-4043-a68b-965de889fe07", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "PARIS", + "text": "DATUM", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.transcription", - "pk": "fe7bbe41-a811-4f62-b85f-b449e922f00f", + "pk": "f42771e8-cc6a-4e70-8859-0a98fb054364", "fields": { - "element": "794f4388-a512-49ad-abb8-6e9d234895f3", - "worker_version": "38af2294-5e69-4c10-8daf-5bb1b58b182a", + "element": "e951bfaa-d89f-44f4-9960-8f378e02058b", + "worker_version": "98e3114d-a9c7-4302-8046-b67745a45cd7", "worker_run": null, - "text": "ROY", + "text": "DATUM", "orientation": "horizontal-lr", "confidence": 1.0 } }, { "model": "documents.allowedmetadata", - "pk": "844cba89-47f3-403f-a200-580fea379535", + "pk": "61bfa704-4fb7-4b8c-95b6-48395e4019f8", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "location", - "name": "location" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "date", + "name": "date" } }, { "model": "documents.allowedmetadata", - "pk": "e7707502-a7d2-4f1c-9c38-d5b95e3acc89", + "pk": "77c73dbd-c84b-4b2f-b6ec-dbaed9750856", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "type": "date", - "name": "date" + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", + "type": "location", + "name": "location" } }, { "model": "documents.allowedmetadata", - "pk": "ea5bd9a8-dd37-4d0f-b829-58b92d8cfdf5", + "pk": "f9be7494-85a7-4dd5-a403-4ba490143f88", "fields": { - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", "type": "text", "name": "folio" } }, { "model": "documents.metadata", - "pk": "2184f569-2343-4f99-b8b2-5865a8c79890", + "pk": "1473cab4-ac8f-4153-a3e5-ce3d9be20496", "fields": { - "element": "d01d0065-f45f-42c5-82c9-d7b3e9e98cd1", - "name": "folio", + "element": "df9bfd2a-10f5-490a-a884-90f07579f2d2", + "name": "number", "type": "text", - "value": "1v", + "value": "5", "entity": null, "worker_version": null, "worker_run": null @@ -1577,12 +1581,12 @@ }, { "model": "documents.metadata", - "pk": "28ccc70d-88d4-4594-9b36-c4777dd75139", + "pk": "37879204-e7b5-42a9-a861-ce415cc357c9", "fields": { - "element": "bef956e0-f9f1-43c6-9409-cc64588fd4c2", - "name": "folio", + "element": "a690a807-284e-4d80-9d11-f79325f672ea", + "name": "number", "type": "text", - "value": "1r", + "value": "4", "entity": null, "worker_version": null, "worker_run": null @@ -1590,12 +1594,12 @@ }, { "model": "documents.metadata", - "pk": "303b3216-7852-4d12-a7bc-792c228c819d", + "pk": "395ae8f0-3f99-49e3-a6c6-6d3d4377efe5", "fields": { - "element": "a7d90223-fc30-4409-8ae6-2505695867d4", - "name": "folio", + "element": "5663bdae-584f-42a8-a2b8-e0fe66f4004e", + "name": "number", "type": "text", - "value": "2r", + "value": "2", "entity": null, "worker_version": null, "worker_run": null @@ -1603,12 +1607,12 @@ }, { "model": "documents.metadata", - "pk": "4796be93-6d1c-4e88-85a5-bfa3fd4c2df5", + "pk": "65bcc853-2aff-4fee-97c9-a947a7fa826c", "fields": { - "element": "6ef0d61a-9fd2-417e-b8cf-a68cdc569f8d", - "name": "number", + "element": "c2fab6ef-de18-431f-9093-af7cd0b70807", + "name": "folio", "type": "text", - "value": "4", + "value": "2r", "entity": null, "worker_version": null, "worker_run": null @@ -1616,12 +1620,12 @@ }, { "model": "documents.metadata", - "pk": "50ed9eca-5b28-4ca3-8fe9-28829d245c41", + "pk": "87d94a9b-688a-4d16-abcd-f228f15e330c", "fields": { - "element": "5fc4e41b-a399-4794-84b4-6821bee6a996", - "name": "folio", + "element": "2bff1d97-9e6e-44f3-b1f7-46a690b8903d", + "name": "number", "type": "text", - "value": "1r", + "value": "3", "entity": null, "worker_version": null, "worker_run": null @@ -1629,12 +1633,12 @@ }, { "model": "documents.metadata", - "pk": "653bbae1-3470-47f3-b1e3-3369a5d0c2c6", + "pk": "895468ff-08da-4e2d-83b9-2bc70e46defb", "fields": { - "element": "6c0b88e8-e83f-4781-ac4b-e46944e4e2f6", - "name": "number", + "element": "adaba455-2666-4754-bfdc-507ad0148039", + "name": "folio", "type": "text", - "value": "1", + "value": "2r", "entity": null, "worker_version": null, "worker_run": null @@ -1642,12 +1646,12 @@ }, { "model": "documents.metadata", - "pk": "821dadd3-2f8d-483c-92e0-ba88be0873aa", + "pk": "8e79d9a5-3a98-49a1-aff4-0fb5a04fa369", "fields": { - "element": "2606fa5a-4356-4646-a6b6-c0d9adced4c8", + "element": "31e2e447-82c1-4fd8-83d0-9cfdabc95e7e", "name": "folio", "type": "text", - "value": "2r", + "value": "1v", "entity": null, "worker_version": null, "worker_run": null @@ -1655,12 +1659,12 @@ }, { "model": "documents.metadata", - "pk": "ad2dfca7-1056-41d0-8492-31aa1356b8b8", + "pk": "96edad24-2f25-4816-876e-ef9396e8fbfe", "fields": { - "element": "a344a86c-c126-464b-927f-40a4583de0a2", - "name": "number", + "element": "6952f8ae-c780-498e-bb72-b708c62ebab2", + "name": "folio", "type": "text", - "value": "2", + "value": "1r", "entity": null, "worker_version": null, "worker_run": null @@ -1668,12 +1672,12 @@ }, { "model": "documents.metadata", - "pk": "b3d6b05d-5cf7-4ace-bca4-8b50cb6326c6", + "pk": "ac55836c-258b-43c8-980e-ea671d6e2057", "fields": { - "element": "649a8f7c-2db7-43cf-82a5-ca86206d9d46", + "element": "7513bffc-5996-4299-9595-2062cdeb115a", "name": "number", "type": "text", - "value": "3", + "value": "1", "entity": null, "worker_version": null, "worker_run": null @@ -1681,12 +1685,12 @@ }, { "model": "documents.metadata", - "pk": "db3febc5-f623-45c0-966a-780d55f2be57", + "pk": "ead43db9-0f54-415f-b72a-2ec857b388a2", "fields": { - "element": "cc0ec6c0-8eae-44ca-8179-7417456b8229", + "element": "55513b17-d8de-4a75-91ba-8bc196d47614", "name": "folio", "type": "text", - "value": "1v", + "value": "1r", "entity": null, "worker_version": null, "worker_run": null @@ -1694,12 +1698,12 @@ }, { "model": "documents.metadata", - "pk": "e691d260-dd78-42e2-81e0-be893f3abd74", + "pk": "fc78b41d-9bb5-4c01-b5d0-233390600365", "fields": { - "element": "baccd487-e8fb-456a-9a2e-4fe0827d38bf", - "name": "number", + "element": "0781cf7e-dbdb-4d7f-88c2-66c3e393bbb0", + "name": "folio", "type": "text", - "value": "5", + "value": "1v", "entity": null, "worker_version": null, "worker_run": null @@ -1722,7 +1726,7 @@ }, { "model": "images.image", - "pk": "333f1f5d-eb17-40a9-8401-d2303a978d5d", + "pk": "4de14db6-5ce8-41a5-a615-7a43ac8d3aad", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", @@ -1736,7 +1740,7 @@ }, { "model": "images.image", - "pk": "3a90a6c2-5c43-4af2-993e-b46091607be6", + "pk": "95daad78-e9ef-40bd-af2c-3d82478ffdd2", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", @@ -1750,12 +1754,12 @@ }, { "model": "images.image", - "pk": "3ac0c089-ac48-45dd-9b18-77c1499fbe0e", + "pk": "a5fc8045-7db0-4e8d-9267-641d221178a0", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "server": 1, - "path": "img1", + "path": "img3", "width": 1000, "height": 1000, "hash": null, @@ -1764,12 +1768,12 @@ }, { "model": "images.image", - "pk": "65351fbb-f6ce-429b-8615-3782bd4e1192", + "pk": "cc181e62-8a90-416f-865a-fcb09ede3043", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "server": 1, - "path": "img4", + "path": "img1", "width": 1000, "height": 1000, "hash": null, @@ -1778,7 +1782,7 @@ }, { "model": "images.image", - "pk": "9f7b7678-defd-4ce7-be9b-ed5b04da3c04", + "pk": "e54b8850-0854-4e28-a965-ab8fcd2fee38", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", @@ -1792,12 +1796,12 @@ }, { "model": "images.image", - "pk": "c826c86a-e5d4-4de8-997b-31b65caf7011", + "pk": "e59eb075-36d1-4c03-83d1-0a8bf3c93c2b", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "server": 1, - "path": "img3", + "path": "img4", "width": 1000, "height": 1000, "hash": null, @@ -1806,64 +1810,64 @@ }, { "model": "users.right", - "pk": "6aeee47f-82fc-4f8c-ba67-0950001f9165", + "pk": "0db160cb-a31d-479c-8fb6-49456e1dcb71", "fields": { - "user": 4, + "user": 3, "group": null, "content_type": 35, - "content_id": "154b84fc-9b5e-4224-8198-369424a6044f", - "level": 10 + "content_id": "151de264-5e02-46af-aae7-456eab4c4cf1", + "level": 50 } }, { "model": "users.right", - "pk": "83388f8c-ab23-4a8f-a93a-5bcf1b1737ed", + "pk": "3fbd5770-f601-4647-9641-c65ef35bdd36", "fields": { "user": 2, "group": null, "content_type": 12, - "content_id": "d4639943-3bc5-4839-ba11-bac03818050c", + "content_id": "296cbab6-7c00-4866-8890-4e40bf78a6a6", "level": 10 } }, { "model": "users.right", - "pk": "8422a688-f89c-450c-9f50-1aa390f8f679", + "pk": "5a05348d-b5eb-4c22-8d05-89a2631ecf51", "fields": { "user": 2, "group": null, - "content_type": 35, - "content_id": "154b84fc-9b5e-4224-8198-369424a6044f", + "content_type": 20, + "content_id": "72fa2511-2af5-4219-996a-45493ad64b25", "level": 100 } }, { "model": "users.right", - "pk": "94d056b0-9e9a-41b5-8287-445947594902", + "pk": "80944dc1-78e9-4afc-bad3-27fd781ec62b", "fields": { - "user": 2, + "user": 4, "group": null, - "content_type": 20, - "content_id": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", - "level": 100 + "content_type": 35, + "content_id": "151de264-5e02-46af-aae7-456eab4c4cf1", + "level": 10 } }, { "model": "users.right", - "pk": "ee07cbba-7ca5-4a6d-ac27-b782c25d294e", + "pk": "f9d4e458-79dc-43a0-b967-18a7fb1a6c5d", "fields": { - "user": 3, + "user": 2, "group": null, "content_type": 35, - "content_id": "154b84fc-9b5e-4224-8198-369424a6044f", - "level": 50 + "content_id": "151de264-5e02-46af-aae7-456eab4c4cf1", + "level": 100 } }, { "model": "users.user", "pk": 1, "fields": { - "password": "pbkdf2_sha256$390000$R2D2dMVrU1brlgQ1SF0ww8$wbS/HqbXLiXpwanPA0BuF2I3DzULtf6iAFgOv0if9es=", + "password": "pbkdf2_sha256$390000$59TVqlNHR4LvjF3guf4dr6$kmNBzQkVoelotq8HHwPIhDMrtFMRsknzhBoau/0wNuQ=", "last_login": null, "email": "root@root.fr", "display_name": "Admin", @@ -1878,7 +1882,7 @@ "model": "users.user", "pk": 2, "fields": { - "password": "pbkdf2_sha256$390000$IPXLTmkcsCErqMmLpDQ1uG$5sNFF32ArLCA6dVY/jQ51sdtYomLFiyxsEtsLJz5QMo=", + "password": "pbkdf2_sha256$390000$THGykeA8JmhYSY0xqpsOrf$gp2sZkct9+Y2PKtKuN4rRrfTo5Hl4S7M4Fp35kTsJv0=", "last_login": null, "email": "user@user.fr", "display_name": "Test user", @@ -1921,7 +1925,7 @@ }, { "model": "users.group", - "pk": "154b84fc-9b5e-4224-8198-369424a6044f", + "pk": "151de264-5e02-46af-aae7-456eab4c4cf1", "fields": { "name": "User group", "public": false, @@ -3955,15 +3959,15 @@ }, { "model": "ponos.farm", - "pk": "d4639943-3bc5-4839-ba11-bac03818050c", + "pk": "296cbab6-7c00-4866-8890-4e40bf78a6a6", "fields": { "name": "Wheat farm", - "seed": "0307fda00557ae52d5b623279314c220e0e132ac58897269042764e154194bea" + "seed": "3ca9ae4ffd981909b0bd5542d7f12bf8f3f5f21c75072b6ca0ff8f9e066db34c" } }, { "model": "ponos.task", - "pk": "67b4f068-55e2-4a60-b1be-5bba33971d4d", + "pk": "66e8e990-c90d-4ad6-97a5-8aeb54904f3e", "fields": { "run": 0, "depth": 0, @@ -3979,22 +3983,22 @@ "agent": null, "requires_gpu": false, "gpu": null, - "process": "6f170a31-9cf3-4fef-a684-ce8c8a4000d2", + "process": "058fd42a-ff15-4c95-95fc-e3743dbbbcdb", "worker_run": null, "container": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", "expiry": "2100-12-31T23:59:59.999Z", "extra_files": "{}", - "token": "3lmDYOM7SpizY+afINTbz+34JrevUErTkEC21ubCc5w=", + "token": "O6FxYWOOTAyijz2Bxwz7ao4I8qOJrU/Dju2rn8tTDZ4=", "parents": [] } }, { "model": "ponos.artifact", - "pk": "27166636-75bd-4296-adce-ba8fa09a36c5", + "pk": "21a5c42e-27e7-4b56-a1f9-59c9a98c5a97", "fields": { - "task": "67b4f068-55e2-4a60-b1be-5bba33971d4d", + "task": "66e8e990-c90d-4ad6-97a5-8aeb54904f3e", "path": "/path/to/docker_build", "size": 42000, "content_type": "application/octet-stream", @@ -4004,11 +4008,11 @@ }, { "model": "training.dataset", - "pk": "2233f882-da17-4468-94c0-f7ea5e8c8f69", + "pk": "4255afcf-756d-41a7-a32a-f0c86856a6f6", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", "creator": 2, "task": null, "name": "First Dataset", @@ -4019,11 +4023,11 @@ }, { "model": "training.dataset", - "pk": "e8c15036-e0ea-4cc4-a370-981b739d5b55", + "pk": "529b4774-2907-49b7-9985-7b69e39e5416", "fields": { "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "corpus": "b925d835-ac8c-4f85-9f17-e2ba27cd4efa", + "corpus": "72fa2511-2af5-4219-996a-45493ad64b25", "creator": 2, "task": null, "name": "Second Dataset", diff --git a/arkindex/process/api.py b/arkindex/process/api.py index b24e36dec3..26001aaab9 100644 --- a/arkindex/process/api.py +++ b/arkindex/process/api.py @@ -88,6 +88,7 @@ from arkindex.process.serializers.imports import ( from arkindex.process.serializers.ingest import BucketSerializer, S3ImportSerializer from arkindex.process.serializers.training import ProcessDatasetSerializer from arkindex.process.serializers.worker_runs import ( + CorpusWorkerRunSerializer, UserWorkerRunSerializer, WorkerRunEditSerializer, WorkerRunSerializer, @@ -1085,6 +1086,56 @@ class CorpusWorkerVersionList(CorpusACLMixin, ListAPIView): ) +@extend_schema_view( + get=extend_schema( + operation_id="ListCorpusWorkerRuns", + tags=["ml"], + ) +) +class CorpusWorkerRunList(CorpusACLMixin, ListAPIView): + """ + List worker runs used by any ML result in a given corpus. + + The results also include all of the current user's worker runs that have results on any corpora, and not + just the request's corpus, as user worker runs are independent from corpora. + The results do **not** include other users' worker runs, even if they have produced results on the + request's corpus. + + Guest access is required on private corpora. No specific rights are required on the workers. + """ + + permission_classes = (IsVerifiedOrReadOnly, ) + serializer_class = CorpusWorkerRunSerializer + # For OpenAPI type discovery + queryset = WorkerRun.objects.none() + + @cached_property + def corpus(self): + return get_object_or_404(self.readable_corpora, pk=self.kwargs["pk"]) + + def get_queryset(self): + return ( + WorkerRun.objects.select_related("process__corpus") + .select_related( + "version__worker__type", + "version__worker__repository", + "version__revision__repo", + "configuration", + "model_version__model", + ) + .prefetch_related( + Prefetch( + "version__revision__refs", + queryset=GitRef.objects.select_related("repository") + ), + "process__tasks", + ) + .filter(Q(process__corpus_id=self.corpus.id) | Q(process__creator_id=self.user.id, process__mode=ProcessMode.Local), has_results=True) + .annotate(process_element_count=Count("process__elements")) + .order_by("summary") + ) + + @extend_schema(tags=["repos"]) @extend_schema_view( get=extend_schema( diff --git a/arkindex/process/management/commands/cache_worker_runs.py b/arkindex/process/management/commands/cache_worker_runs.py new file mode 100644 index 0000000000..a14fde1573 --- /dev/null +++ b/arkindex/process/management/commands/cache_worker_runs.py @@ -0,0 +1,12 @@ +from django.core.management.base import BaseCommand + +from arkindex.process.models import WorkerRun + + +class Command(BaseCommand): + help = "Update the has_results attribute on worker runs" + + def handle(self, *args, **options): + self.stdout.write("Updating worker runs cache…") + WorkerRun.objects.all().set_has_results() + self.stdout.write("Worker runs cache successfully updated.") diff --git a/arkindex/process/managers.py b/arkindex/process/managers.py index c942534316..35ffab9a78 100644 --- a/arkindex/process/managers.py +++ b/arkindex/process/managers.py @@ -1,8 +1,10 @@ import logging +import operator +from functools import reduce from django.conf import settings from django.db import connections -from django.db.models import Manager, ManyToOneRel, Q +from django.db.models import Exists, Manager, ManyToOneRel, OuterRef, Q from django.db.models.functions import Coalesce from django.db.models.query import QuerySet from django.utils.functional import cached_property @@ -171,23 +173,42 @@ class WorkerManager(BaseACLManager): class WorkerRunQuerySet(QuerySet): - def in_use(self): - """ - Check if any data is linked to worker runs - """ - ids = self.values_list("id", flat=True) - related_models = [ + def worker_results_models(self): + return [ field.related_model for field in self.model._meta.get_fields() if isinstance(field, ManyToOneRel) # Ignore reverse links to processes tasks and field.related_model is not Task ] - for field in related_models: + + def in_use(self): + """ + Check if any data is linked to worker runs + """ + ids = self.values_list("id", flat=True) + for field in self.worker_results_models(): if field.objects.filter(worker_run__in=ids).exists(): return True return False + def set_has_results(self): + """ + Set the has_results field on worker runs to True if these workers runs are linked to existing machine learning results + """ + queryset = list(self.annotate(new_has_results=self.has_results_expression()).only("id")) + for run in queryset: + run.has_results = run.new_has_results + self.bulk_update(queryset, ["has_results"]) + + def has_results_expression(self): + return reduce(operator.or_, [ + Exists( + model.objects.filter(worker_run_id=OuterRef("pk")) + ) + for model in self.worker_results_models() + ]) + class WorkerRunManager(Manager): def get_queryset(self): diff --git a/arkindex/process/migrations/0027_workerrun_has_results.py b/arkindex/process/migrations/0027_workerrun_has_results.py new file mode 100644 index 0000000000..618e73c4ae --- /dev/null +++ b/arkindex/process/migrations/0027_workerrun_has_results.py @@ -0,0 +1,18 @@ +# Generated by Django 4.1.7 on 2024-01-17 16:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("process", "0026_remove_repository_unique_repository_hook_token_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="workerrun", + name="has_results", + field=models.BooleanField(default=False), + ), + ] diff --git a/arkindex/process/models.py b/arkindex/process/models.py index 70c9cd6c13..f34e5ee32e 100644 --- a/arkindex/process/models.py +++ b/arkindex/process/models.py @@ -890,6 +890,7 @@ class WorkerRun(models.Model): summary = models.TextField() created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) + has_results = models.BooleanField(default=False) objects = WorkerRunManager() diff --git a/arkindex/process/serializers/imports.py b/arkindex/process/serializers/imports.py index 844aa9b9be..c22aaae6fc 100644 --- a/arkindex/process/serializers/imports.py +++ b/arkindex/process/serializers/imports.py @@ -1,4 +1,5 @@ from collections import defaultdict +from textwrap import dedent from django.conf import settings from rest_framework import serializers @@ -73,6 +74,24 @@ class ProcessTrainingSerializer(ProcessLightSerializer): ) +class CorpusWorkerRunProcessSerializer(ProcessTrainingSerializer): + element_id = serializers.PrimaryKeyRelatedField(read_only=True, allow_null=True) + element_count = serializers.IntegerField( + read_only=True, + allow_null=True, + help_text=dedent(""" + This count is only set for processes created from a selection of elements, + and does not account for either process filters nor the recursive option. + """) + ) + + class Meta(ProcessTrainingSerializer.Meta): + fields = ProcessTrainingSerializer.Meta.fields + ( + "element_id", + "element_count" + ) + + class ProcessSerializer(ProcessTrainingSerializer): """ Serialize a process with its settings diff --git a/arkindex/process/serializers/worker_runs.py b/arkindex/process/serializers/worker_runs.py index bee84a49a0..74e42057cc 100644 --- a/arkindex/process/serializers/worker_runs.py +++ b/arkindex/process/serializers/worker_runs.py @@ -15,7 +15,7 @@ from arkindex.process.models import ( WorkerVersion, WorkerVersionState, ) -from arkindex.process.serializers.imports import ProcessTrainingSerializer +from arkindex.process.serializers.imports import CorpusWorkerRunProcessSerializer, ProcessTrainingSerializer from arkindex.process.serializers.workers import WorkerConfigurationSerializer, WorkerVersionSerializer from arkindex.project.mixins import WorkerACLMixin from arkindex.training.models import ModelVersion, ModelVersionState @@ -296,3 +296,13 @@ class UserWorkerRunSerializer(serializers.ModelSerializer): class Meta: model = WorkerRun fields = ("worker_version_id", "model_version_id", "configuration_id") + + +class CorpusWorkerRunSerializer(WorkerRunSerializer): + process = CorpusWorkerRunProcessSerializer(read_only=True) + + def to_representation(self, obj): + # Move the process_element_count annotation to the process object so it + # can be accessed by its serializer. + obj.process.element_count = obj.process_element_count + return super().to_representation(obj) diff --git a/arkindex/process/tests/commands/test_cache_worker_runs.py b/arkindex/process/tests/commands/test_cache_worker_runs.py new file mode 100644 index 0000000000..776030e624 --- /dev/null +++ b/arkindex/process/tests/commands/test_cache_worker_runs.py @@ -0,0 +1,59 @@ +from django.core.management import call_command + +from arkindex.documents.models import ( + Classification, + Element, + ElementType, + Entity, + MetaData, + MetaType, + Transcription, + TranscriptionEntity, +) +from arkindex.process.models import WorkerRun +from arkindex.project.tests import FixtureTestCase + + +class TestCacheWorkerRuns(FixtureTestCase): + + @classmethod + def setUpTestData(cls): + super().setUpTestData() + cls.run_1, cls.run_2, cls.run_3, cls.run_4 = WorkerRun.objects.all().order_by("summary") + # Set has_results to True for run_3 and run_4 + cls.run_3.has_results = True + cls.run_4.has_results = True + cls.run_3.save() + cls.run_4.save() + # Remove all Element, Classifications, MetaData, Entity, TranscriptionEntity and Transcription objects + # to start clean and be sure of which runs have and do not have ml results + for model in [TranscriptionEntity, MetaData, Entity, Transcription, Classification, Element]: + model.objects.all().delete() + # Create objects created by run_2 and run_4 + page = Element.objects.create( + corpus=cls.corpus, + type=ElementType.objects.get(slug="page"), + name="Fox Mulder", + worker_run=cls.run_2, + worker_version=cls.run_2.version + ) + MetaData.objects.create( + name="partner", + type=MetaType.Text, + value="Dana Scully", + element=page, + worker_run=cls.run_4, + worker_version=cls.run_4.version + ) + + def test_run(self): + self.assertQuerysetEqual( + WorkerRun.objects.order_by("summary").values_list("id", "has_results"), + [(self.run_1.id, False), (self.run_2.id, False), (self.run_3.id, True), (self.run_4.id, True)] + ) + with self.assertNumQueries(2): + call_command("cache_worker_runs") + self.assertQuerysetEqual( + WorkerRun.objects.order_by("summary").values_list("id", "has_results"), + [(self.run_1.id, False), (self.run_2.id, True), (self.run_3.id, False), (self.run_4.id, True)] + ) diff --git a/arkindex/process/tests/test_corpus_worker_runs.py b/arkindex/process/tests/test_corpus_worker_runs.py new file mode 100644 index 0000000000..4f0150d4a5 --- /dev/null +++ b/arkindex/process/tests/test_corpus_worker_runs.py @@ -0,0 +1,188 @@ +from django.urls import reverse +from rest_framework import status + +from arkindex.documents.models import Corpus, Element +from arkindex.ponos.models import Farm +from arkindex.process.models import FeatureUsage, Process, ProcessMode, WorkerRun, WorkerVersion +from arkindex.project.tests import FixtureAPITestCase +from arkindex.users.models import Role + + +class TestCorpusWorkerRuns(FixtureAPITestCase): + """ + Test corpus worker run endpoints and methods + """ + + @classmethod + def setUpTestData(cls): + super().setUpTestData() + cls.process = Process.objects.create( + farm=Farm.objects.first(), + creator=cls.user, + mode=ProcessMode.Workers, + corpus=cls.corpus + ) + cls.dla_worker_version = WorkerVersion.objects.get(worker__slug="dla") + cls.reco_worker_version = WorkerVersion.objects.get(worker__slug="reco") + cls.run_1 = WorkerRun.objects.create( + process=cls.process, + version=cls.dla_worker_version, + parents=[], + has_results=True + ) + + cls.private_corpus = Corpus.objects.create(name="private") + page_type = cls.private_corpus.types.create( + slug="page", + display_name="Page" + ) + Element.objects.bulk_create( + Element( + corpus=cls.private_corpus, + name=f"page {i}", + type=page_type + ) + for i in range(1, 11) + ) + cls.private_process = Process.objects.create( + farm=Farm.objects.first(), + creator=cls.user, + mode=ProcessMode.Workers, + corpus=cls.private_corpus + ) + cls.private_process.elements.set(Element.objects.filter(corpus=cls.private_corpus, type=page_type)) + cls.private_process.save() + cls.run_2 = WorkerRun.objects.create( + process=cls.private_process, + version=cls.reco_worker_version, + parents=[], + ) + cls.run_3 = WorkerRun.objects.create( + process=cls.private_process, + version=cls.dla_worker_version, + parents=[], + has_results=True + ) + + cls.local_process = Process.objects.get(mode=ProcessMode.Local, creator=cls.user) + cls.local_process.element = Element.objects.create( + corpus=cls.private_corpus, + type=cls.private_corpus.types.create( + slug="book", + display_name="Book", + folder=True, + ), + name="Book One", + ) + cls.local_process.save() + cls.local_worker_version = WorkerVersion.objects.get(worker__slug="custom") + cls.user_local_run = WorkerRun.objects.get(process__mode=ProcessMode.Local, process__creator=cls.user) + cls.user_local_run.has_results = True + cls.user_local_run.save() + + def test_list_requires_read_access(self): + self.client.force_login(self.user) + with self.assertNumQueries(5): + response = self.client.get(reverse("api:corpus-runs", kwargs={"pk": self.private_corpus.id})) + self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) + + def test_list(self): + self.private_corpus.memberships.create(user=self.user, level=Role.Guest.value) + self.client.force_login(self.user) + with self.assertNumQueries(8): + response = self.client.get(reverse("api:corpus-runs", kwargs={"pk": self.private_corpus.id})) + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.json()["results"], [ + { + "configuration": None, + "id": str(self.user_local_run.id), + "model_version": None, + "parents": [], + "process": { + "activity_state": "disabled", + "corpus": None, + "element_id": str(self.local_process.element.id), + "element_count": 0, + "id": str(self.local_process.id), + "mode": "local", + "model_id": None, + "name": None, + "state": "unscheduled", + "test_folder_id": None, + "train_folder_id": None, + "use_cache": False, + "validation_folder_id": None + }, + "summary": "Worker Custom worker @ version 1", + "worker_version": { + "configuration": { + "custom": "value" + }, + "created": self.local_worker_version.created.isoformat().replace("+00:00", "Z"), + "docker_image": None, + "docker_image_iid": None, + "docker_image_name": None, + "gpu_usage": "disabled", + "id": str(self.local_worker_version.id), + "model_usage": FeatureUsage.Disabled.value, + "revision": None, + "state": "created", + "version": 1, + "worker": { + "id": str(self.local_worker_version.worker.id), + "name": "Custom worker", + "slug": "custom", + "type": "custom" + } + } + }, + { + "id": str(self.run_3.id), + "worker_version": { + "id": str(self.dla_worker_version.id), + "configuration": {"test": 42}, + "docker_image": str(self.dla_worker_version.docker_image.id), + "docker_image_iid": None, + "docker_image_name": f"my_repo.fake/workers/worker/dla:{self.dla_worker_version.id}", + "gpu_usage": "disabled", + "model_usage": FeatureUsage.Disabled.value, + "revision": { + "id": str(self.dla_worker_version.revision.id), + "author": "Test user", + "commit_url": "http://my_repo.fake/workers/worker/commit/1337", + "created": self.dla_worker_version.revision.created.isoformat().replace("+00:00", "Z"), + "hash": "1337", + "message": "My w0rk3r", + "refs": [] + }, + "version": None, + "created": self.dla_worker_version.created.isoformat().replace("+00:00", "Z"), + "state": "available", + "worker": { + "id": str(self.dla_worker_version.worker.id), + "name": "Document layout analyser", + "slug": "dla", + "type": "dla" + } + }, + "parents": [], + "model_version": None, + "configuration": None, + "process": { + "id": str(self.private_process.id), + "activity_state": "disabled", + "corpus": str(self.private_corpus.id), + "element_id": None, + "element_count": 10, + "mode": "workers", + "model_id": None, + "name": None, + "state": "unscheduled", + "test_folder_id": None, + "train_folder_id": None, + "use_cache": False, + "validation_folder_id": None + }, + "summary": f"Worker Document layout analyser @ {str(self.dla_worker_version.id)[:6]}", + } + ]) diff --git a/arkindex/project/api_v1.py b/arkindex/project/api_v1.py index 35fea169bd..616d44640b 100644 --- a/arkindex/project/api_v1.py +++ b/arkindex/project/api_v1.py @@ -80,6 +80,7 @@ from arkindex.process.api import ( BucketList, ClearProcess, CorpusProcess, + CorpusWorkerRunList, CorpusWorkersActivity, CorpusWorkerVersionList, CreateDockerWorkerVersion, @@ -191,6 +192,7 @@ api = [ path("corpus/<uuid:pk>/allowed-metadata/", CorpusAllowedMetaData.as_view(), name="corpus-allowed-metadata"), path("corpus/<uuid:corpus>/allowed-metadata/<uuid:pk>/", AllowedMetaDataEdit.as_view(), name="allowed-metadata-edit"), path("corpus/<uuid:pk>/versions/", CorpusWorkerVersionList.as_view(), name="corpus-versions"), + path("corpus/<uuid:pk>/worker-runs/", CorpusWorkerRunList.as_view(), name="corpus-runs"), path("corpus/<uuid:pk>/selection/", CorpusSelectionDestroy.as_view(), name="corpus-delete-selection"), path("corpus/<uuid:pk>/search/", CorpusSearch.as_view(), name="corpus-search"), path("corpus/<uuid:pk>/export/", CorpusExportAPIView.as_view(), name="corpus-export"), -- GitLab