Skip to content

URI hierarchy

rspeer edited this page Sep 27, 2011 · 26 revisions

Nodes in ConceptNet have URIs. A URI should tell you:

  • what kind of object you're looking at
  • important defining properties of it, such as its language or its text ("name")
  • (if you prepend a server name) what URL to go to to get information about it, when we put up our API

For example, one concept URI is /concept/en/coffee. The type is "concept". The type defines that the parts that come next are the language (en) and the concept name (concept).

The internal encoding is UTF-8 with spaces changed to underscores. We don't URI-encode things on this end (such as changing apostrophes to %27), though someone accessing our API will have to do that.

The hierarchy

/: the root object, possibly the starting point for spreading confidence and for garbage collection

  • /assertions: Assertions

    • Assertions are specified by several concepts (the first of which acts as a relation), separated by /_ before each concept URI.
    • Examples:
      • /assertion/_/relation/IsA/_/concept/en/dog/_/concept/en/animal
      • /assertion/_/relation/UsedFor/_/concept/zh_TW/枕頭/_/concept/zh_TW/睡覺
      • /assertion/_/concept/en/eat/_/concept/en/cow/_/concept/en/grass
  • /concept: Concepts, specified by a language and a name

    • /concept/en: English concepts
      • /concept/en/coffee (for example): the concept "coffee" in English
      • /concept/en/for: the preposition "for", probably being used as a relation
    • /concept/zh_TW: Traditional Chinese concepts as used in Taiwan
  • /frame: text patterns, specified by a name only

    • /frame/{1}_is_used_for_{2} (for example)
  • /relation: language-independent relations, specified by a name only

    • /relation/UsedFor (for example): the "used for" relation, across all languages
  • /text: plain text that fills a frame and can be turned into concepts, specified by a name only

    • /text/en/a_dog: the phrase "a dog"
Clone this wiki locally