def descendants(network,root,include_self=False):
    """Returns a list of all descendant concepts form the given root."""
    def _descendants(network,root,concepts):
        concepts.append(root)
        for rel in network.relationships_from(root):
            _descendants(network,rel.target,concepts)

    concepts = []
    if include_self:
        concepts.append(root)
    for rel in network.relationships_from(root):
        _descendants(network,rel.target,concepts)
    return concepts