new chapter: „Names and identifiers“ v_0 tip
authorFrantišek Kučera <franta-hg@frantovo.cz>
Wed, 08 Jun 2022 22:38:41 +0200
branchv_0
changeset 74 ae9effae2857
parent 73 ee9683c59746
new chapter: „Names and identifiers“
text/ssm.en.xml
--- a/text/ssm.en.xml	Wed Jun 08 08:40:32 2022 +0200
+++ b/text/ssm.en.xml	Wed Jun 08 22:38:41 2022 +0200
@@ -227,6 +227,60 @@
 	</chapter>
 	
 	<chapter>
+		<name>Names and identifiers</name>
+		<id>a416d88d-6a8f-4219-85f4-367a89396da9</id>
+		<item>
+			<id>b231cf73-6509-45d4-96c4-79060bf4f7bd</id>
+			<type>recommendation</type>
+			<text>The name of the product and its significant parts should be reasonably unique, so it can be found using full-text search or other standard methods.</text>
+			<note>Significant part is e.g. a protocol, a file format or a CLI command.</note>
+			<note>Global uniqueness is not necessary – such name is not a unique identifier. Collisions cannot be completely avoided, but we should make reasonable efforts to prevent them.</note>
+			<item>
+				<id>ebb8c013-a309-486d-b17b-04a73dd57969</id>
+				<type>recommendation</type>
+				<text>Avoid generic words like common verbs, nouns or adjectives.</text>
+			</item>
+			<item>
+				<id>d923f626-5fd9-4e6d-8f16-af9711ac6e2e</id>
+				<type>recommendation</type>
+				<text>Avoid name collisions with well known and used software.</text>
+			</item>
+			<item>
+				<id>fc3fab39-dfaa-4b90-b51d-11e6b9bf3f2f</id>
+				<type>recommendation</type>
+				<text>Use company or organization name as part of the name if the name itself would be too generic (e.g. „Speed“ is wrong while „SaneCorp Speed“ is right).</text>
+			</item>
+		</item>
+		<item>
+			<id>d71ec208-7657-4914-a00e-d9008c8d7138</id>
+			<type>recommendation</type>
+			<text>For globally unique identifiers, the URI format is recommended.</text>
+			<item>
+				<id>a60448ba-451d-4176-a3ef-fa537698dbc2</id>
+				<type>information</type>
+				<text>Besides the uniqueness, the most important feature of it is immutability and stability.</text>
+			</item>
+			<item>
+				<id>fea4993c-7405-4755-b66a-68cd1f57637b</id>
+				<type>information</type>
+				<text>Identifiers can be derived from an internet domain, an OID or PEN number etc.</text>
+			</item>
+			<item>
+				<id>eb3bb5fa-a99e-4ffa-b27f-2f024e43f3eb</id>
+				<type>recommendation</type>
+				<text>When deriving from internet domains use the tag URI scheme to create timeless identifiers that are not affected by the changes in domain ownership.</text>
+			</item>
+			<item>
+				<id>aa0554cf-0cac-47c2-8075-54a84cb20e74</id>
+				<type>recommendation</type>
+				<text>Use randomly generated identifiers when full decentralization is desired. These identifiers might be just random (e.g. UUID version 4) or derived from a public key (e.g. an SSH key or a Tor address) or a hash of a (secret) data.</text>
+				<note>When public key or a hash of secret data is used, then ownership of the name or namespace can be reliably proved.</note>
+				<note>Random identifiers must be picked from a sufficiently large space where we can assume that collisions are effectively eliminated.</note>
+			</item>
+		</item>
+	</chapter>
+
+	<chapter>
 		<name>Interfaces, formats and protocols</name>
 		<id>d34ce339-197c-44ee-9e5c-6d7e212f8c10</id>
 		<item>