Skip to content

Commit 4541249

Browse files
authored
Merge branch 'main' into 309-task-enhance-best-practice-with-rule-for-how-to-write-a-good-description
2 parents 01dfcdc + a0752e5 commit 4541249

File tree

3 files changed

+30
-8
lines changed

3 files changed

+30
-8
lines changed

documentation/modules/ROOT/examples/aspect-sample.ttl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,15 @@
314314
samm:characteristic samm-c:Text .
315315
# end::see-oid-declaration[]
316316

317+
# tag::see-irdi-declaration[]
318+
:drillDiameter a samm:Property ;
319+
# Reference to IRDI 0173-1#02-AAC895#009
320+
samm:see <urn:irdi:0173-1#02-AAC895%23009> ;
321+
samm:characteristic :Diameter .
322+
# end::see-irdi-declaration[]
323+
324+
:Diameter a samm:Characteristic .
325+
317326
# tag::see-dontuse[]
318327
:organizationPerson a samm:Property ;
319328
samm:description "See ISO/IEC 11179-6:2015(E), section 3.35"@en ;

documentation/modules/ROOT/pages/modeling-guidelines.adoc

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ descriptions to it.
105105

106106
[source,turtle,subs="attributes+,+quotes"]
107107
----
108-
@prefix : urn:samm:{example-ns}.myapplication:1.0.0# .
108+
@prefix : <urn:samm:{example-ns}.myapplication:1.0.0#> .
109109
@prefix samm: <{samm}> .
110110
111111
# The colon denotes the namespace as defined in the first @prefix declaration above.
@@ -641,7 +641,7 @@ include::example$extending-entity-declaration-inheritance.ttl[tags=extending-ent
641641
----
642642

643643
[[declaring-abstract-entities]]
644-
==== Declaring Abstract Entities
644+
=== Declaring Abstract Entities
645645

646646
In contrast to Entities, Abstract Entities cannot directly be instantiated. A Characteristic class may have a type `samm:entity` or `samm:AbstractEntity`. But a Characteristic instance cannot have a type `samm:AbstractEntity`. If there is an instance created from a Characteristic that uses an Abstract Entity as its type, this Characteristic instance's dataType must be a sub-Entity of the Abstract Entity.
647647
The main use case for Abstract Entities is to share Properties across multiple Entities. This can be achieved through inheritance: Abstract Entities can extend other Entities and Abstract Entities and can themselves be extended in a manner not dissimilar to how abstract classes are used in many programming languages.
@@ -655,7 +655,7 @@ include::example$aspect-sample.ttl[tags=abstract-entity-declaration]
655655
----
656656

657657
[[abstract-entities-with-abstract-properties]]
658-
==== Abstract Entities with Abstract Properties
658+
=== Abstract Entities with Abstract Properties
659659

660660
When an Abstract Entity needs to be defined with a certain Property, but the modeler using the
661661
Abstract Entity (i.e., extending it) should be able to decide the Property's Characteristic, the
@@ -763,6 +763,19 @@ xref:samm-specification:appendix:bibliography.adoc#rfc3061[[rfc3061\]], so for e
763763
include::example$aspect-sample.ttl[tags=see-oid-declaration]
764764
----
765765

766+
Another example for a type of unique identifier that is not a URI is the International Registration
767+
Data Identifier
768+
(https://eclass.eu/support/technical-specification/structure-and-elements/irdi[IRDI]) as used for
769+
example by the https://eclass.eu/[ECLASS] classification system. Referencing IRDIs is also done
770+
using a synthetic URN structure by prefixing them with `urn:irdi:`. However, since a valid IRDI
771+
always contains two `\#` signs, this alone does not make it a valid URI, which is why the second sign
772+
needs to be URL-encoded (`#` replaced with `%23`):
773+
774+
[source,turtle,subs="attributes+"]
775+
----
776+
include::example$aspect-sample.ttl[tags=see-irdi-declaration]
777+
----
778+
766779
If an external element should be referenced that has no unique identifier, `samm:see` should not be
767780
used. In this case, refer to the external element in the current model element's `samm:description`,
768781
for example:
@@ -785,21 +798,19 @@ a detailed description, and an external reference to the value.
785798
include::example$aspect-sample.ttl[tags=value-declaration]
786799
----
787800

788-
Also, as an ExampleValue in Property:
801+
A value can also be used as `samm:exampleValue` for a Property, either by referencing the value or
802+
by declaration of an anonymous value:
789803

790-
- Additional Value:
791804
[source,turtle,subs="attributes+"]
792805
----
793806
include::example$aspect-sample.ttl[tags=value-in-example-value-additional]
794807
----
795808

796-
- Anonymous ExampleValue:
797809
[source,turtle,subs="attributes+"]
798810
----
799811
include::example$aspect-sample.ttl[tags=value-in-example-value-anonymous]
800812
----
801813

802-
803814
[[optional-properties]]
804815
=== Optional Properties
805816

documentation/modules/ROOT/pages/namespaces.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ xref:samm-specification:appendix:bibliography.adoc#sparql[[sparql\]]):
9191
* The prefix "samm-c" _must_ be used for the URN `{samm-c}`
9292
* The prefix "samm-e" _must_ be used for the URN `{samm-e}`
9393
* The prefix "unit" _must_ be used for the URN `{unit}`
94+
* The prefix "xsd" _must_ be used for the URL `http://www.w3.org/2001/XMLSchema#`
95+
* The prefix "rdfs" _must_ be used for the URL `http://www.w3.org/2000/01/rdf-schema#`
9496
* The empty prefix (":" in RDF/Turtle) _must_ be used for the URN prefix of the current model scope, i.e.
9597
everything up to and including the `#` of the model elements that are being defined
9698
* For other elements, use prefixes that _must not_ contain the string `samm`.
@@ -103,4 +105,4 @@ xref:samm-specification:appendix:bibliography.adoc#sparql[[sparql\]]):
103105
@prefix : <urn:samm:{example-ns}.myapplication:1.0.0#> .
104106
105107
include::example$prefixes-sample.ttl[tags=content]
106-
----
108+
----

0 commit comments

Comments
 (0)