コード例 #1
0
def i_optional_att_group_cardinality(ss: Substrate, max_: unlimitedNat, qore: Quads_or_Error) -> Set(sctIdGroup):
    if quad_direction(qore) == source_direction:
        return Set(sctIdGroup)(minus([sctIdGroup(rel.s, quadGroup(rel)) for rel in ss.relationships],
                                     union([sctIdGroup(q.s, quadGroup(q)) for q in quads_for(qore).v],
                                           i_required_att_group_cardinality(N(0), max_, qore))))
    else:
        return Set(sctIdGroup)(
            minus([sctIdGroup(rel.t.t_sctid, quadGroup(rel)) for rel in ss.relationships if rel.t.inran('t_sctid')],
                  union([sctIdGroup(q.t.t_sctid, quadGroup(q)) for q in quads_for(qore).v],
                        i_required_att_group_cardinality(N(0), max_, qore))))
コード例 #2
0
def i_optional_group_cardinality(ss: Substrate, max_: unlimitedNat, groups: Set(sctId)) -> Set(sctId):
    return Set(sctId)(
        minus(ss.concepts, minus(Set(sctId)([s.first for s in groups]),
                                 i_required_group_cardinality(N(0), max_, groups))))