Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
February 25, 2018 17:00
May 25, 2018 10:31
February 26, 2018 11:03
February 13, 2018 17:45
September 26, 2019 13:29
March 6, 2018 11:18
September 26, 2019 13:29
February 26, 2018 11:04

CESI: Canonicalizing Open Knowledge Bases using Embeddings and Side Information

Conference Paper Slides Poster

Source code and dataset for The WebConf 2018 (WWW 2018) paper: CESI: Canonicalizing Open Knowledge Bases using Embeddings and Side Information.

Overview of CESI. CESI first acquires side information of noun and relation phrases of Open KB triples. In the second step, it learns embeddings of these NPs and relation phrases while utilizing the side information obtained in previous step. In the third step, CESI performs clustering over the learned embeddings to canonicalize NP and relation phrases. Please refer paper for more details


  • Compatible with both Python 2.7/3.x
  • Dependencies can be installed using requirements.txt


  • Datasets ReVerb45k, Base and Ambiguous are included with the repository.
  • The input to CESI is a KG as list of triples. Each triple is stored as a json in a new line. An example entry is shown below:
	"_id": 	  36952,
	"triple": [
		"had reached",
	"triple_norm": [
		"have reach",
  	"true_link": {
		"subject": "/m/09w_9",
		"object":  "/m/02bb_4"
  	"src_sentences": [
		"Frederick had reached Alessandria",
		"By late October, Frederick had reached Alessandria."
	"entity_linking": {
		"subject":  "Frederick,_Maryland",
		"object":   "Alessandria"
	"kbp_info": []
  • _id unique id of each triple in the Knowledge Graph.
  • triple denotes the actual triple in the Knowledge Graph
  • triple_norm denotes the normalized form of the triple (after lemmatization, lower casing ...)
  • true_link is the gold canonicalization of subject and object. For relations gold linking is not available.
  • src_sentences is the list of sentences from which the triple was extracted by Open IE algorithms.
  • entity_linking is the Entity Linking side information which is utilized by CESI.
  • kbp_info Knowledge-Base Propagation side information used by CESI.


Setup Environment:
  • After installing python dependencies, execute sh for setting up required things.
  • Pattern library is required to run the code. Please install it from Python 2.x/Python 3.x.
Start PPDB server:
  • Running PPDB server is essential for running the main code.
  • To start the server execute: python ppdb/ -port 9997 (Let the server run in a separate terminal)
Run the main code:
  • python src/ -name reverb45_test_run
  • On executing the above command, all the output will be dumped in output/reverb45_test_run directory.
  • -name is an arbitrary name assigned to the run.


Please cite the following paper if you use this code in your work.

	author = {Vashishth, Shikhar and Jain, Prince and Talukdar, Partha},
	title = {{CESI}: Canonicalizing Open Knowledge Bases Using Embeddings and Side Information},
	booktitle = {Proceedings of the 2018 World Wide Web Conference},
	series = {WWW '18},
	year = {2018},
	isbn = {978-1-4503-5639-8},
	location = {Lyon, France},
	pages = {1317--1327},
	numpages = {11},
	url = {},
	doi = {10.1145/3178876.3186030},
	acmid = {3186030},
	publisher = {International World Wide Web Conferences Steering Committee},
	address = {Republic and Canton of Geneva, Switzerland},
	keywords = {canonicalization, knowledge graph embeddings, knowledge graphs, open knowledge bases},


WWW 2018: CESI: Canonicalizing Open Knowledge Bases using Embeddings and Side Information








No releases published


No packages published