Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fehlende Kommentare zu MODEL-, TOPIC- und DOMAIN-Elementen #449

Open
edigonzales opened this issue Jan 10, 2022 · 6 comments
Open

Fehlende Kommentare zu MODEL-, TOPIC- und DOMAIN-Elementen #449

edigonzales opened this issue Jan 10, 2022 · 6 comments

Comments

@edigonzales
Copy link
Contributor

Kommentare zu diesen Elementen fehlen in Datenbank.

@edigonzales
Copy link
Contributor Author

Gegeben folgendes Modell (Auszug):

INTERLIS 2.3;

/** Ich bin ein Kommentar zum Modellelement
 */
MODEL SO_ALW_Fruchtfolgeflaechen_Publikation_20220110 (de)
AT "https://geo.so.ch/models/"
VERSION "2022-01-10"  =

  DOMAIN

     /** Ich bin eine Gebietsaufteilung 
     */
     Gebietseinteilung = AREA WITH (ARCS,STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2 WITHOUT OVERLAPS>0.05;

    /** Ich bin ein Kommentar zu einem Aufzähltyp
     */
    Codes (FINAL) = (
      geeignet,
      bedingt_geeignet
    );

  /** Ich bin ein Kommentar zu einem Topicelement
   */
  TOPIC Inventarflaechen =

Die Kommentare zum Modellelement, zur Gebietsaufteilung, zum Aufzähltyp und zum Topic werden nicht in die Datenbank importiert. Im Gegesatz zu Kommentaren zu Klassenelementen und Attributen.

Erwartung: Die Kommentare zu Model-, Topic- und Domainelementen sind in der Datenbank nach einem Schemaimport zu finden.

Im Gegensatz zu z.B. Attributen, die einem Attribut einer Tabelle entsprechen (können) und entsprechend mit "normaler" DB-Funktionalität kommentiert werden können, funktioniert das bei Modellen, Topics und Domains nicht resp. muss anders gelöst werden. Vor allem weil es keine Entsprechung für Topics und Modelle in der DB gibt. Idee: Es werden on-the-fly Metattribute erzeugte und diese in der t_ili2db_metaattr-Tabelle gespeichert.

@sjib
Copy link

sjib commented Jan 19, 2022

Es wäre schön, wenn auch diese Notation unterstützt wird für Kommentare

!!@ comment = "Form des Fliessquerschnittes mit Angabe der Dimension"

Ist es nun allgemeiner Standard, dass Kommentare immer vor dem Element sind?
Gibt es noch andere Notationen neben /** */ und !!@ comment = "xxx" ?

@edigonzales
Copy link
Contributor Author

Zeilenkommentar: !! Ich bin ein Zeilenkommentar

Blockkommentar:


/*
Ich bin ein Block-
kommentar.
*/

Metattribute: !!@ comment="Ich bin ein Metattribut und beziehe mich immer auf das unmittelbar nachfolgende Sprachkonstrukt."

Metaattribute sollten bereits heute in der Tabelle t_ili2db_meta_attrs stehen. Die Frage ist was macht das Schnittstellenwerkzeug zusätzlich mit Kommentaren und/oder Metaattributen? Die Blockkommentare (und Zeilenkommentare?) werden als Datebankkommentar zu den jeweilgen DB-Elementen hinzugefügt (COMMENT ON TABLE resp. COMMENT ON COLUMN. Der Wert des Metaattributes ili2db.dispName landet bei Aufzähltypen in der Spalte dispName von Aufzähltyp-Tabellen.

!!@ comment="xxx" verstehe ich momentan nicht ganz. Was will man damit erreichen? Es ist ein Metaattribut, das sagt, dass es ein Kommentar ist? Warum für normale Kommentare nicht bloss die vendor-neutralen, klar spezifizierten Zeilen- und Blockkommentare verwenden?

@claeis
Copy link
Owner

claeis commented Jan 19, 2022

Die Tools lesen Blockkommentare, die mit /** beginnen als Dokumentation. Die dürfen da stehen, wo auch Metaattribute (s. eCH-0117 Meta-Attribute für INTERLIS Modelle) stehen dürfen, und gelten (wie die Metaattribute) für das folgende Modellelement (s.a. claeis/ili2c#66)

@edigonzales
Copy link
Contributor Author

Ähnliches Problem bei EXTENDED-Klassen. Dort landet nur der Kommentar der Mutterklasse in der DB:

INTERLIS 2.3;

MODEL SO_ALW_Bienenstandorte_20210529 (de)
AT "https://alw.so.ch"
VERSION "2021-05-26"  =
  IMPORTS GeometryCHLV95_V1;

  TOPIC Bienenstandorte =
    OID AS INTERLIS.UUIDOID;

    /** Bienenstandort (public)
     */
    CLASS Bienenstandort =
      /** Nummer
       */
      Nummer : MANDATORY TEXT*16;
      /** Standort
       */
      Standort : MANDATORY GeometryCHLV95_V1.Coord2;
      /** Bemerkung
       */
      Bemerkung : TEXT*200;
    END Bienenstandort;

  END Bienenstandorte;

END SO_ALW_Bienenstandorte_20210529.

/** Bienenstandorte mit nicht-öffentlichen Informationen.
 */
MODEL SO_ALW_Bienenstandorte_protected_20210529 (de)
AT "mailto:stefan@localhost"
VERSION "2021-05-29"  =
  IMPORTS SO_ALW_Bienenstandorte_20210529;

  TOPIC Bienenstandorte
  EXTENDS SO_ALW_Bienenstandorte_20210529.Bienenstandorte =

    /** Bienenstandort mit allen (inkl. nicht-öffentlichen) Attributen.
     */
    CLASS Bienenstandort (EXTENDED) =
      /** Name des Imkers
       */
      Name : MANDATORY TEXT*255;
      /** Telefonnummer
       */
      Telefonnummer : TEXT*20;
    END Bienenstandort;

  END Bienenstandorte;

END SO_ALW_Bienenstandorte_protected_20210529.

@claeis
Copy link
Owner

claeis commented Jan 26, 2022

Ähnliches Problem bei EXTENDED-Klassen. Dort landet nur der Kommentar der Mutterklasse in der DB

Je nach gewählter Abbildungsstrategie...

Für die vollständige Doku müsste man somit die Doku zu den Klassen (und Attributen und Rollen) auch als on-the-fly Metattribute erzeugen und in der t_ili2db_metaattr-Tabelle speichern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants