Skip to content
Rob Speer edited this page Mar 19, 2014 · 10 revisions

Version info: The properties of edges have remained the same in ConceptNet 5.0, 5.1, and 5.2. ConceptNet 5.2 added the ability for assertions themselves to be expressed in the same format as edges.

An edge is a unit of knowledge in ConceptNet. It tells us a particular relation between concepts, according to a particular source. (See Relations.)

Each edge is represented as a data structure with named fields, which would be called a "dictionary" in Python or an "object" in JavaScript.

The same structures can be used to express assertions, which are groupings of edges that express the same relation between concepts.

Fields of edges and assertions

An edge (which can also be an assertion) contains the following fields:

  • id: the unique ID for this edge, which contains a SHA-1 hash of the information that makes it unique.
  • uri: the URI of the assertion being expressed. The uri is unique among assertions, but not among edges, because multiple edges can bundle together to express the same assertion.
  • rel: the URI of the predicate (relation) of this assertion.
  • start: the URI of the first argument of the assertion.
  • end: the URI of the second argument of the assertion.
  • weight: the strength with which this edge expresses this assertion. A typical weight is 1, but weights can be higher, lower, or even negative.
  • sources: the sources that, when combined, say that this assertion should be true (or not true, if the weight is negative).
  • license: a URI representing the Creative Commons license that governs this data. See Copying and sharing ConceptNet.
  • dataset: a URI representing the dataset, or the batch of data from a particular source that created this edge.
  • context: not used in ConceptNet 5.2. The value is always "/ctx/all" for compatibility.
  • features: a list of three identifiers for features, which are essentially assertions with one of their three components missing. These can be useful in machine learning for inferring missing data.
  • surfaceText: the original natural language text that expressed this statement. May be null, because not every statement was derived from natural language input. The locations of the start and end concepts will be marked by surrounding them with double brackets. An example of a surfaceText is "a cat is an animal".

The double life of assertions

On this page, we've looked at assertions as a kind of edge. Assertions can also be treated as a kind of node, which allows us to make assertions about assertions. See Nodes.

Clone this wiki locally