docs: def build_skos_concepts(self):
          """
          2015-08-19: first draft
          """
          self.all_skos_concepts = []  # @todo: keep adding?
  
          qres = self.sparqlHelper.getSKOSInstances()
          # print("rdflib query done")
  
          for candidate in qres:
  
              test_existing_cl = self.get_skos(uri=candidate[0])
              if not test_existing_cl:
                  # create it
                  self.all_skos_concepts += [OntoSKOSConcept(candidate[0], None, self.namespaces)]
              else:
                  pass
          # print("concepts created")
          # add more data
          skos = rdflib.Namespace('http://www.w3.org/2004/02/skos/core#')
  
          for aConcept in self.all_skos_concepts:
              # print("enriching concept...", aConcept)
              aConcept.rdftype = skos['Concept']
              aConcept.triples = self.sparqlHelper.entityTriples(aConcept.uri)
              aConcept._buildGraph()  # force construction of mini graph
  
              aConcept.sparqlHelper = self.sparqlHelper
  
              # attach to an ontology
              for uri in aConcept.getValuesForProperty(rdflib.RDFS.isDefinedBy):
                  onto = self.get_ontology(uri=str(uri))
                  if onto:
                      onto.all_skos_concepts += [aConcept]
                      aConcept.ontology = onto
  
              # add direct Supers
              directSupers = self.sparqlHelper.getSKOSDirectSupers(aConcept.uri)
  
              for x in directSupers:
                  superclass = self.get_skos(uri=x[0])
                  # note: extra condition to avoid recursive structures
                  if superclass and superclass.uri != aConcept.uri:
                      aConcept._parents.append(superclass)
  
                      # add inverse relationships (= direct subs for superclass)
                      if aConcept not in superclass.children():
                          superclass._children.append(aConcept)
  
          # sort alphabetically
          self.all_skos_concepts = sorted(self.all_skos_concepts, key=lambda x: x.qname)
  
          # compute top layer for skos
          exit = []
          for c in self.all_skos_concepts:
              if not c.parents():
                  exit += [c]
          self.toplayer_skos = exit