Klassenübergreifende CONSTRAINTS 2.4

Hallo zusammen

Wir arbeiten gerade an der Überarbeitung des momentan publizierten MGDM für die Einschränkungen der Drohnen in INTERLIS 2.4.

Bei der Definition von einem klassenübergreifenden CONSTRAINT sind wir leider hängen geblieben und kommen nicht mehr weiter. Es handelt sich um folgendes:

Das Attribut startDateTime in der Klasse TimePeriod muss, falls es vorhanden ist, älter sein als das Attribut validFrom in der Klasse DatasetMetadata.

Gibt es eine Möglichkeit diesen CONSTRAINT abzubilden, oder ist dies gar nicht möglich? Wir haben es mit einer VIEW und JOIN OF wie folgt probiert :

VIEW
JOIN OF TimePeriod, DatasetMetadata; =
ATTRIBUTE
ALL OF TimePeriod;
ALL OF DatasetMetadata;
MANDATORY CONSTRAINT (startDateTime > validFrom);
END ;

(In CONSTRAINT gehen wir momentan noch davon aus, dass startDateTime und validFrom bei allen Objekten vorhanden sind, das war einfach für uns zu modellieren)

Ehrlich gesagt, sind wir hier etwas überfragt, da wir nicht wissen ob der CONSTRAINT falsch formuliert ist oder diese Art von CONSTRAINT gar nicht möglich ist.
Zumindest wird in der neusten Version vom ilivalidator keiner unserer FAIL-Cases erkannt, bzw. wir wissen nicht ob der CONSTRAINT überhaupt erkannt wird. Der Compiler zeigt zudem keinen direkten Syntax-Fehler an, aber hier wissen wir auch nicht wie aussagekräftig dies ist.

Wir sind um jede Hilfe froh.

Beste Grüsse

Giacomo und Marc

Habt ihr sowas in der Art schon versucht (Navigation über die Rollen)?

CONSTRAINTS OF TimePeriod =
	MANDATORY CONSTRAINT
		isApplicable -> hasProperties -> hasFeatures -> metadata -> validFrom > startDateTime;
END;

(die Implikation muss noch zusätzlich eingebaut werden)

1 „Gefällt mir“

Achtung: JOIN in VIEWs werden von ilivalidator zurzeit noch nicht ausgewertet:

Anfang 2025 könnte dies aber unterstützt werden.
Der Ansatz von @SchiLu ist aber in diesem Fall aus meiner Sicht vielversprechender :+1:

Vielen Dank, das hat uns sehr weitergeholfen und wir konnten den CONSTRAINT inkl. Implikation formulieren und testen.

Lg

1 „Gefällt mir“