Felder zur Beschreibung einer Struktur
Eine Struktur beschreibt, wie ein Datenangebot aufgebaut ist: Welche Klassen (Tabellen/ Entitätstypen), Attribute (Felder/ Spalten) und Assoziationen (Beziehungen zwischen Klassen) enthält es? Auf I14Y werden Strukturen mit der Shapes Constraint Language (SHACL) definiert und als Turtle (TTL)-, RDF- oder JSON-LD-Datei hinterlegt.
Eine Einführung in das praktische Vorgehen findet sich unter Struktur beschreiben. Nachfolgend werden alle Felder für die drei Hauptobjekte – Klasse, Attribut und Assoziation – dokumentiert.
Klasse
Eine Klasse beschreibt eine Gruppe von Objekten, die ähnliche Merkmale haben – zum Beispiel Einträge desselben Typs.
| Feld | Beschreibung | URI | Wertebereich | Kardinalität | Anmerkung |
|---|---|---|---|---|---|
| Title | Lesbarer Name der Klasse, nützlich für Dokumentation und Benutzeroberflächen. | rdfs:label | rdfs:Literal | 0..n | erwünscht |
| Typ | Gibt den Typ des Objekts an. Klassen in SHACL sind vom Typ sh:NodeShape. | rdf:type | sh:NodeShape (IRI) | 1..n | sh:NodeShape ist obligatorisch; weitere Typen sind möglich |
| Hat Eigenschaften | Liste der PropertyShape-Instanzen, die Attribute dieser Klasse beschreiben. | sh:property | Liste von sh:PropertyShape (IRIs) | 0..n | erwünscht; erforderlich, wenn die Klasse Eigenschaften hat. |
| Beschreibung | Beschreibung der Klasse. | dcterms:description | rdfs:Literal | 0..n | erwünscht |
| Modifiziert | Datum der letzten Änderung der Klasse. | dcterms:modified | xsd:dateTime | 0..1 | erwünscht |
| Erstellt | Erstellungsdatum der Klasse. | dcterms:created | xsd:dateTime | 0..1 | erwünscht |
Attribut
Ein Attribut ist eine Eigenschaft oder ein Datenfeld, das einer Klasse zugeordnet ist (über sh:property).
| Feld | Beschreibung | URI | Wertebereich | Kardinalität | Anmerkung |
|---|---|---|---|---|---|
| Link zu den Daten | Legt fest, auf welche RDF-Daten die Einschränkung zutrifft. Dieses Attribut ist für eine gültige Struktur obligatorisch. Wenn die Daten nicht im RDF-Format vorliegen, Sie die Struktur jedoch in SHACL beschreiben möchten, können Sie einen Platzhalter-Link zur Ressource erstellen (z. B. mit einem Platzhalter-Präfix: http://example.com/). Dieser kann geändert werden, sobald die Daten im RDF-Format vorliegen. | sh:path | IRI | 1 | obligatorisch |
| Title | Ein lesbarer Name für das Attribut, nützlich für Dokumentation und Benutzeroberflächen. | sh:name | rdfs:Literal | 0..n | erwünscht |
| Typ | Der Typ des Objekts. Ein Attribut in SHACL kann explizit (mit einem Objekt, das über die URI vom Typ sh:PropertyShape gefunden werden kann) oder implizit (ohne Erstellung eines separaten Objekts, durch direkte Angabe der Einschränkungen innerhalb der sh:property im Klassenobjekt) definiert werden. Es wird empfohlen, aber nicht vorgeschrieben, eine Eigenschaftsform als SHACL-Instanz von sh:PropertyShape zu deklarieren. | rdf:type | sh:PropertyShape (IRI) | 1..n | obligatorisch (wird jedoch nicht verwendet, wenn das Attribut direkt in der Klasse über sh:property definiert ist) |
| Data Type | Gibt den Datentyp der Eigenschaft an (z. B. “xsd:string”, “xsd:dateTime” usw.). Diese Eigenschaft stellt sicher, dass die der Eigenschaft zugewiesenen Werte dem erwarteten Datentyp entsprechen. | sh:datatype | IRIs (xsd:integer, xsd:decimal, xsd:boolean, xsd:date, … Eine Liste der RDF-kompatiblen XSD-Typen finden Sie in der folgenden Dokumentation: RDF 1.1 Concepts and Abstract Syntax) | 0..1 | optional |
| Regex Pattern | In diesem Feld können Sie ein reguläres Ausdrücke definieren, die zum Abgleichen von Zeichenkombinationen in einer Zeichenfolge verwendet werden. Die Werte von sh:pattern sind gültige Musterargumente für die SPARQL-Funktion REGEX. | sh:pattern | rdfs:Literal (with datatype xsd:string) | 0..1 | optional |
| Minimale Anzahl | Kardinalitätsbeschränkung. Gibt die Mindestanzahl an, wie oft die Eigenschaft vorkommen darf. | sh:minCount | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Maximale Anzahl | Kardinalitätsbeschränkung. Gibt an, wie oft die Eigenschaft maximal vorkommen darf. | sh:maxCount | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Mindestlänge | Mindestlänge eines String-Wertes. | sh:minLength | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Maximale Länge | Maximale Länge eines String-Werts. | sh:maxLength | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Position | Gibt die relative Reihenfolge des Elements an. | sh:order | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Beschreibung | Eine Textbeschreibung, die weitere Details zur Eigenschaft liefert. | sh:description | rdfs\:Literal | 0..n | optional |
| Conforms To | Ein Standard, dem die Ressource entspricht. In diesem Feld können die mit diesem Attribut verbundenen I14Y-Konzepte verlinkt werden. | dcterms:confromsTo | dct:Standard | 0..1 | optional |
Assoziation
Eine Assoziation ist eine bestimmte Beziehung zwischen verschiedenen Entitäten oder Klassen (über sh:class).
| Feld | Beschreibung | URI | Wertebereich | Kardinalität | Anmerkung |
|---|---|---|---|---|---|
| Link zu den Daten | Legt fest, auf welche RDF-Daten die Einschränkung zutrifft. Dieses Attribut ist für eine gültige Struktur obligatorisch. Wenn die Daten nicht im RDF-Format vorliegen, Sie die Struktur jedoch in SHACL beschreiben möchten, können Sie einen Platzhalter-Link zur Ressource erstellen (z. B. mit einem Platzhalter-Präfix: http://example.com/), der geändert werden kann, sobald die Daten im RDF-Format vorliegen. | sh:path | IRI | 1 | obligatorisch |
| Title | Ein Name für die Attribut, den man lesen kann. Das ist wichtig, um die Klasse in der Dokumentation oder in Benutzeroberflächen zu erkennen. | sh:name | rdfs:Literal | 0..n | erwünscht |
| Typ | Der Typ des Objekts. Ein Attribut in SHACL kann explizit (mit einem Objekt, das über die URI vom Typ sh:PropertyShape gefunden werden kann) oder implizit (ohne Erstellung eines separaten Objekts, durch direkte Angabe der Einschränkungen innerhalb der sh:property im Klassenobjekt) definiert werden. Es wird empfohlen, aber nicht vorgeschrieben, eine Eigenschaftsform als SHACL-Instanz von sh:PropertyShapezu deklarieren. | rdf:type | sh:PropertyShape (IRI) | 0..n | optional (die implizite Syntax kann verwendet werden) |
| Assoziation zur Klasse | Dies ist die Eigenschaft, die eine Assoziation mit einer Klasse verknüpft (z. B. ist hasAddress mit der Klasse Address verknüpft). Sie können entweder sh:class oder sh:node verwenden. sh:class überprüft, ob ein Wert eine Instanz einer bestimmten RDF-Klasse ist, während sh:node überprüft, ob der Wert einer anderen Struktur (sh:NodeShape) entspricht. | sh:class/sh:node | IRIs | 0..1 | erwünscht |
| Minimale Anzahl | Kardinalitätsbeschränkung. Gibt die Mindestanzahl an, wie oft die Eigenschaft vorkommen darf. | sh:minCount | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Maximale Anzahl | Kardinalitätsbeschränkung. Gibt an, wie oft die Eigenschaft maximal vorkommen darf. | sh:maxCount | rdfs:Literal (typed as xsd:integer) | 0..1 | optional |
| Beschreibung | Eine Textbeschreibung, die weitere Details zur Eigenschaft liefert. | sh:description | rdfs:Literal | 0..n | optional |
| Conforms To | Ein Standard, dem die Ressource entspricht. In diesem Feld können die mit diesem Attribut verbundenen I14Y-Konzepte verlinkt werden. | dcterms:confromsTo | dct:Standard | 0..1 | optional |