Skip to content

Commit 6bed869

Browse files
committed
add general transitivity rule
1 parent 901346c commit 6bed869

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

src/pyirk/builtin_entities.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2531,6 +2531,8 @@ def set_multiple_statements(subjects: Union[list, tuple], predicate: Relation, o
25312531
R22__is_functional=True,
25322532
)
25332533

2534+
R17["is subproperty of"].set_relation(R60["is transitive"], True)
2535+
25342536
# R61["does not have property"] already defined above
25352537

25362538
R62 = create_builtin_relation(
@@ -3063,6 +3065,30 @@ def unpack_tuple_item(tuple_item):
30633065
R68__is_inverse_of=R85["is modeled by"]
30643066
)
30653067

3068+
I66 = create_builtin_item(
3069+
key_str="I66",
3070+
R1__has_label="propagation transitive relations",
3071+
R2__has_description=(
3072+
"create new relations resulting from transtitive relations"
3073+
),
3074+
R4__is_instance_of=I41["semantic rule"],
3075+
)
3076+
3077+
with I66.scope("setting") as cm:
3078+
cm.new_var(i1=instance_of(I1["general item"]))
3079+
cm.new_var(i2=instance_of(I1["general item"]))
3080+
cm.new_var(i3=instance_of(I1["general item"]))
3081+
cm.new_rel_var("r1")
3082+
3083+
with I66.scope("premise") as cm:
3084+
cm.new_rel(cm.r1, R60["is transitive"], True)
3085+
cm.new_rel(cm.i1, cm.r1, cm.i2)
3086+
cm.new_rel(cm.i2, cm.r1, cm.i3)
3087+
3088+
with I66.scope("assertion") as cm:
3089+
# the qualifier prevents the creation of duplicated
3090+
cm.new_rel(cm.i1, cm.r1, cm.i3, qualifiers=[qf_prevent_duplicate_stms])
3091+
30663092
# next keys: I66, R87
30673093

30683094

0 commit comments

Comments
 (0)