From 4ae75015e13f1f22d8c010d7e2930688c47bd86b Mon Sep 17 00:00:00 2001 From: limina1 <131614677+limina1@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:14:11 -0500 Subject: [PATCH 1/5] Create 62.md --- 62.md | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 62.md diff --git a/62.md b/62.md new file mode 100644 index 000000000..30e61ca61 --- /dev/null +++ b/62.md @@ -0,0 +1,104 @@ +NIP-62 +====== + +Collections +---------- + +`draft` `optional` + +This NIP defines the minimum specification for collections - ordered, optionally-hierarchical assemblies of nostr events. Collections provide a standard way to organize and present related content, similar to how books organize chapters or journals organize articles. + +## Event Kinds + +This NIP defines two primary event kinds: + +- `30040`: Collection Index +- `30041`: Collection Section + +## kind 30040: Collection Index + +A collection index defines the structure and metadata of a collection. It serves as a table of contents that references the actual content sections. + +### Requirements + +- The `content` field MUST be empty +- MUST include a `title` tag containing the full title of the collection +- MUST be uniquely identifiable by the combination of: + - `d` tag + - `pubkey` + - `kind` (30040) +- MUST include `e` tags listing the events in desired display order + - Referenced events SHOULD be kind 30041 sections or nested kind 30040 indices + - Additional event kinds MAY be supported +- For derivative works: + - MUST include a `p` tag identifying the original author + - MUST include an `E` tag referencing the original event immediately after the `p` tag + +### Example Index + +```json +{ + "id": "", + "pubkey": "", + "created_at": 1725087283, + "kind": 30040, + "tags": [ + ["d", "aesop's-fables-by-aesop"], + ["title", "Aesop's Fables"], + ["author", "Aesop"], + ["i", "isbn:9780765382030"], + ["t", "fables", "classical", "literature"], + ["published_on", "2003-05-03"], + ["published_by", "public domain"], + ["image", "https://imageserver.com/piclink.jpg"], + ["summary", "Collection of selected fables from the ancient Greek philosopher, known as Aesop."], + ["e", "", "", ""], + ["e", "", "", ""], + ["p", ""], + ["E", "", "", ""] + ], + "sig": "" +} +``` + +## 30041: Collection Section + +Sections (also known as zettels, episodes, or chapters) contain the actual content that makes up a collection. + +### Requirements + +- MUST include a `d` tag +- MUST include a `title` tag describing the section (e.g., "Introduction", "Chapter 1", etc.) +- The `content` field: + - MUST contain text meant for display to the end user + - MAY contain AsciiDoc markup + - MAY contain wikilinks (denoted by double brackets) + +### Example Section + +```json +{ + "id": "", + "pubkey": "8ae74c618a4713f32129...", + "created_at": 1708083476, + "kind": 30041, + "tags": [ + ["title", "The Farmer and The Snake"], + ["d", "aesop's-fables-by-aesop-the-farmer-and-the-snake"], + ["wikilink", "fables", "ad9dad8c4006d781d94ae001884b6987caa2a6852f3f43a571ca6838d0ced3af", "wss://thecitadel.nostr1.com"] + ], + "content": "== The Farmer and The Snake\nA [[fable]], by Aesop.\nONE WINTER a Farmer found a Snake stiff and frozen with cold. He had compassion on it, and taking it up, placed it in his bosom. The Snake was quickly revived by the warmth, and resuming its natural instincts, bit its benefactor, inflicting on him a mortal wound. 'Oh,' cried the Farmer with his last breath, 'I am rightly served for pitying a scoundrel.'\nThe greatest kindness will not bind the ungrateful.", + "sig": "49cab8c75fb35cec71d07258..." +} +``` + +## Extensions + +Collections are flexible and can be extended for different types of content. Examples include: + +- Books +- Academic journals +- Course materials +- Documentation + +Additional tags relevant to the specific content type MAY be included in both index and section events. From 4c5b62febaf41e0baf06eab06f18ff7dff957a2b Mon Sep 17 00:00:00 2001 From: limina1 <131614677+limina1@users.noreply.github.com> Date: Fri, 22 Nov 2024 15:26:45 -0500 Subject: [PATCH 2/5] Update 62.md --- 62.md | 1 - 1 file changed, 1 deletion(-) diff --git a/62.md b/62.md index 30e61ca61..72f219a4a 100644 --- a/62.md +++ b/62.md @@ -26,7 +26,6 @@ A collection index defines the structure and metadata of a collection. It serves - MUST be uniquely identifiable by the combination of: - `d` tag - `pubkey` - - `kind` (30040) - MUST include `e` tags listing the events in desired display order - Referenced events SHOULD be kind 30041 sections or nested kind 30040 indices - Additional event kinds MAY be supported From 9662559ba8953636efe2e1431137e9c9204bf81d Mon Sep 17 00:00:00 2001 From: limina1 <131614677+limina1@users.noreply.github.com> Date: Fri, 22 Nov 2024 16:14:06 -0500 Subject: [PATCH 3/5] fix typos 62.md --- 62.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/62.md b/62.md index 72f219a4a..4e5c435bf 100644 --- a/62.md +++ b/62.md @@ -26,6 +26,7 @@ A collection index defines the structure and metadata of a collection. It serves - MUST be uniquely identifiable by the combination of: - `d` tag - `pubkey` + - `kind` - MUST include `e` tags listing the events in desired display order - Referenced events SHOULD be kind 30041 sections or nested kind 30040 indices - Additional event kinds MAY be supported @@ -84,7 +85,7 @@ Sections (also known as zettels, episodes, or chapters) contain the actual conte "tags": [ ["title", "The Farmer and The Snake"], ["d", "aesop's-fables-by-aesop-the-farmer-and-the-snake"], - ["wikilink", "fables", "ad9dad8c4006d781d94ae001884b6987caa2a6852f3f43a571ca6838d0ced3af", "wss://thecitadel.nostr1.com"] + ["wikilink", "fable", "ad9dad8c4006d781d94ae001884b6987caa2a6852f3f43a571ca6838d0ced3af", "wss://thecitadel.nostr1.com"] ], "content": "== The Farmer and The Snake\nA [[fable]], by Aesop.\nONE WINTER a Farmer found a Snake stiff and frozen with cold. He had compassion on it, and taking it up, placed it in his bosom. The Snake was quickly revived by the warmth, and resuming its natural instincts, bit its benefactor, inflicting on him a mortal wound. 'Oh,' cried the Farmer with his last breath, 'I am rightly served for pitying a scoundrel.'\nThe greatest kindness will not bind the ungrateful.", "sig": "49cab8c75fb35cec71d07258..." From 855b39dbc8da4292cdf7530eaefeff538055fe8d Mon Sep 17 00:00:00 2001 From: limina1 <131614677+limina1@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:23:48 -0500 Subject: [PATCH 4/5] Change naming from collections to curated publications 62.md --- 62.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/62.md b/62.md index 4e5c435bf..bf5578f25 100644 --- a/62.md +++ b/62.md @@ -1,23 +1,23 @@ NIP-62 ====== -Collections +Curated Publication ---------- `draft` `optional` -This NIP defines the minimum specification for collections - ordered, optionally-hierarchical assemblies of nostr events. Collections provide a standard way to organize and present related content, similar to how books organize chapters or journals organize articles. +This NIP defines the minimum specification for curated publication - ordered, optionally-hierarchical assemblies of nostr events. Collections provide a standard way to organize and present related content, similar to how books organize chapters or journals organize articles. ## Event Kinds This NIP defines two primary event kinds: -- `30040`: Collection Index -- `30041`: Collection Section +- `30040`: Publication Index +- `30041`: Publication Content -## kind 30040: Collection Index +## kind 30040: Publication Index -A collection index defines the structure and metadata of a collection. It serves as a table of contents that references the actual content sections. +A publication index defines the structure and metadata of a collection. It serves as a table of contents that references the actual content sections. ### Requirements @@ -61,9 +61,9 @@ A collection index defines the structure and metadata of a collection. It serves } ``` -## 30041: Collection Section +## 30041: Publication Content -Sections (also known as zettels, episodes, or chapters) contain the actual content that makes up a collection. +Also known as sections, zettels, episodes, or chapters contain the actual content that makes up a collection. ### Requirements From 4c60810324c30e5960b821157a52ac1583f1163b Mon Sep 17 00:00:00 2001 From: limina1 <131614677+limina1@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:44:08 -0500 Subject: [PATCH 5/5] fix tag format 62.md --- 62.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/62.md b/62.md index bf5578f25..47a80d6a6 100644 --- a/62.md +++ b/62.md @@ -47,7 +47,9 @@ A publication index defines the structure and metadata of a collection. It serve ["title", "Aesop's Fables"], ["author", "Aesop"], ["i", "isbn:9780765382030"], - ["t", "fables", "classical", "literature"], + ["t", "fables"], + ["t", "classical"], + ["t", "literature"], ["published_on", "2003-05-03"], ["published_by", "public domain"], ["image", "https://imageserver.com/piclink.jpg"],