# Klassenübergreifende CONSTRAINTS 2.4

**URL:** <https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338>\
**Category:** Sprache INTERLIS\
**Tags:** ili24\
**Created:** [18. November 2024 um 15:20 UTC](https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338 "2024-11-18T15:20:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![foca\_gis](https://avatars.discourse-cdn.com/v4/letter/f/51bf81/32.png) [@foca\_gis](https://interlis.discourse.group/u/foca_gis)\
**Post date:** [18. November 2024 um 15:20 UTC](https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338/1 "2024-11-18T15:20:06Z")

</div>

Hallo zusammen

Wir arbeiten gerade an der Überarbeitung des momentan publizierten [MGDM](https://models.geo.admin.ch/BAZL/UASGeographicalZone_V1.ili) 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.

 ![CONSTRAINT](https://global.discourse-cdn.com/free1/uploads/interlis/original/1X/d0864610acd9c5533f65bcf56e2b8eecc3c837ca.png)

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

---

<div class="post-metadata">

**Author:** ![SchiLu](https://avatars.discourse-cdn.com/v4/letter/s/35a633/32.png) [@SchiLu](https://interlis.discourse.group/u/SchiLu)\
**Post date:** [18. November 2024 um 15:56 UTC](https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338/2 "2024-11-18T15:56:03Z")

</div>

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

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

```

(die Implikation muss noch zusätzlich eingebaut werden)

---

<div class="post-metadata">

**Author:** ![beistehen](https://yyz2.discourse-cdn.com/free1/user_avatar/interlis.discourse.group/beistehen/32/7_2.png) [@beistehen](https://interlis.discourse.group/u/beistehen)\
**Post date:** [18. November 2024 um 16:28 UTC](https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338/3 "2024-11-18T16:28:50Z")

</div>

> [@foca\_gis](#):
>
> VIEW  
> JOIN OF TimePeriod, DatasetMetadata; =

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

> <https://github.com/claeis/ilivalidator/issues/128>

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

---

<div class="post-metadata">

**Author:** ![foca\_gis](https://avatars.discourse-cdn.com/v4/letter/f/51bf81/32.png) [@foca\_gis](https://interlis.discourse.group/u/foca_gis)\
**Post date:** [19. November 2024 um 08:41 UTC](https://interlis.discourse.group/t/klassenuebergreifende-constraints-2-4/338/4 "2024-11-19T08:41:44Z")

</div>

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

Lg
