Expand a concept or collection to all it's narrower concepts.
            If the id passed belongs to a :class:`skosprovider.skos.Concept`,
            the id of the concept itself should be include in the return value.

        :param str id: A concept or collection id.
        :returns: A :class:`lst` of id's. Returns false if the input id does not exists

def expand(self, id):
        """ Expand a concept or collection to all it's narrower concepts.
            If the id passed belongs to a :class:`skosprovider.skos.Concept`,
            the id of the concept itself should be include in the return value.

        :param str id: A concept or collection id.
        :returns: A :class:`lst` of id's. Returns false if the input id does not exists
        """

        query = """SELECT DISTINCT ?Id{
                {
                ?Subject dc:identifier ?Id; skos:inScheme %s:; gvp:broaderExtended %s;.
                }
                UNION
                {
                VALUES ?Id {'%s'}
                ?Subject dc:identifier ?Id; skos:inScheme %s:; rdf:type skos:Concept.
                }
                }
                """ % (self.vocab_id, self.vocab_id + ":" + id, id, self.vocab_id)

        print (query)
        res = self.session.get(self.base_url + "sparql.json", params={"query": query})
        res.encoding = 'utf-8'
        r = res.json()

        result = [result['Id']['value'] for result in r['results']['bindings']]
        if len(result) == 0 and self.get_by_id(id) is False:
            return False
        return result