Data integrity rules: xcl-text-1

Summary

xcl-phrase-1

Certain constellations of data in system 2 must be valid with respect to corresponding constellations of data in system 1.

xcl-phrase-1

Certain constellations of data in system 2 must be valid with respect to corresponding constellations of data in system 1.

For all thing1 (a http://example.com/system2/A), thing2 (a http://example.com/system2/B), thing3 (a http://example.com/system2/C), var4, var5, var6, var7, var8, var9, var10, var11, var12, var13:
IF
And rel1(thing1, var4)
rel2(thing1, var5)
rel3(thing1, var12)
rel4(thing3, thing2)
rel5(thing2, thing1)
rel6(thing3, var6)
rel7(thing3, var7)
rel8(thing3, var13)
Not var13 = X
Not starts-with(var6, lit5)
Or var12 = 1
var12 = 2
rel9(thing3, var10)
rel10(thing3, var11)
IF
Not var10 = null
THEN numeric-greater-than(var11, 0)
rel11(thing3, var8)
Not
Exists thing14 (a http://example.com/system2/D) such that:
And rel12(thing14, thing3)
rel13(thing14, X)
Not
Exists thing15 (a http://example.com/system2/E) such that:
And rel14(thing15, var6)
rel15(thing15, var5)
rel16(thing15, X)
Exists thing16 (a http://example.com/system1/A), thing17 (a http://example.com/system1/B) such that:
And rel1(thing16, thing17)
rel2(thing17, var4)
Not
Exists thing18 (a http://example.com/system2/F), var19 such that:
And rel17(thing3, thing18)
rel18(thing18, var19)
Not var19 = null
THEN
Exists thing20 (a http://example.com/system1/A), thing21 (a http://example.com/system1/B), thing22 (a http://example.com/system1/B), var23, var24, var25 such that:
And rel2(thing21, var4)
rel3(thing21, true)
rel4(thing21, var23)
Not starts-with(var23, lit4)
Or rel2(thing22, var6)
Exists thing26 (a http://example.com/system1/C), thing27 (a http://example.com/system1/B) such that:
And rel2(thing27, var6)
Or
And rel5(thing26, thing27)
rel6(thing26, thing22)
And rel6(thing26, thing27)
rel5(thing26, thing22)
Exists thing28 (a http://example.com/system1/D), thing29 (a http://example.com/system1/B), thing30 (a http://example.com/system1/E) such that:
And rel7(thing30, thing21)
rel8(thing28, thing30)
rel2(thing29, var6)
Or
And rel9(thing30, thing22)
rel10(thing28, thing29)
And rel9(thing30, thing29)
rel10(thing28, thing22)
rel1(thing20, thing21)
rel11(thing20, thing22)
rel12(thing20, var5)
rel13(thing20, var7)
rel14(thing20, var24)
IF var9 = lit1
THEN var24 = lit1
rel15(thing22, lit2)
rel16(thing22, var25)
Not starts-with(var25, lit3)