Ontology examples

Complex examples of creating a variety of ontologies.

Image

ontology_builder = lb.OntologyBuilder( classifications=[ # list of classification objects lb.Classification(class_type=lb.Classification.Type.RADIO, name="radio_question", options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ]), lb.Classification(class_type=lb.Classification.Type.CHECKLIST, name="checklist_question", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ]), lb.Classification(class_type=lb.Classification.Type.TEXT, name="free_text"), lb.Classification( class_type=lb.Classification.Type.RADIO, name="nested_radio_question", options=[ lb.Option("first_radio_answer", options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[lb.Option("first_sub_radio_answer")]) ]) ]), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="nested_checklist_question", options=[ lb.Option( "first_checklist_answer", options=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[lb.Option("first_sub_checklist_answer")]) ]) ]), ], tools=[ # List of Tool objects lb.Tool(tool=lb.Tool.Type.BBOX, name="bounding_box"), lb.Tool(tool=lb.Tool.Type.BBOX, name="bbox_with_radio_subclass", classifications=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[lb.Option(value="first_sub_radio_answer")]), ]), lb.Tool(tool=lb.Tool.Type.POLYGON, name="polygon"), lb.Tool(tool=lb.Tool.Type.RASTER_SEGMENTATION, name="mask"), lb.Tool(tool=lb.Tool.Type.RASTER_SEGMENTATION, name="mask_with_text_subclass", classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, name="sub_free_text") ]), lb.Tool(tool=lb.Tool.Type.POINT, name="point"), lb.Tool(tool=lb.Tool.Type.LINE, name="polyline"), lb.Tool(tool=lb.Tool.Type.RELATIONSHIP, name="relationship") ]) ontology = client.create_ontology("Image Annotation Import Demo Ontology", ontology_builder.asdict(), media_type=lb.MediaType.Image)

Video

ontology_builder = lb.OntologyBuilder( tools=[ lb.Tool(tool=lb.Tool.Type.BBOX, name="bbox_video"), lb.Tool(tool=lb.Tool.Type.POINT, name="point_video"), lb.Tool(tool=lb.Tool.Type.LINE, name="line_video_frame"), lb.Tool(tool=lb.Tool.Type.RASTER_SEGMENTATION, name="video_mask"), lb.Tool( tool=lb.Tool.Type.BBOX, name="bbox_class", classifications=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="checklist_class", scope = lb.Classification.Scope.INDEX, options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ) ] ), lb.Tool(tool=lb.Tool.Type.RASTER_SEGMENTATION, name="mask_with_text_subclass", classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, name="sub_free_text") ] ) ], classifications=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_class", scope = lb.Classification.Scope.INDEX, ## Need to defined scope for frame classifications options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_class", scope = lb.Classification.Scope.INDEX, options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="nested_radio_question", options=[ lb.Option("first_radio_answer", options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[lb.Option("first_sub_radio_answer")] ) ] ) ] ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="nested_checklist_question", options=[ lb.Option("first_checklist_answer", options=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[lb.Option("first_sub_checklist_answer")] ) ] ) ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_class_global", options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_class_global", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.TEXT, name="free_text" ) ] ) ontology = client.create_ontology("Video Annotation Import Demo Ontology", ontology_builder.asdict(), media_type=lb.MediaType.Video)

Text

ontology_builder = lb.OntologyBuilder( classifications=[ # List of Classification objects lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_question", options=[lb.Option(value="first_radio_answer")] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="nested_radio_question", options=[ lb.Option(value="first_radio_answer", options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[ lb.Option(value="first_sub_radio_answer") ] ), ] ), ], ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="nested_checklist_question", options=[ lb.Option("first_checklist_answer", options=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[lb.Option("first_sub_checklist_answer")] ) ] ) ] ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_question", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer"), lb.Option(value="third_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.TEXT, name="free_text" ) ], tools=[ # List of Tool objects lb.Tool( tool=lb.Tool.Type.NER, name="named_entity" ), lb.Tool( tool=lb.Tool.Type.RELATIONSHIP, name="relationship" ) ] ) ontology = client.create_ontology("Ontology Text Annotations", ontology_builder.asdict())

Geospatial

ontology_builder = lb.OntologyBuilder( tools=[ lb.Tool(tool=lb.Tool.Type.POINT, name="point_geo"), lb.Tool(tool=lb.Tool.Type.LINE, name="polyline_geo"), lb.Tool(tool=lb.Tool.Type.POLYGON, name="polygon_geo"), lb.Tool(tool=lb.Tool.Type.POLYGON, name="polygon_geo_2"), lb.Tool(tool=lb.Tool.Type.BBOX, name="bbox_geo"), lb.Tool( tool=lb.Tool.Type.BBOX, name="bbox_checklist_geo", classifications=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_class_name", options=[ lb.Option(value="first_checklist_answer") ] ), ] ), lb.Tool( tool=lb.Tool.Type.BBOX, name="bbox_text_geo", classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, name="free_text_geo" ), ] ) ], classifications = [ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_question_geo", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer"), lb.Option(value="third_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_question_geo", options=[ lb.Option(value="first_radio_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="nested_radio_question", options=[ lb.Option(value="first_radio_answer", options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[ lb.Option(value="first_sub_radio_answer") ] ), ] ), ], ), lb.Classification(class_type=lb.Classification.Type.TEXT, name="free_text"), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="nested_checklist_question", options=[ lb.Option("first_checklist_answer", options=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[lb.Option("first_sub_checklist_answer")] ) ] ) ] ) ] ) ontology = client.create_ontology("Ontology Geospatial Annotations", ontology_builder.asdict(), media_type=lb.MediaType.Geospatial_Tile)

Document

ontology_builder = lb.OntologyBuilder( classifications=[ # List of Classification objects lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_question", scope = lb.Classification.Scope.GLOBAL, options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_question", scope = lb.Classification.Scope.GLOBAL, options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.TEXT, name="free_text", scope = lb.Classification.Scope.GLOBAL ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="nested_radio_question", scope = lb.Classification.Scope.GLOBAL, options=[ lb.Option("first_radio_answer", options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[lb.Option("first_sub_radio_answer")] ) ]) ] ), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="nested_checklist_question", scope = lb.Classification.Scope.GLOBAL, options=[ lb.Option("first_checklist_answer", options=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[lb.Option("first_sub_checklist_answer")] ) ]) ] ), ], tools=[ # List of Tool objects lb.Tool( tool=lb.Tool.Type.BBOX,name="bounding_box"), lb.Tool(tool=lb.Tool.Type.NER, name="named_entity"), lb.Tool(tool=lb.Tool.Type.RELATIONSHIP,name="relationship"), lb.Tool(tool=lb.Tool.Type.NER, name="ner_with_checklist_subclass", classifications=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="sub_checklist_question", options=[ lb.Option(value="first_sub_checklist_answer") ] ) ]), lb.Tool( tool=lb.Tool.Type.BBOX, name="bbox_with_radio_subclass", classifications=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="sub_radio_question", options=[ lb.Option( value="first_sub_radio_answer" , options=[ lb.Classification( class_type=lb.Classification.Type.RADIO, name="second_sub_radio_question", options=[lb.Option("second_sub_radio_answer")] )] )] )] )] ) ontology = client.create_ontology("Document Annotation Import Demo", ontology_builder.asdict(), media_type=lb.MediaType.Document)

Audio

ontology_builder = lb.OntologyBuilder( classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, name="text_audio"), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_audio", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_audio", options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ) ] ) ontology = client.create_ontology("Ontology Audio Annotations", ontology_builder.asdict(), media_type=lb.MediaType.Audio)

HTML

ontology_builder = lb.OntologyBuilder( classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, name="text_html"), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist_html", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_html", options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ) ] ) ontology = client.create_ontology("Ontology HTML Annotations", ontology_builder.asdict(), media_type=lb.MediaType.Html)

Conversational

ontology_builder = lb.OntologyBuilder( tools=[ lb.Tool(tool=lb.Tool.Type.NER,name="ner"), lb.Tool(tool=lb.Tool.Type.RELATIONSHIP,name="relationship") ], classifications=[ lb.Classification( class_type=lb.Classification.Type.TEXT, scope=lb.Classification.Scope.INDEX, # Remove this line or set scope to "GLOBAL" if importing global text annotations instructions="text_convo"), lb.Classification( class_type=lb.Classification.Type.CHECKLIST, scope=lb.Classification.Scope.INDEX, # Remove this line or set scope to "GLOBAL" if importing global checklist annotations instructions="checklist_convo", options=[ lb.Option(value="first_checklist_answer"), lb.Option(value="second_checklist_answer") ] ), lb.Classification( class_type=lb.Classification.Type.RADIO, instructions="radio_convo", scope=lb.Classification.Scope.INDEX, # Remove this line or set scope to "GLOBAL" if importing global radio annotations options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer") ] ) ] ) ontology = client.create_ontology("Ontology Conversation Annotations", ontology_builder.asdict())

Model Chat Evaluation

ontology_builder = lb.OntologyBuilder( tools=[ lb.Tool( tool=lb.Tool.Type.MESSAGE_SINGLE_SELECTION, name="single select feature", ), lb.Tool( tool=lb.Tool.Type.MESSAGE_MULTI_SELECTION, name="multi select feature", ), lb.Tool(tool=lb.Tool.Type.MESSAGE_RANKING, name="ranking feature"), ], classifications=[ lb.Classification( class_type=lb.Classification.Type.CHECKLIST, name="checklist feature", options=[ lb.Option(value="option 1", label="option 1"), lb.Option(value="option 2", label="option 2"), ], ), lb.Classification( class_type=lb.Classification.Type.RADIO, name="radio_question", options=[ lb.Option(value="first_radio_answer"), lb.Option(value="second_radio_answer"), ], ), ], ) # Create ontology ontology = client.create_ontology( "MCE ontology", ontology_builder.asdict(), media_type=lb.MediaType.Conversational, ontology_kind=lb.OntologyKind.ModelEvaluation, )