class_docstr: This class is used to compute graph-based IC in knowledge graph, which is
  basically the proportion of instances tagged with a specific concept
class_docstr_tok: ["This","class","is","used","to","compute","graph-based","IC","in","knowledge","graph",",","which","is","basically","the","proportion","of","instances","tagged","with","a","specific","concept"]
docstr: Compute the ic value of a concept using sparql query
  :param concept: a id of concept, here is the uri of concept
  :return: the ic value of the concept
docstr_tok: ["Compute","the","ic","value","of","a","concept","using","sparql","query",":","param","concept",":","a","id","of","concept",",","here","is","the","uri","of","concept",":","return",":","the","ic","value","of","the","concept"]
code: def concept_ic(self, concept):
      """
      Compute the ic value of a concept using sparql query
      :param concept: a id of concept, here is the uri of concept
      :return: the ic value of the concept
      """
      if concept in self._graph_ic:
          return self._graph_ic[concept]
      else:
          freq = int(self._graph_stats.concept_freq(concept))
          if freq == 0:
              ic = 0.0
          else:
              prob = 1.0 * freq / self._N
              ic = -math.log(prob)
          self.graph_ic_writer(
              self._ic_file, [{"concept": concept, "ic": str(ic)}]
          )
          self._graph_ic[concept] = ic
          return ic
  
imports: from abc import ABCMeta, abstractmethod
  from collections import deque
  from itertools import combinations
  import networkx
  import numpy
  from sematch.semantic.ontology import DBpedia
  from sematch.utility import FileIO
  from sematch.semantic.sparql import StatSPARQL
  import math
label_desc: Use image node_id 2 for calling the GraphIC obj's underlying member method code with example usage: obj.concept_ic(concept) and returns: self, ic