So, I'm still not sure about what you consider to be an annotation on curlie.org. What I understood, you'll correct me if I'm wrong, is that you would like to annotate some text, more specifically you would like to annotate/identify concepts, and you would like to follow the structure on curlie.
From what I see, curlie doesn't contain any annotation, it's more like a website ontology, which has at the bottom real url and as hypernyms domain-specific topics and then at the top level broad topics. So the only thing you might consider an annotation, at document level, i.e. a single label for a whole website, is the domain-specific topic.
If you want to create an ontology similar to curlie, Protege could be a good choice. Also, if you're interested in retrieving some general taxonomy information for a word, you probably want to look at some lexical databased like WordNet or ConceptNet.
If this is not what you want and you're interested in making your own annotations at word level, e.g. "I bought an iPhone[object]" then probably the taxonomy of curlie is too generic and you will definitely need to narrow down the scope of your annotations. Take a look at some literature of NLP tasks like Named entity recognition, it's plenty of papers. Also, if you will go down this road (creating your own annotations) a good tool is Prodigy. Consider that even at word level, annotations can defined at several levels for each document. For example, in opinion mining usually people are interested in annotating not only a chunk of words representing an opinion, but also other aspects like the target of the opinion, e.g. "[This [GPS]$_{target}$ really sucks]$_{opinion}$, it never works!".
But in my experience people stop at max 3 layers of annotations, and it truly depends on the purpose for which the annotations are made in the first place.