docs: def __buildDomainRanges(self, aProp):
          """
          extract domain/range details and add to Python objects
          """
  
          domains = chain(aProp.rdflib_graph.objects(
              None, rdflib.term.URIRef(u'http://schema.org/domainIncludes')), aProp.rdflib_graph.objects(
              None, rdflib.RDFS.domain))
  
          ranges = chain(aProp.rdflib_graph.objects(
              None, rdflib.term.URIRef(u'http://schema.org/rangeIncludes')), aProp.rdflib_graph.objects(
              None, rdflib.RDFS.range))
  
          for x in domains:
              if isBlankNode(x):
                  aProp.domains += [RDF_Entity(x, None, self.namespaces, is_Bnode=True)]
              else:
                  aClass = self.get_class(uri=str(x))
                  if aClass:
                      aProp.domains += [aClass]
                      aClass.domain_of += [aProp]
                  else:
                      # edge case: it's not an OntoClass instance
                      aProp.domains += [OntoClass(x, None, self.namespaces, ext_model=True)]
  
          for x in ranges:
              if isBlankNode(x):
                  aProp.domains += [RDF_Entity(x, None, self.namespaces, is_Bnode=True)]
              else:
                  aClass = self.get_class(uri=str(x))
                  if aClass:
                      aProp.ranges += [aClass]
                      aClass.range_of += [aProp]
                  else:
                      # eg a DataType property has xsd:STRING
                      # here we're storing an ontospy entities but not adding it to
                      # the main index
                      aProp.ranges += [OntoClass(x, None, self.namespaces, ext_model=True)]