Comment on page
Canonical Tags
Unique entities described by a set of annotations
Canonical Tags are a way to reference a singular entity that is comprised of multiple fixed annotations. This is a useful abstraction when dealing with things like Airframes (Make, Model, Serial), People (First, Middle, Last), or Land (Section, Township, Range, QQ1, QQ2, etc). They are intended as a uniquely disambiguating abstraction for the multiple ways that a single entity can be expressed or written in a document.
Canonical Tags exist in two states. In their unattached state as CanonicalTag objects and as AttachedCanonicalTag object when describing a CanonicalTag that has been attached to an entire instrument or source file.
A canonical tag describes a unique entity defined by a type and an array of attributes
Attribute Name | Type | Description |
---|---|---|
typeName | String | Name describing the type of canonical tag |
attributes | Array of canonical annotations that comprise the canonical tag | |
domainEntityId? | Integer | Unique id describing the canonical tag object |
status? | String | "Created" or "Found"
Returned when creating tags in bulk to reflect whether each tag already exists (Found) or was newly created in the request (Created). |
{
"typeName": "Airframe Inventory",
"attributes": [
{"name": "Make", "value": "Beech"}, {"name": "Model", "value": "C24R"}, {"name": "Serial Number", "value": "MC-453"}
]
}
get
https://api.annolab.ai
/v1/project/{group_name}/{project_name}/tags
List the tags in a project
post
https://api.annolab.ai
/v1/tag
Create one or more Tags
Python
import requests
ANNO_LAB_API_KEY = 'XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX'
headers = {
'Authorization': 'Api-Key '+ANNO_LAB_API_KEY,
}
create_tag_url = 'https://api.annolab.ai/v1/tag'
project_name = "title-demo"
group_name = "AnnoLab"
tag_list = [
{
'typeName': 'Airframe Inventory',
'attributes': [
{'name': 'Make', 'value': 'Cessna'},
{'name': 'Model', 'value': '501'},
{'name': 'Serial Number', 'value': '501-0050'}
]
}
]
tagPayload = {
"projectIdentifier": project_name,
"groupName": group_name,
"tags": tag_list
}
r = requests.post(create_tag_url, headers=headers, json=tagPayload)
json_response = r.json()
print(json_response)
post
https://api.annolab.ai
/v1/tag/{domain_entity_id}
Edit a tag's values
delete
https://api.annolab.ai
/v1/tag/{domainEntityId}
Delete a single tag by its domainEntityId
delete
https://api.annolab.ai
/v1/tag
Bulk delete tags by values
An attached canonical tag object describes the attachment of a canonical tag to some Instrument or Source
Attribute Name | Type | Description |
---|---|---|
tagType | String | What the canonical tag is attached to. Can be attached to either "Instrument" or "Source" |
typeName | String | Name describing the type of canonical tag |
domainEntityId | Integer | Unique id of the canonical tag |
annotationId? | Integer | Unique id describing where the canonical tag is attached. e.g. the unique id of the instrument |
sourceReferenceId? | Integer | Unique id describing where the canonical tag is attached. e.g. the unique id of the file |
attributes | Array of canonical annotations that comprise the canonical tag | |
createdBy | UserObject|Null | Object that consists of a id, email, and username associated with the person who assigned the tag |
{
"tagType": "Instrument",
"typeName": "Airframe Inventory",
"domainEntityId": 39,
"annotationId": 402970,
"attributes": [
{"name": "Make", "value": "Beech"}, {"name": "Model", "value": "C24R"}, {"name": "Serial Number", "value": "MC-453"}
],
"createdBy": {
"id": 15,
"email": "[email protected]",
"usernname": "tester"
}
}
post
https://api.annolab.ai
/v1/instrument-tag
Attach a tag to an instrument
delete
https://api.annolab.ai
/v1/instrument-tag
Unattach a tag from an instrument
delete
https://api.annolab.ai
/v1/instrument-tag/{instrument_id}/{domain_entity_id}
(Alternate) Unattach a tag from an instrument
post
https://api.annolab.ai
/v1/source-tag
Attach a tag to a source
delete
https://api.annolab.ai
/v1/source-tag
Unattach a tag from a source.
delete
https://api.annolab.ai
/v1/source-tag/{source_id}/{domain_entity_id}
(Alternate) Unattach a tag from a source