Esempio n. 1
0
def exhaustive_timeline(*events):
    """
    A timeline is linear, and allows only a single relationship between
    each pair of events; a<b, b<a, or a*b
    """
    return pairwise(lambda a, b: impl(a & b, onehot(simultaneous(a, b),
                                                    sequential(a, b),
                                                    sequential(b, a))), events)
Esempio n. 2
0
def timeline(relationships):
    """A timeline is linear, and allows only a single relationship
    between each pair of events; a<b, b<a, or a*b"""
    clauses = []
    for pair, rels in relationships.items():
        clauses.append(impl(var(pair[0]) & var(pair[1]),
                            onehot(*[relation[rel](*pair) for rel in rels])))
    return clauses