Skip to content
Snippets Groups Projects
Commit daad13fc authored by Max-Ferdinand Zeterberg's avatar Max-Ferdinand Zeterberg
Browse files

Vereinheitlichung Prädikate

parent 4a594092
No related branches found
No related tags found
1 merge request!69Resolve "feat: allow embedded osxml description"
Pipeline #330275 passed
......@@ -284,14 +284,14 @@
</section>
<section data-dfn-for="Foo" class="informative">
<h2>Beispiel</h2>
<p>Ausgehend von folgendem RDFS-Datenmodell sollen Personen (ex:Person) beschrieben werden. Dabei sollen der Name (ex:hasName), das Geschlecht (ex:gender), die GND-ID (ex:gndID) und Freundschaftsbeziehungen zu anderen Personen beschrieben werden.</p>
<p>Ausgehend von folgendem RDFS-Datenmodell sollen Personen (ex:Person) beschrieben werden. Dabei sollen der Name (ex:name), das Geschlecht (ex:gender), die GND-ID (ex:gndID) und Freundschaftsbeziehungen zu anderen Personen beschrieben werden.</p>
<pre class="example-data nohighlight">
ex:Person a rdfs:Class ;
rdfs:label "Person" .
ex:hasName a rdf:Property ;
ex:name a rdf:Property ;
rdfs:domain ex:Person ;
rdfs:label "Has name" ;
rdfs:label "Name" ;
rdfs:range rdfs:Literal .
ex:gender a rdf:Property ;
......@@ -299,9 +299,9 @@
rdfs:label "Gender" ;
rdfs:range rdfs:Literal .
ex:hasFriend a rdf:Property ;
ex:friend a rdf:Property ;
rdfs:domain ex:Person ;
rdfs:label "Has friend" ;
rdfs:label "Friend" ;
rdfs:range ex:Person .
ex:gndID a rdf:Property ;
......@@ -320,9 +320,9 @@
rdfs:label "Person Shape" ;
sh:targetClass ex:Person ;
roger:formNode true ;
sh:property exshapes:hasNameShape ,
sh:property exshapes:nameShape ,
exshapes:genderShape ,
exshapes:hasFriendShape ,
exshapes:friendShape ,
exshapes:gndIDShape .
</pre>
<p>Ein Node Shape ist immer eine Instanz von <code>sh:NodeShape</code>. Mittels <code>rdfs:label</code> wird die Bezeichnung des Node Shapes angegeben (Achtung: Dies ist die Bezeichnung des Node Shapes, nicht des Formulars. Die Bezeichnung des Formulars wird aus dem Wert von <code>rdfs:label</code> der entsprechenden Klasse aus dem RDFS-Datenmodell generiert). <code>sh:targetClass</code> gibt an, auf welche Klasse im RDFS-Datenmodell dieses Node Shape angewendet werden soll. Dies bedeutet, dass alle Instanzen dieser Klasse auf Basis dieses Node Shapes validiert werden. Ob aus einem Node Shape ein eigenes Formular erzeugt werden soll, ergibt sich aus dem Property <code>roger:formNode</code> ("true" erzeugt ein eigenes Formular, "false" nicht). Das Property <code>sh:property</code> beschreibt, welche Formularfelder dieses Formular enthalten soll durch die Aufzählung der Property Shapes für diejenigen Kanten (Edges) des Graphen, die mit diesem Node verbunden sein können.</p>
......@@ -331,9 +331,9 @@
<h2>Erfassung des Namens</h2>
<p>Property Shapes dienen dazu, die Daten und die zugehörigen Formularfelder zu beschreiben. Shapes werden mittels <code>a sh:PropertyShape</code> als Property Shapes ausgewiesen.</p>
<pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:path ex:hasName ;
sh:path ex:name ;
sh:datatype xsd:string ;
dash:editor dash:TextFieldEditor ;
sh:name "Name" ;
......@@ -366,18 +366,18 @@
<section data-dfn-for="Foo" class="informative">
<h2>Erfassung einer Freundschaftsbeziehung</h2>
<pre class="example-shapes nohighlight">
exshapes:hasFriendShape
exshapes:friendShape
a sh:PropertyShape ;
sh:path ex:hasFriend ;
sh:path ex:friend ;
sh:name "Friend" ;
sh:class ex:Person ;
dash:editor dash:AutoCompleteEditor ;
<!-- roger:autoCompleteProperty ex:hasName ; -->
<!-- roger:autoCompleteProperty ex:name ; -->
sh:nodeKind sh:IRI ;
sh:description "Select another person as a friend" ;
sh:order "2"^^xsd:decimal .
</pre>
<p>Bei der Erfassung von Freundschaftsbeziehungen wird die Person, die gerade beschrieben wird, mit einer anderen Person verknüpft. Dass der Wert des Properties <code>ex:hasFriend</code> eine durch einen IRI repräsentierte Ressource sein muss (also kein Literal sein darf), wird durch den Wert <code>sh:IRI</code> des Properties <code>sh:nodeKind</code> beschrieben. Die Klasse, zu der diese Ressource gehören muss, wird dabei durch das Property <code>sh:class</code> beschrieben. Das Property <code>dash:editor</code> nimmt den Wert <code>dash:AutoCompleteEditor</code> an, um ein Eingabefeld zu erzeugen, dass die Auswahl einer klar umrissenen Menge an möglichen URIs (IRIs) durch die Vervollständigung der Nutzereingabe unterstützt. <!-- Die möglichen URIs werden via <code>sh:class</code> definiert. Eine Suchfunktion ermöglicht es, in den Knoten zu suchen, die der angegebenen Klasse entsprechen. Mit <code>roger:autoCompleteProperty</code> wird diese Suchfunktion konfiguriert und angegeben, in welchen Properties gesucht wird. --></p>
<p>Bei der Erfassung von Freundschaftsbeziehungen wird die Person, die gerade beschrieben wird, mit einer anderen Person verknüpft. Dass der Wert des Properties <code>ex:friend</code> eine durch einen IRI repräsentierte Ressource sein muss (also kein Literal sein darf), wird durch den Wert <code>sh:IRI</code> des Properties <code>sh:nodeKind</code> beschrieben. Die Klasse, zu der diese Ressource gehören muss, wird dabei durch das Property <code>sh:class</code> beschrieben. Das Property <code>dash:editor</code> nimmt den Wert <code>dash:AutoCompleteEditor</code> an, um ein Eingabefeld zu erzeugen, dass die Auswahl einer klar umrissenen Menge an möglichen URIs (IRIs) durch die Vervollständigung der Nutzereingabe unterstützt. <!-- Die möglichen URIs werden via <code>sh:class</code> definiert. Eine Suchfunktion ermöglicht es, in den Knoten zu suchen, die der angegebenen Klasse entsprechen. Mit <code>roger:autoCompleteProperty</code> wird diese Suchfunktion konfiguriert und angegeben, in welchen Properties gesucht wird. --></p>
<p>Das Formularfeld, das auf Basis dieses Property Shapes generiert wird, sieht so aus:</p>
<!-- Hier einen Screenshot einfügen -->
</section>
......@@ -419,9 +419,9 @@
rdfs:label "Person Shape" ;
sh:targetClass ex:Person ;
roger:formNode true ;
sh:property exshapes:hasNameShape ,
sh:property exshapes:nameShape ,
exshapes:genderShape ,
exshapes:hasFriendShape ,
exshapes:friendShape ,
exshapes:gndIDShape .
</pre>
<p>Ein Node Shape hat im Kontext von ROGER folgende verpflichtende Properties:</p>
......@@ -435,9 +435,9 @@
<h2>Property Shapes</h2>
<p>Property Shapes beschreiben die Formularfelder und die Daten, die dort eingegeben werden sollen.</p>
<pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:path ex:hasName ;
sh:path ex:name ;
sh:name "Name" ;
sh:order "0"^^xsd:decimal ;
...
......@@ -470,9 +470,9 @@
<p><a href="https://www.w3.org/TR/shacl/"><code>sh:path</code></a> gibt an, welches Property aus dem zugrunde liegenden RDFS-Datenmodell mit dem Property Shape beschrieben wird - also für welches Property das Formularfeld Daten erzeugt.</p>
<p>In ROGER ist <code>sh:path</code> ein verpflichtendes Property für Property Shapes.</p>
<p>Beispiel:<pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:path "ex:hasName" ;
sh:path "ex:name" ;
...
</pre></p>
</section>
......@@ -481,7 +481,7 @@
<p><a href="https://www.w3.org/TR/shacl/#MinCountConstraintComponent"><code>sh:minCount</code></a> gibt die Mindestanzahl der Werte an. Damit wird festgelegt, wie oft das entsprechende Formularfeld mindestens ausgefüllt werden muss. Durch die Angabe eines Wertes größer als 0 wird das entsprechende Formularfeld zu einem Pflichtfeld. Das wird in der Anwendung durch ein rotes Sternchen gekennzeichnet.</p>
<p>In ROGER ist <code>sh:minCount</code> ein optionales Property für Property Shapes.</p>
<p>Beispiel:<pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:minCount 1 ;
...
......@@ -492,7 +492,7 @@
<p><a href="https://www.w3.org/TR/shacl/#MaxCountConstraintComponen"><code>sh:maxCount</code></a> gibt die Höchstanzahl der Werte an. Damit wird festgelegt, wie oft das entsprechende Formularfeld höchstens ausgefüllt werden darf. Wird <code>sh:maxCount</code> angegeben muss sein Wert immer größer als 0 sein. Wenn <code>sh:maxCount</code> nicht angegeben wird, ist das entsprechende Formularfeld beliebig oft wiederholbar. Werden sowohl <code>sh:minCount</code> als auch <code>sh:maxCount</code> angegeben, muss der Wert von <code>sh:maxCount</code> größer oder gleich dem Wert von <code>sh:minCount</code> sein.</p>
<p>In ROGER ist <code>sh:maxCount</code> ein optionales Property für Property Shapes.</p>
<p>Beispiel:<pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:maxCount 1 ;
...
......@@ -531,7 +531,7 @@
<p>Achtung: Wenn <code>sh:datatype</code> verwendet wird, darf <a href="#nodekind"><code>sh:nodekind</code></a> nur den Wert <code>sh:Literal</code> haben. Die Spezifizierung mittels <code>sh:nodekind</code> ist in diesem Fall optional.</p>
<p>Wenn Werte vorgegeben werden, bspw. mittels <a href="#shaclein"><code>sh:in</code></a> müssen diese Werte dem angegeben Datentyp entsprechen.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:datatype xsd:string ;
...
......@@ -544,7 +544,7 @@
<p>Grundsätzlich sind alle Werte erlaubt, die in der SHACL-Spezifikation definiert sind. Jedoch sind die möglichen Werte je nach <a href="#editors">Eingabefeld</a> eingeschränkt. In den Erläuterungen zu den Eingabefeldern sind die erlaubten Werte aufgeführt.</p>
<p>Achtung: Wenn im Property Shape mit <a href="#datatype"><code>sh:datatype</code></a> ein Datentyp vorgegeben ist, muss <code>sh:nodekind</code> den Wert <code>sh:Literal</code> haben. In diesem Fall ist die Angabe von <code>sh:nodekind</code> optional.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasFriendShape
exshapes:friendShape
a sh:PropertyShape ;
sh:nodeKind sh:IRI ;
...</pre></p>
......@@ -554,7 +554,7 @@
<p><a href="https://www.w3.org/TR/shacl/#ClassConstraintComponent"><code>sh:class</code></a> gibt die Klasse (aus dem RDFS-Datenmodell) an, von der der Wert des Propertys eine Instanz sein muss.</p>
<p>In ROGER ist <code>sh:class</code> ein optionales Property für Property Shapes.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasFriendShape
exshapes:friendShape
a sh:PropertyShape ;
sh:class ex:Person ;
...
......@@ -565,7 +565,7 @@
<p><a href="https://www.w3.org/TR/shacl/#NodeConstraintComponent"><code>sh:node</code></a> beschreibt, welchem Node Shape der Wert des Properties entsprechen muss.</p>
<p>In ROGER ist <code>sh:node</code> ein optionales Property für Property Shapes.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasAddressShape
exshapes:addressShape
a sh:PropertyShape ;
sh:node exshapes:AddressShape ;
...</pre></p>
......@@ -646,7 +646,7 @@
</ul>
<p>Wenn <code>dash:TextFieldEditor</code> in Verbindung mit <a href="#defaultValue"><code>sh:defaultValue</code></a> verwendet wird, ist der dort angegebene Wert im Formularfeld voreingetragen, lässt sich aber verändern.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:datatype xsd:string ;
dash:editor dash:TextFieldEditor ;
......@@ -678,11 +678,11 @@
<p>Die Klasse, aus der die Instanzen stammen, mit denen verknüpft werden kann, ist in <a href="#class"><code>sh:class</code></a> angegeben.</p>
<p>Beispiel:
<pre class="example-shapes nohighlight">
exshapes:hasFriendShape
exshapes:friendShape
a sh:PropertyShape ;
sh:class ex:Person ;
dash:editor dash:AutoCompleteEditor ;
<!-- roger:autoCompleteProperty ex:hasName ; -->
<!-- roger:autoCompleteProperty ex:name ; -->
sh:nodeKind sh:IRI ;
...
</pre></p>
......@@ -804,9 +804,9 @@
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:PersonShape
a sh:NodeShape ;
sh:property exshapes:hasNameShape ,
sh:property exshapes:nameShape ,
exshapes:genderShape ,
exshapes:hasFriendShape ,
exshapes:friendShape ,
exshapes:gndIDShape ;
...
</pre></p>
......@@ -828,7 +828,7 @@
<p><a href="#node"><code>sh:node</code></a> verweist auf ein Node Shape, auf dessen Basis das Unterformular erzeugt wird.</p>
<p>In Verbindung mit <code>dash:DetailsEditor</code> muss <a href="#nodekind"><code>sh:nodekind</code></a> den Wert <code>sh:BlankNode</code> annehmen.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasAddressShape
exshapes:addressShape
a sh:PropertyShape ;
dash:editor dash:DetailsEditor ;
sh:node exshapes:AddressShape ;
......@@ -841,7 +841,7 @@
<p><a href="https://www.w3.org/TR/shacl/#name"><code>sh:description</code></a> erläutert das Formularfeld. Diese Erläuterung wird in einem Popover in der ROGER-Anwendung angezeigt.<!-- prüfen, ob das stimmt! --></p>
<p>In ROGER ist <code>sh:description</code> ein optionales Property für Property Shapes.</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:description "Enter the name" ;
...</pre></p>
......@@ -853,7 +853,7 @@
<p>In ROGER ist <code>sh:order</code> ein verpflichtendes Property für Property Shapes.</p>
<p>Typ: Decimal</p>
<p>Beispiel: <pre class="example-shapes nohighlight">
exshapes:hasNameShape
exshapes:nameShape
a sh:PropertyShape ;
sh:order "0"^^xsd:decimal ;
...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment