From f92d9c8ba10d4fb6ad818e27b856c5617e74ac7c Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 13 Nov 2023 13:43:15 -0800 Subject: [PATCH 1/6] Add reviews NIP --- 85.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 85.md diff --git a/85.md b/85.md new file mode 100644 index 0000000000..802369cb64 --- /dev/null +++ b/85.md @@ -0,0 +1,50 @@ +NIP-85 +====== + +Reviews +------- + +`draft` `optional` `author:staab` + +Kind `1986` MAY be used to leave a review with optional ratings. + +The `content` field SHOULD include a human-readable review. + +The review event MUST include one or more `e`, `a`, `p`, `t`, or `r` tags indicating +the object of the review. This allows for reviews of events, people, topics, and relays +or external resources. As with NIP-01, a relay hint SHOULD be included when using `e` and +`p` tags. + +Tags MAY contain additional `rating` tags each of which should have a `value` between 0 and 1, +and an optional `mark` specifying an attribute of the thing being reviewed. + +Examples +-------- + +A relay review with rating metadata. + +```json +{ + "kind": 1986, + "content": "This relay is fast!", + "tags": [ + ["rating", "0.8"], + ["rating", "0.2", "smell"], + ["rating", "1", "service"], + ["r", ] + ], +} +``` + +A review of a podcast episode. + +```json +{ + "kind": 1986, + "content": "This was a great episode.", + "tags": [ + ["rating", "1"], + ["r", ] + ], +} +``` From 9553ef96e2d2ae8d02bfb34409b20753560e4361 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 13 Nov 2023 13:54:05 -0800 Subject: [PATCH 2/6] Add labels to 85 --- 85.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/85.md b/85.md index 802369cb64..70b42adb72 100644 --- a/85.md +++ b/85.md @@ -4,8 +4,6 @@ NIP-85 Reviews ------- -`draft` `optional` `author:staab` - Kind `1986` MAY be used to leave a review with optional ratings. The `content` field SHOULD include a human-readable review. @@ -18,6 +16,8 @@ or external resources. As with NIP-01, a relay hint SHOULD be included when usin Tags MAY contain additional `rating` tags each of which should have a `value` between 0 and 1, and an optional `mark` specifying an attribute of the thing being reviewed. +Tags MAY contain NIP 32 labels to help categorize what is being reviewed. + Examples -------- @@ -28,6 +28,8 @@ A relay review with rating metadata. "kind": 1986, "content": "This relay is fast!", "tags": [ + ["L", "review"], + ["l", "review/relay", "review"], ["rating", "0.8"], ["rating", "0.2", "smell"], ["rating", "1", "service"], From 8fee22404a2d2bc098947d98b7fffc7fd75657d2 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Wed, 25 Sep 2024 09:42:09 -0700 Subject: [PATCH 3/6] Revise NIP 85 reviews --- 85.md | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/85.md b/85.md index 70b42adb72..a3ef31bb0e 100644 --- a/85.md +++ b/85.md @@ -4,49 +4,30 @@ NIP-85 Reviews ------- -Kind `1986` MAY be used to leave a review with optional ratings. +This NIP describes several different types of `review` which follow a single set of conventions. -The `content` field SHOULD include a human-readable review. +In all cases, the `content` field SHOULD include a human-readable review. A single [NIP 73](./73.md) `i` tag indicates the object of the review. This allows for reviews of events, people, topics, relays, or external guids. -The review event MUST include one or more `e`, `a`, `p`, `t`, or `r` tags indicating -the object of the review. This allows for reviews of events, people, topics, and relays -or external resources. As with NIP-01, a relay hint SHOULD be included when using `e` and -`p` tags. +# Ratings Tags MAY contain additional `rating` tags each of which should have a `value` between 0 and 1, and an optional `mark` specifying an attribute of the thing being reviewed. -Tags MAY contain NIP 32 labels to help categorize what is being reviewed. +# Review Kinds -Examples --------- +## Relays -A relay review with rating metadata. +Kind `1987` indicates a review of a relay: ```json { - "kind": 1986, + "kind": 1987, "content": "This relay is fast!", "tags": [ - ["L", "review"], - ["l", "review/relay", "review"], ["rating", "0.8"], - ["rating", "0.2", "smell"], - ["rating", "1", "service"], - ["r", ] - ], -} -``` - -A review of a podcast episode. - -```json -{ - "kind": 1986, - "content": "This was a great episode.", - "tags": [ - ["rating", "1"], - ["r", ] + ["rating", "0.2", "content"], + ["rating", "1", "speed"], + ["i", "wss://relay.example.com/"] ], } ``` From 03e2b4a917225ec1d0fd75bf70cf94cccad0b107 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 26 Sep 2024 08:33:45 -0700 Subject: [PATCH 4/6] Make reviews replaceable events --- 85.md | 12 +++++++----- README.md | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/85.md b/85.md index a3ef31bb0e..f06e46687d 100644 --- a/85.md +++ b/85.md @@ -6,7 +6,9 @@ Reviews This NIP describes several different types of `review` which follow a single set of conventions. -In all cases, the `content` field SHOULD include a human-readable review. A single [NIP 73](./73.md) `i` tag indicates the object of the review. This allows for reviews of events, people, topics, relays, or external guids. +In all cases, the `content` field SHOULD include a human-readable review. + +Review events' `d` tag indicates the object of the review. This MUST take the form of a [NIP 73](./73.md) id. This allows for reviews of events, people, topics, relays, or external guids without ambiguity. # Ratings @@ -17,17 +19,17 @@ and an optional `mark` specifying an attribute of the thing being reviewed. ## Relays -Kind `1987` indicates a review of a relay: +Kind `31987` indicates a review of a relay. The `d` tag MUST be the url of the relay. ```json { - "kind": 1987, + "kind": 31987, "content": "This relay is fast!", "tags": [ + ["d", "wss://relay.example.com/"], ["rating", "0.8"], ["rating", "0.2", "content"], - ["rating", "1", "speed"], - ["i", "wss://relay.example.com/"] + ["rating", "1", "speed"] ], } ``` diff --git a/README.md b/README.md index 6f3ff02cc5..5e7561630d 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,6 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `1971` | Problem Tracker | [nostrocket][nostrocket] | | `1984` | Reporting | [56](56.md) | | `1985` | Label | [32](32.md) | -| `1986` | Relay reviews | | | `1987` | AI Embeddings / Vector lists | [NKBIP-02] | | `2003` | Torrent | [35](35.md) | | `2004` | Torrent Comment | [35](35.md) | @@ -239,6 +238,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `31923` | Time-Based Calendar Event | [52](52.md) | | `31924` | Calendar | [52](52.md) | | `31925` | Calendar Event RSVP | [52](52.md) | +| `31987` | Relay Review | [85](85.md) | | `31989` | Handler recommendation | [89](89.md) | | `31990` | Handler information | [89](89.md) | | | `32267` | Software Application | | | From c47d286a9cf4598ebafed62678c078d096df638b Mon Sep 17 00:00:00 2001 From: hodlbod Date: Mon, 24 Mar 2025 08:17:41 -0700 Subject: [PATCH 5/6] Update 85.md Co-authored-by: KoalaSat --- 85.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/85.md b/85.md index f06e46687d..2fa699cc9f 100644 --- a/85.md +++ b/85.md @@ -16,7 +16,24 @@ Tags MAY contain additional `rating` tags each of which should have a `value` be and an optional `mark` specifying an attribute of the thing being reviewed. # Review Kinds +## Event +Kind `31986` indicates a review of any event generated by a `pubkey`. +The `e` tag MUST be the `id` of the event. +The `p` tag MUST be the `pubkey` of the event. + +```json +{ + "kind": 31986, + "content": "Always publishing quality information about breaking news all over the world.", + ... + "tags": [ + ["d", `:`] + ["e", "dcd59..464a2"] + ["p", "968c5..ad7a4"], + ["rating", "0.8"] + ], +} ## Relays Kind `31987` indicates a review of a relay. The `d` tag MUST be the url of the relay. From 3f9568784ba0c0c06bb6f11ab09e1b57d71fcccf Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Tue, 25 Mar 2025 08:59:43 -0700 Subject: [PATCH 6/6] Add book reviews --- 85.md | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/85.md b/85.md index 2fa699cc9f..85c5f56f0d 100644 --- a/85.md +++ b/85.md @@ -6,9 +6,7 @@ Reviews This NIP describes several different types of `review` which follow a single set of conventions. -In all cases, the `content` field SHOULD include a human-readable review. - -Review events' `d` tag indicates the object of the review. This MUST take the form of a [NIP 73](./73.md) id. This allows for reviews of events, people, topics, relays, or external guids without ambiguity. +In all cases, the `content` field SHOULD include a human-readable review. A review event's `d` tag indicates the object of the review. # Ratings @@ -16,11 +14,13 @@ Tags MAY contain additional `rating` tags each of which should have a `value` be and an optional `mark` specifying an attribute of the thing being reviewed. # Review Kinds + ## Event -Kind `31986` indicates a review of any event generated by a `pubkey`. -The `e` tag MUST be the `id` of the event. -The `p` tag MUST be the `pubkey` of the event. +Kind `31986` indicates a review of any event generated by a `pubkey`. + +- The `d` tag MUST be the `id` of the event. +- The `p` tag MUST be the `pubkey` of the event. ```json { @@ -28,12 +28,14 @@ The `p` tag MUST be the `pubkey` of the event. "content": "Always publishing quality information about breaking news all over the world.", ... "tags": [ - ["d", `:`] - ["e", "dcd59..464a2"] - ["p", "968c5..ad7a4"], + ["d", ""] + ["p", ""], + ["k", "1"], ["rating", "0.8"] ], } +``` + ## Relays Kind `31987` indicates a review of a relay. The `d` tag MUST be the url of the relay. @@ -50,3 +52,19 @@ Kind `31987` indicates a review of a relay. The `d` tag MUST be the url of the r ], } ``` + + +## Books + +Kind `31985` indicates a review of a book. The `d` tag MUST be a [NIP 73](./73.md) ISBN content ID. + +```json +{ + "kind": 31985, + "tags": [ + ["d","isbn:9781529100624"], + ["rating", "0.8"] + ], + "content": "Good book", +} +```