Internes Datenmodell

Das interne INTERLIS-Datenmodell

Quelle: INTERLIS 2.3 Referenzhandbuch, Anhang A


INTERLIS 2.3;

CONTRACTED TYPE MODEL INTERLIS (en) AT "http://www.interlis.ch/"
  VERSION "2005-06-16" =

  LINE FORM
    STRAIGHTS;
    ARCS;

  UNIT
    ANYUNIT (ABSTRACT);
    DIMENSIONLESS (ABSTRACT);
    LENGTH (ABSTRACT);
    MASS (ABSTRACT);
    TIME (ABSTRACT);
    ELECTRIC_CURRENT (ABSTRACT);
    TEMPERATURE (ABSTRACT);
    AMOUNT_OF_MATTER (ABSTRACT);
    ANGLE (ABSTRACT);
    SOLID_ANGLE (ABSTRACT);
    LUMINOUS_INTENSITY (ABSTRACT);
    MONEY (ABSTRACT);

    METER [m] EXTENDS LENGTH;
    KILOGRAM [kg] EXTENDS MASS;
    SECOND [s] EXTENDS TIME;
    AMPERE [A] EXTENDS ELECTRIC_CURRENT;
    DEGREE_KELVIN [K] EXTENDS TEMPERATURE;
    MOLE [mol] EXTENDS AMOUNT_OF_MATTER;
    RADIAN [rad] EXTENDS ANGLE;
    STERADIAN [sr] EXTENDS SOLID_ANGLE;
    CANDELA [cd] EXTENDS LUMINOUS_INTENSITY;

  DOMAIN
    URI (FINAL) = TEXT*1023;
    NAME (FINAL) = TEXT*255;
    INTERLIS_1_DATE (FINAL) = TEXT*8;
    BOOLEAN (FINAL) = (
      false,
      true) ORDERED;
    HALIGNMENT (FINAL) = (
      Left,
      Center,
      Right) ORDERED;
    VALIGNMENT (FINAL) = (
      Top,
      Cap,
      Half,
      Base,
      Bottom) ORDERED;
    ANYOID = OID ANY;
    I32OID = OID 0 .. 2147483647;
    STANDARDOID = OID TEXT*16;
    UUIDOID = OID TEXT*36; 
    LineCoord (ABSTRACT) = COORD NUMERIC, NUMERIC;

  FUNCTION myClass (Object: ANYSTRUCTURE): STRUCTURE;
  FUNCTION isSubClass (potSubClass: STRUCTURE; potSuperClass: STRUCTURE):
    BOOLEAN;
  FUNCTION isOfClass (Object: ANYSTRUCTURE; Class: STRUCTURE): BOOLEAN;
  FUNCTION elementCount (bag: BAG OF ANYSTRUCTURE): NUMERIC;
  FUNCTION objectCount (Objects: OBJECTS OF ANYCLASS): NUMERIC;
  FUNCTION len (TextVal: TEXT): NUMERIC;
  FUNCTION lenM (TextVal: MTEXT): NUMERIC;
  FUNCTION trim (TextVal: TEXT): TEXT;
  FUNCTION trimM (TextVal: MTEXT): MTEXT;
  FUNCTION isEnumSubVal (SubVal: ENUMTREEVAL; NodeVal: ENUMTREEVAL): BOOLEAN;
  FUNCTION inEnumRange (Enum: ENUMVAL;
                        MinVal: ENUMTREEVAL;
                        MaxVal: ENUMTREEVAL): BOOLEAN;
  FUNCTION convertUnit (from: NUMERIC): NUMERIC;
  FUNCTION areAreas (Objects: OBJECTS OF ANYCLASS;
                     SurfaceBag: ATTRIBUTE OF @ Objects
                                           RESTRICTION (BAG OF ANYSTRUCTURE);
                     SurfaceAttr: ATTRIBUTE OF @ SurfaceBag
                                            RESTRICTION (SURFACE)): BOOLEAN;

  CLASS METAOBJECT (ABSTRACT) =
    Name: MANDATORY NAME;
  UNIQUE Name;
  END METAOBJECT;

  CLASS METAOBJECT_TRANSLATION =
    Name: MANDATORY NAME;
    NameInBaseLanguage: MANDATORY NAME;
  UNIQUE Name;
  UNIQUE NameInBaseLanguage;
  END METAOBJECT_TRANSLATION;

  STRUCTURE AXIS =
    PARAMETER
      Unit: NUMERIC [ANYUNIT];
  END AXIS;

  CLASS REFSYSTEM (ABSTRACT) EXTENDS METAOBJECT =
  END REFSYSTEM;

  CLASS COORDSYSTEM (ABSTRACT) EXTENDS REFSYSTEM =
    ATTRIBUTE
      Axis: LIST {1..3} OF AXIS;
  END COORDSYSTEM;

  CLASS SCALSYSTEM (ABSTRACT) EXTENDS REFSYSTEM =
    PARAMETER
      Unit: NUMERIC [ANYUNIT];
  END SCALSYSTEM;

  CLASS SIGN (ABSTRACT) EXTENDS METAOBJECT =
    PARAMETER
      Sign: METAOBJECT;
  END SIGN;


  TOPIC TIMESYSTEMS =

    CLASS CALENDAR EXTENDS INTERLIS.SCALSYSTEM =
      PARAMETER
        Unit(EXTENDED): NUMERIC [TIME];
    END CALENDAR;

    CLASS TIMEOFDAYSYS EXTENDS INTERLIS.SCALSYSTEM =
      PARAMETER
        Unit(EXTENDED): NUMERIC [TIME];
    END TIMEOFDAYSYS;

  END TIMESYSTEMS;

  UNIT
    Minute [min] = 60 [INTERLIS.s];
    Hour   [h]   = 60 [min];
    Day    [d]   = 24 [h];
    Month [M] EXTENDS INTERLIS.TIME;
    Year [Y] EXTENDS INTERLIS.TIME;

  REFSYSTEM BASKET BaseTimeSystems ~ TIMESYSTEMS
    OBJECTS OF CALENDAR: GregorianCalendar
    OBJECTS OF TIMEOFDAYSYS: UTC;

  STRUCTURE TimeOfDay (ABSTRACT) =
    Hours: 0 .. 23 CIRCULAR [h];
    CONTINUOUS SUBDIVISION Minutes: 0 .. 59 CIRCULAR [min];
    CONTINUOUS SUBDIVISION Seconds: 0.000 .. 59.999 CIRCULAR [INTERLIS.s];
  END TimeOfDay;

  STRUCTURE UTC EXTENDS TimeOfDay =
    Hours(EXTENDED): 0 .. 23 {UTC};
  END UTC;

  DOMAIN
    GregorianYear = 1582 .. 2999 [Y] {GregorianCalendar};

  STRUCTURE GregorianDate =
    Year: GregorianYear;
    SUBDIVISION Month: 1 .. 12 [M];
    SUBDIVISION Day: 1 .. 31 [d];
  END GregorianDate;

  STRUCTURE GregorianDateTime EXTENDS GregorianDate =
    SUBDIVISION Hours: 0 .. 23 CIRCULAR [h] {UTC};
    CONTINUOUS SUBDIVISION Minutes: 0 .. 59 CIRCULAR [min];
    CONTINUOUS SUBDIVISION Seconds: 0.000 .. 59.999 CIRCULAR [INTERLIS.s];
  END GregorianDateTime;

  DOMAIN XMLTime = FORMAT BASED ON UTC ( Hours/2 ":" Minutes ":" Seconds );
  DOMAIN XMLDate = FORMAT BASED ON GregorianDate ( Year "-" Month "-" Day );
  DOMAIN XMLDateTime EXTENDS XMLDate = FORMAT BASED ON GregorianDateTime
                                              ( INHERITANCE "T" Hours/2 ":" Minutes
                                                            ":" Seconds );

  STRUCTURE LineSegment (ABSTRACT) =
    SegmentEndPoint: MANDATORY LineCoord;
  END LineSegment;

  STRUCTURE StartSegment (FINAL) EXTENDS LineSegment =
  END StartSegment;

  STRUCTURE StraightSegment (FINAL) EXTENDS LineSegment =
  END StraightSegment;

  STRUCTURE ArcSegment (FINAL) EXTENDS LineSegment =
    ArcPoint: MANDATORY LineCoord;
    Radius: NUMERIC [LENGTH];
  END ArcSegment;

  STRUCTURE SurfaceEdge =
    Geometry: DIRECTED POLYLINE;
    LineAttrs: ANYSTRUCTURE;
  END SurfaceEdge;

  STRUCTURE SurfaceBoundary =
    Lines: LIST OF SurfaceEdge;
  END SurfaceBoundary;

  STRUCTURE LineGeometry =
    Segments: LIST OF LineSegment;
  MANDATORY CONSTRAINT isOfClass (Segments[FIRST],StartSegment);
  END LineGeometry;

END INTERLIS.

Kartenausschnitt

INTERLIS ist eine Beschreibungssprache, mit der die langfristige Kompatibilität unter verschiedlichen Systemen gewährleistet werden soll. INTERLIS ist software- und systemunabhängig. 

Die aktuell meist genutzte Version ist INTERLIS 2, Version 2.3.

INTERLIS – wer steckt dahinter?

KOGIS (Koordination, Geo-Information und Services) ist in Zusammenarbeit mit den eCH-Fachgruppen Hüterin der formalen Sprache INTERLIS und stellt die notwendigen Informationen und Dokumente zur Verfügung. Die Aktivitäten der Bundesverwaltung im Bereich Geoinformation (GI) und Geoinformationssysteme (GIS) werden ebenfalls von KOGIS koordiniert. Siehe swisstopo (KOGIS)

Unsere Kontaktangaben finden Sie hier.

Anmelden