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.

CanonicalTag Object

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

AttachedCanonicalTag Object

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