I came across curlie.org (previously known as the dmoz taxonomy) and I'm interested to see how I could best start tagging a given text, with concepts from that taxonomy:

  • Are there any tools out there that do semantic annotation based on a taxonomy (I couldn't find any)
  • How would one go about making such a semantic annotation process

I know this question might be a large to answer in a short reply, but any pointers are greatly appreciated.

Thanks in advance!

  • 2
    $\begingroup$ Could you add some extra info about the kind of annotations you would like to perform? Are you thinking about a specific domain? Do you need them to train a ML model or perform other analysis? $\endgroup$ Commented Mar 15, 2020 at 23:35
  • $\begingroup$ Hi @EdoardoGuerriero, we were thinking in general about curlie.org annotations, so semantic concepts. Preferably we can use this in a general way, if we have to we'd have to train a certain domain? i.e. "Politics"? So it's not about classification, but really about identifying concepts in a text, based on something like curlie.org. $\endgroup$
    – jlos
    Commented Mar 16, 2020 at 8:52

1 Answer 1


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.

  • $\begingroup$ Hi, thanks for the links to Word/ConceptNet, I didn't know that existed. I am indeed wondering what I need to do in order to annotate texts as you described in your iPhone example: [SpaceX](wiki:/SpaceX) is a company that build [space rockets](curlie.org/Space_Rocket). Do I understand it correctly this could be accomplished by using NER and letting Word/ConceptNet link those entities? Using ConceptNet for more general high level concepts, and then use dbpedia, curlie, ... for more specific ones? $\endgroup$
    – jlos
    Commented Mar 26, 2020 at 20:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.