Deutsch Français English Italiano
GEOWebforum Header
www.sogi.ch www.swisstopo.ch www.sik-gis.ch www.kkgeo.ch Logos Founders
Anmeldestatus: nicht angemeldet


Diskussion «CONSTRAINT OF Definition - Neuerungen seit Compiler 4.5.9»
Artikel 1-7 von 7



Stefan Burckhardt
29. Mai 17 (13:20 Uhr)
Beitragsnummer: 3541
Mit Version 4.7.0 wurde das Problem behoben - danke @KOGIS.

Lukas Schildknecht
27. November 15 (20:45 Uhr)
Beitragsnummer: 3246
Der Compiler prüft also eine Regel, die im Referenzhandbuch gar nicht festgelegt ist? Das finde ich doch sehr fragwürdig und eigentilch nicht akzeptabel. Denn damit definiert der Compiler neue, undokumentierte, nicht diskutierte und nicht vernehmlasste Regeln.
Es wurde sehr viel Arbeit in die unten zitierten Datenmodelle gesteckt. Diese Arbeiten basieren auf einer offiziellen Schweizer Norm (dem Referenzhandbuch) und wurden u.a. auch durch die Mitarbeit eines Mitglieds des Interlis "Kernteams" unterstützt. Wenn sich nun die Interlis Werkzeuge unabhängig von der Norm selbstständig weiterentwickeln, macht die Nutzung von Interlis keinen Sinn mehr, da entwickelte Datenmodelle plötzlich, unvorhersehbar und unbeieinflussbar ungültig werden können.

Ich bitte deshalb die KOGIS, den Compiler ausschliesslich normkonform weiterzuentwickeln und die diskutierte Constraint Prüfung wieder zu entfernen.

PS: Wenn es gute Gründe gibt, zusätzliche Regeln zu prüfen, könnten diese ja als Warnung oder Information ausgegeben werden, ohne das Modell als ungültig zu taxieren.

Stefan Burckhardt
27. November 15 (17:29 Uhr)
Beitragsnummer: 3245
a) Der Constraint of Knoten in VSADSSMINI_2014_2_d.ili habe ich im Beispiel nur eingefügt um zu testen ob er dort geht mit dem neuen Checker. Der wäre nicht doppelt.
b) Wir haben den VSA GEP Checker [www.vsa.ch/fachbereiche-cc/siedlungsentwaesserung/wegleitung-gep-daten/gep-datachecker/] mit einer zweiten Modelldatei gebaut, wo wir je nach Checklevel verschiedene Check Constraints setzen und das Basismodell VSADSSMINI_2014_2_d.ili erweitern. Wenn das mit den CONSTRAINT OF nicht mehr geht, ist die ganze Arbeit im Eimer.
c) Wir verändern die Klasse Knoten ja nicht, sondern setzen je nach gewünschtem Checklevel verschiedene Attribute MANDATORY oder prüfen ob Daten gewissen fachlichen Kriterien entsprechen (Checklevel A, T oder Fachprüfung FP). Damit müssen wir nicht für jedes Checkbedürfnis das Basismodell abändern und so eine Modellversion X und Y und Z machen, sondern können das auslagern.
d) Es wäre sehr hilfreich, wenn der Compiler wie im INTERLIS Handbuch gezeigt und erlaubt auch über MODEL und TOPICS hinaus CONSTRAINTS erlaubt.

Stefan Keller
23. November 15 (10:36 Uhr)
Beitragsnummer: 3243
Danke Stefan H. und Claude E. für eure Antworten und Anmerkungen.
Ich möchte an dieser Stelle nur noch darauf hinweisen, dass es - zusätzlich zum GEOWebForum hier - auch möglich ist, auf der Mailingliste info@interlis.ch im kleinern Rahmen Modelle und Interlis-Syntax zu diskutieren.

Stefan Henrich
23. November 15 (10:14 Uhr)
Beitragsnummer: 3242
Abgesehen von der Anmerkung von Claude scheint mir, dass der CONSTRAINT doppelt erfasst ist: 1x im Topic VSADSSMINI_CHECK_A.Verbands_GEP und 1x im Topic VSATEST.VSADSSMini.

Die doppelte Definition von Konsistenzbedingungen macht auch im Modell VSA-KEK (2008) Probleme: Dort wird in einer Klasse das Attribut OBJ_ID als UNIQUE verlangt und dasselbe nochmals in der Subklasse. Damit kommt ein Checker nicht zurecht, obwohl es syntaktisch korrekt ist. Die UNIQUE-Bedingung sollte also nur 1x definiert sein (in der Superklasse).

Claude Eisenhut
23. November 15 (09:39 Uhr)
Beitragsnummer: 3241
CONSTRAINTS OF kann sich nicht auf eine Klasse in einem anderen TOPIC/MODEL beziehen (auch wenn das syntaktisch möglich wäre), weil sich damit die Definition der Klasse nachträglich ändern liesse.
Normalerweise sollten Constraints direkt bei der Klasse definiert werden. Das Konstrukt CONSTRAINTS OF wird nur dann benötigt, wenn der Beziehungszugang noch nicht bekannt ist (weil die ASSOCIATION erst nach der Klasse definiert werden kann).


Stefan Burckhardt
17. November 15 (19:29 Uhr)
Beitragsnummer: 3238
Seit der Compilerversion 4.5.9 wird neu - ili23: check that CONSTRAINTS OF references a viewable in the same scope geprüft.

Wie muss man dann einen CONSTRAINT formulieren, wenn die Klasse nicht im gleichen Scope ist? Der normale Aufruf CONSTRAINT OF Knoten = geht nicht mehr, CONSTRAINTS OF VSATEST.VSADSSMini.Knoten = aber auch nicht. Warum? Hat jemand einen Tipp? Dateien siehe unten.

-----------------

!! Constraints für Abwasserverband A
INTERLIS 2.3;

CONTRACTED MODEL VSADSSMINI_CHECK_A (de) AT "[www.vsa.ch/models"];
VERSION "17.11.2015" =
IMPORTS VSATEST;

TOPIC Verbands_GEP (ABSTRACT) EXTENDS VSATEST.VSADSSMini =

!! ClassRef = [ Model-Name '.' [ Topic-Name '.' ] ] Class-Name.
CONSTRAINTS OF VSATEST.VSADSSMini.Knoten =


!! Allgemeiner Constraint (gilt für PAA und SAA)
!!@ cid=A_ALL_6001_10; ccat=error; cprof=a; cmsg="MANDATORY FunktionHierarchisch"; cattr = "Metaattribute.Datenherr, Bezeichnung";
MANDATORY CONSTRAINT DEFINED (FunktionHierarchisch);


END; !! of Knoten


END Verbands_GEP; !! Ende des Topics / Fin du topic
END VSADSSMINI_CHECK_A. !! Ende des Modells / Fin du modèle

--------------------------

!! VSADSSMINI_2014_2_d.ili

INTERLIS 2.3;

MODEL VSATEST (de) AT "[www.vsa.ch/models"];
VERSION "17.11.2015" =

IMPORTS UNQUALIFIED INTERLIS; !! imports INTERLIS 2 Baseunits
IMPORTS Units;
!! IMPORTS Base;
!! IMPORTS SIA405_Base;

!! Geprueft mit Compiler Version 4.5.14
!! Sachbearbeiter: Stefan Burckhardt / VSA CC Siedlungsentwässerung

UNIT

TOPIC VSADSSMini =


DOMAIN

!! CLASS Knoten EXTENDS SIA405_Base.SIA405_BaseClass =
CLASS Knoten =
!! (Punktueller) Ort im Entwässerungsnetz mit baulicher und/oder hydraulischer Funktion
ATTRIBUTE
!! Baujahr: SIA405_Base.Jahr; !! Jahr der Inbetriebsetzung (Schlussabnahme). Falls unbekannt = 1800 setzen (tiefster Wert des Wertebereichs)
BaulicherZustand: ( !! Zustandsklassen 0 bis 4 gemäss VSA-Richtline "Erhaltung von Kanalisationen". Beschreibung des baulichen Zustands des Abwasserbauwerks. Nicht zu verwechseln mit den Sanierungsstufen, welche die Prioritäten der Massnahmen bezeichnen (Attribut Sanierungsbedarf).
unbekannt,
Z0, !! Nicht mehr funktionstüchtig: Das Abwasserbauwerk ist bereits oder demnächst nicht mehr durchgängig: Bauwerk eingestürzt, totale Verwurzelung oder andere Abflusshindernisse. Das Bauwerk verliert Wasser (Exfiltration / mögliche Grundwasserverschmutzung).
Z1, !! Starke Mängel: Bauliche Schäden, bei welchen die statische Sicherheit, Hydraulik oder Dichtheit nicht mehr gewährleistet ist: Brüche axial oder radial, (Rohr-)deformationen, visuell sichtbare Wassereintritte oder Wasseraustritte, Löcher in der Wand, stark vorstehende seitliche Anschlüsse, starke Verwurzelungen, Wand stark ausgewaschen. Ungeeignetes (Rohr-)material.
Z2, !! Mittlere Mängel: Bauliche Mängel, welche die Statik, Hydraulik oder Dichtheit beeinträchtigen: breite (Rohr-)fugen, nicht verputzte Einläufe, Risse, leichte Abflusshindernisse wie Verkalkungen, vorstehende seitliche Anschlüsse, leichte Wandbeschädigungen, einzelne Wurzeleinwüchse, (Rohr-)wand ausgewaschen usw.
Z3, !! Leichte Mängel: Bauliche Mängel oder Vorkommnisse, welche für die Dichtheit, Hydraulik oder Statik einen unbedeutenden Einfluss haben: breite (Rohr-)fugen, schlecht verputzte seitlichen Anschlüsse, leichte Deformation bei Bauwerken aus Kunststoff, leichte Auswaschungen etc.
Z4 !! Keine Mängel
);
Bemerkung: TEXT*80; !! Allgemeine Bemerkungen
Bezeichnung: MANDATORY TEXT*20;
FunktionHierarchisch: ( !! Abgeleitetes Attribut - Bildungsregel: Alle Knoten, die mit einer PAA-Leitung verbunden sind (Zufluss oder Abfluss) gehören zum PAA Netz. Das Attribut dient der einfachern fachlichen Prüfung, weil viel fachliche Regeln abhängig davon sind, ob es sekundäre oder primäre Abwasseranlagen sind.
PAA, !! Primäre Abwasseranlage
SAA !! Sekundärer Abwasseranlage
);
UNIQUE
Bezeichnung;
!! Bezeichnung, Metaattribute->Datenherr; !! Neben UNIQUE OBJ_ID zusätzlich auch Kombination Bezeichnung, Datenherr, damit mit VSA-DSS-Mini kompatibel (Wegleitung GEP-Daten 2013)
END Knoten;

CONSTRAINTS OF Knoten =


!! Allgemeiner Constraint (gilt für PAA und SAA)
!!@ cid=A_ALL_6001_10; ccat=error; cprof=a; cmsg="MANDATORY FunktionHierarchisch"; cattr = "Metaattribute.Datenherr, Bezeichnung";
MANDATORY CONSTRAINT DEFINED (FunktionHierarchisch);


END; !! of Knoten

!! CLASS Leitung EXTENDS SIA405_Base.SIA405_BaseClass =
CLASS Leitung =
!! Baulich und hydraulisch homogenes, offenes oder geschlossenes Gerinne zur Ableitung von Abwasser
ATTRIBUTE
!! Baujahr: SIA405_Base.Jahr; !! Jahr der Inbetriebsetzung (Schlussabnahme). Falls unbekannt = 1800 setzen (tiefster Wert des Wertebereichs)
BaulicherZustand: ( !! Zustandsklassen 0 bis 4 gemäss VSA-Richtline "Erhaltung von Kanalisationen". Beschreibung des baulichen Zustands des Abwasserbauwerks. Nicht zu verwechseln mit den Sanierungsstufen, welche die Prioritäten der Massnahmen bezeichnen (Attribut Sanierungsbedarf).
unbekannt,
Z0, !! Nicht mehr funktionstüchtig: Das Abwasserbauwerk ist bereits oder demnächst nicht mehr durchgängig: Bauwerk eingestürzt, totale Verwurzelung oder andere Abflusshindernisse. Das Bauwerk verliert Wasser (Exfiltration / mögliche Grundwasserverschmutzung).
Z1, !! Starke Mängel: Bauliche Schäden, bei welchen die statische Sicherheit, Hydraulik oder Dichtheit nicht mehr gewährleistet ist: Brüche axial oder radial, (Rohr-)deformationen, visuell sichtbare Wassereintritte oder Wasseraustritte, Löcher in der Wand, stark vorstehende seitliche Anschlüsse, starke Verwurzelungen, Wand stark ausgewaschen. Ungeeignetes (Rohr-)material.
Z2, !! Mittlere Mängel: Bauliche Mängel, welche die Statik, Hydraulik oder Dichtheit beeinträchtigen: breite (Rohr-)fugen, nicht verputzte Einläufe, Risse, leichte Abflusshindernisse wie Verkalkungen, vorstehende seitliche Anschlüsse, leichte Wandbeschädigungen, einzelne Wurzeleinwüchse, (Rohr-)wand ausgewaschen usw.
Z3, !! Leichte Mängel: Bauliche Mängel oder Vorkommnisse, welche für die Dichtheit, Hydraulik oder Statik einen unbedeutenden Einfluss haben: breite (Rohr-)fugen, schlecht verputzte seitlichen Anschlüsse, leichte Deformation bei Bauwerken aus Kunststoff, leichte Auswaschungen etc.
Z4 !! Keine Mängel
);
Bemerkung: TEXT*80; !! Allgemeine Bemerkungen
Bezeichnung: MANDATORY TEXT*20;
FunktionHierarchisch: ( !! Art des Kanals hinsichtlich Bedeutung im Entwässerungssystem
PAA (
andere, !! Andere primäre Abwasseranlagen
Gewaesser, !! Erfassung aus Kanalperspektive (z.B. weil hydraulische Berechnung notwendig)
Hauptsammelkanal, !! Übergeordneter Sammelkanal. Kann je nach Netzhierarchie vorgenommen werden.
Hauptsammelkanal_regional, !! Hauptsammelkanal mit regionaler Bedeutung zur Gliederung des Netzes bei Regionalem GEP, z.B. auf regionalem Übersichtsplan, da dies z.T. nicht über die Beziehung Eigentümer gelöst werden kann.
Liegenschaftsentwaesserung, !! Liegenschaftsentwässerung (hydraulisch relevant). Abgrenzung Liegenschaftsentwässerung von Gebäudeentwässerung gemäss Norm "Planung und Erstellung von Anlagen für die Liegenschaftsentwässerung (SN 592 000)"
Sammelkanal, !! Kanal, der das Abwasser aus Liegenschafts- und Strassenentwässerungen aufnimmt.
Sanierungsleitung, !! Entwässerungsleitung (hydraulisch relevant) zum abwassertechnischen Anschluss von abgelegenen Liegenschaften an die Kanalisation, bei deren Planung und Erstellung gewisse Vereinfachungen zulässig sind.
Strassenentwaesserung, !! Entwässerung von Strassen (hydraulisch relevant)
unbekannt
),
SAA (
andere, !! Andere sekundäre Abwasseranlage
Liegenschaftsentwaesserung, !! Liegenschaftsentwässerung (hydraulisch nicht relevant). Abgrenzung Liegenschaftsentwässerung von Gebäudeentwässerung gemäss Norm "Planung und Erstellung von Anlagen für die Liegenschaftsentwässerung (SN 592 000)"
Sanierungsleitung, !! Entwässerungsleitung (hydraulisch nicht relevant) zum abwassertechnischen Anschluss von abgelegenen Liegenschaften an die Kanalisation, bei deren Planung und Erstellung gewisse Vereinfachungen zulässig sind.
Strassenentwaesserung, !! Entwässerung von Strassen (hydraulisch nicht relevant)
unbekannt
)
);
UNIQUE
Bezeichnung;
!! Bezeichnung, Metaattribute->Datenherr; !! Neben UNIQUE OBJ_ID zusätzlich auch Kombination Bezeichnung, Datenherr, damit mit VSA-DSS-Mini kompatibel (Wegleitung GEP-Daten 2013)
END Leitung;

ASSOCIATION Leitung_Knoten_nachAssoc = !! Assoziation
Knoten_nachRef -- {0..1} Knoten; !! Rolle1 - Klasse1 / Rôle1 - Classe1
Leitung_Knoten_nachAssocRef -- {0..*} Leitung; !! Rolle2 - Klasse2 / Rôle2 - Classe2
END Leitung_Knoten_nachAssoc;

ASSOCIATION Leitung_Knoten_vonAssoc = !! Assoziation
Knoten_vonRef -- {0..1} Knoten; !! Rolle1 - Klasse1 / Rôle1 - Classe1
Leitung_Knoten_vonAssocRef -- {0..*} Leitung; !! Rolle2 - Klasse2 / Rôle2 - Classe2
END Leitung_Knoten_vonAssoc;

ASSOCIATION Leitung_Leitung_nachAssoc = !! Assoziation
Leitung_nachRef -- {0..1} Leitung; !! Rolle1 - Klasse1 / Rôle1 - Classe1
Leitung_Leitung_nachAssocRef -- {0..*} Leitung; !! Rolle2 - Klasse2 / Rôle2 - Classe2
END Leitung_Leitung_nachAssoc;

END VSADSSMini; !! Ende des Topics / Fin du topic
END VSATEST. !! Ende des Modells / Fin du modèle


Constraint Datei:


ili2c 4.5.9 (2015-03-13)
---------------------------
- re-added (lost) -oUML option
- gml: fixed EnumTreeValueType
- ili23: fixed detection of incomplete SURFACE/AREA definitions (missing OVERLAPS)
- ili23: check that CONSTRAINTS OF references a viewable in the same scope
- ili23: check for EXTERNAL because of reference attributes in nested structure attributes
- ili23: check for DEPENDS ON because of reference attributes in imported structures



  1