@staticmethod
def check_sibling_property(base_index, siblings, _property, check_function):
    """ Return the forward siblings and return the first that fulfill
        the property.

        :param base_index: The index of the original sibling
        :param siblings: The ordered list of siblings
        :param _property: The name of the property to check
        :param check_function: The function used to check the property

        :return: the sibling that fulfill the property and its index.
        """
    constituent = None
    index = 0
    for index, sibling in enumerate(siblings[base_index:]):
        if _property in sibling and check_function(sibling[_property]):
            constituent = sibling
            break
    return constituent, index
