Create Label Set
When creating a Span Labeling Project, we often want to create a label set as well. This example shows you how to create a simple label set consisting of 3 labels, along with their corresponding colors.
In this example, we will be using the GraphQL mutation createLabelSet
to create a label set in Datasaur.
Mutation: createLabelSet.
cURL
You can use the following cURL command to create a label set and attach it to a project. Simply copy and paste the command, then replace:
access_token
with your own API access token.The content of the label set items with your desired labels.
project_id
with the ID of the project you want to link it to.
Make sure to adjust these values according to your specific needs before running the command.
curl --location --request POST 'https://datasaur.ai/graphql' \
--header 'Authorization: Bearer access_token' \
--header 'Content-Type: application/json' \
--data-raw '{"query":"mutation CreateLabelSetMutation($input: CreateLabelSetInput!, $projectId: ID!) { createLabelSet(input: $input, projectId: $projectId) { id }}","variables":{"input":{"name":"Give your new label set a name","index":0,"tagItems":[{"id":"per","parentId":null,"desc":null,"color":"red","tagName":"PER"},{"id":"geo","parentId":null,"desc":null,"color":"green","tagName":"GEO"},{"id":"gpe","parentId":null,"desc":null,"color":null,"tagName":"GPE"}]},"projectId":"<projectId>"}}'
Below is a more readable version of the above curl command's request body.
{
"query": "mutation CreateLabelSetMutation($input: CreateLabelSetInput!, $projectId: ID!) { createLabelSet(input: $input, projectId: $projectId) { id }}",
"variables": {
"projectId": "<projectId>",
"input": {
"name": "Give your new label set a name",
"index": 0,
"tagItems": [
{
"id": "per",
"parentId": null,
"desc": null,
"color": "red",
"tagName": "PER"
},
{
"id": "geo",
"parentId": null,
"desc": null,
"color": "green",
"tagName": "GEO"
},
{
"id": "gpe",
"parentId": null,
"desc": null,
"color": null,
"tagName": "GPE"
}
]
}
}
}
operationName: you can fill any alphanumeric string in as the operationName. Refer this page for best practices on choosing an
operationName
.variables:
projectId: optional, but in practice this is required if you want to attach the label set to a particular project. If unspecified, the label set will be created, but you won't be able to see it in the project
input:
name: optional, You may give this label set a name so you could refer it in the future from Label Set Library.
index: optional, index or position of the label set. Zero-based index, to set the label set as the first one, set this value as 0
tagItems:
Each tag item includes 3 required fields
id: Fill with a random id. You can use any string as long as it is unique.
parentId: This is used for hierarchical labels. Use any existing ids that you have defined. If there is no parentId, use
null
.tagName: Fill with the actual labels you'd like to use and the user will see e.g.
person
,geopolitical entity
A tag item also has 2 optional fields
desc: label description
color: You can set the color of the label. Refer to this page.
query: Copy this from the cURL example.
Response
Here is the response you can expect after issuing the cURL command. Use the id to create the project.
{
"data": {
"createLabelSet": {
"id": "366"
}
},
"extensions": {}
}
Last updated