buttercat1791 on Nostr: Y'all I searched and the NIPs repo doesn't formally define the `d` tag anywhere. That ...
Y'all I searched and the NIPs repo doesn't formally define the `d` tag anywhere.
That means no one can tell us we can't extend it lol.
I was thinking we use positional values to extend the `d` tag array. Something like:
```json
"tags": [
["d", "war-and-peace", "leo-tolstoy", "penguin-classics-edition"]
]
```
The general format would be `["d", <title>, <author>, <edition>]` where edition is a human-readable edition name (as opposed to just a number).
The event _should_ still be addressable by `#d` and the title, just like other event kinds' d tags, but we can increase address specificity for the Nostr Knowledge Base use case. Then we can bake this specificity into wikilinks (see NIP-54 for an existing wikilinks specification). A document might contain `[[War and Peace. Leo Tolstoy. Penguin Classics Edition.]]` and we can specify that clients should split that at the periods and normalize it into a d tag array reference, so it becomes `["#d", "war-and-peace", "leo-tolstoy", "penguin-classics-edition"]`. The client can then use this tag array to search its relays, find the closest match, and display to the user a hyperlink to the referenced event.
Basically, we define a citation format for NKB events.
Since the event ID is derived from a serialization of the whole event, including tags, increasing identifier specificity will always generate a unique event ID.
We'll have to experiment with how relays index events by d tag, and how they respond to queries for such events. Maybe Stella's PHP utilities can help us with that. Worst case, relays only support searching by the first `d` tag value and return a bunch of matching results, and then we have Alexandria walk through the results and find matches by author and edition.
That means no one can tell us we can't extend it lol.
I was thinking we use positional values to extend the `d` tag array. Something like:
```json
"tags": [
["d", "war-and-peace", "leo-tolstoy", "penguin-classics-edition"]
]
```
The general format would be `["d", <title>, <author>, <edition>]` where edition is a human-readable edition name (as opposed to just a number).
The event _should_ still be addressable by `#d` and the title, just like other event kinds' d tags, but we can increase address specificity for the Nostr Knowledge Base use case. Then we can bake this specificity into wikilinks (see NIP-54 for an existing wikilinks specification). A document might contain `[[War and Peace. Leo Tolstoy. Penguin Classics Edition.]]` and we can specify that clients should split that at the periods and normalize it into a d tag array reference, so it becomes `["#d", "war-and-peace", "leo-tolstoy", "penguin-classics-edition"]`. The client can then use this tag array to search its relays, find the closest match, and display to the user a hyperlink to the referenced event.
Basically, we define a citation format for NKB events.
Since the event ID is derived from a serialization of the whole event, including tags, increasing identifier specificity will always generate a unique event ID.
We'll have to experiment with how relays index events by d tag, and how they respond to queries for such events. Maybe Stella's PHP utilities can help us with that. Worst case, relays only support searching by the first `d` tag value and return a bunch of matching results, and then we have Alexandria walk through the results and find matches by author and edition.