NIP-32
以下、日本語訳
---
ラベルとは、他のエンティティをラベル付けするための kind 1985
のイベントである。
分散モデレーション、コンテンツの推奨からレビューやレーティングまで、様々なユースケースに対応する。
ラベル付けの対象
ラベルイベントは、オブジェクトまたは複数のオブジェクトを表現する一つ以上のタグ(
e
や
p
、
a
、
r
、
t
)を含まなければならない(MUST)。これにより個別にイベント、人々、リレー、トピックをそれぞれラベル付けできる。
NIP-01と同様に、
e
タグと
p
タグを使う場合にはリレーヒントを含めるべきである(SHOULD)。
ラベルタグ
このNIPはラベルを意味する新しいタグ
l
、ラベル名前空間(ネームスペース, label namespace) を意味する
L
タグを導入する。ラベルは
L
タグに一致するマークを含まなければならない(MUST)。
L
タグはnostrのタグの種類か、正式にあるいは慣例によって定義された nostr外部の用語体系を照会する。名前空間はどのような文字列でも良いが、発信者はwell-definedな名前空間(ISO標準)または
逆ドメイン名記法を使うことで、それらが明確であることを保証すべきである(SHOULD)。
#
から始まる名前空間は、ラベル付けの対象をラベルの値に関連付ける必要あることを示す。これは、標準的なnostrのタグをイベントや公開鍵、リレー、URL等にアタッチする方法である。
いくつかの例を示す:
["l", "footstr", "#t"]
- 発信者は所与のエンティティに footstr
トピックを適用する必要があると考えている
["l", "<pubkey>", "#p"]
- 発信者は所与のエンティティが <pubkey>
に関連すると考えている
["l", "IT-MI", "ISO-3166-2"]
- ISO 3166-2を使用してイタリアのミラノを示す
["l", "VI-hum", "com.example.ontology"]
- ontology.example.com
で定義される人類に対する暴力
特定のタグでなく、名前空間による検索をサポートするためにラベル名前空間を含む L
タグを含めなければならない(MUST)。
ラベルコンテンツがエンドユーザによって提供される場合、特殊な ugc
(ユーザ生成コンテンツ, user generated content)名前空間を使ってもよい(MAY)。
自己申告をサポートするために l
および L
タグは他のkind(イベントの種類)に追加してもよい(MAY)。kindが 1985
以外のイベントでは、ラベルはそのイベント自身を対象とする。
ラベルアノテーション(ラベル注釈)
ラベルタグには、当該のラベルに関する追加のメタデータを詳述する4番目の位置要素を含めることができる (MAY)。この文字列はJSONエンコードされたオブジェクトであるべきである。どのようなキーを使ってもよい(MAY)が、次を利用することを推奨する:
quality
(品質)は、0〜1の値を持つ。5つ星やカラースケール等、どんな方法でも表現できる絶対的で細かな尺度を実現する。
confidence
(確信度)は、0〜1の値を持つ。著者が自身の評価にどれほどの確信度があるかを示す。
context
(文脈,コンテキスト)は、URL(NIP-21 URLも含む)の配列である。ラベルの解釈時に考慮すべき他のコンテキストを示す。
コンテンツ
ラベルは短く、意味のある文字列であるべきである。レビューやラベル付けされた理由のような長い議論は、イベントの content
フィールドに含めるべきである。
イベントの例
その他
このNIPを一度に多くの対象をラベル付けするために使うとき、イベントは削除され、代わりに新しいものが公開される可能性がある。標準的な d
タグに伴う複雑性のため、パラメータつき/上書きイベントを利用しないことにした。クエリ時の曖昧さを避けるため、発信者はイベントのラベル付けを単一の名前空間に制限すべきである(SHOULD)。
語彙を作成する前に、あなたのユースケースが既に設計されていないか、どのように設計されているかを調査し、可能な場合にはそのデザインを真似るべきである。逆ドメイン名記法は名前空間の衝突を避けるために推奨されるが、相互運用性を確保するために、すべての名前空間はプロプライエタリ(独自のもの)ではなく、一般利用のために公開されていると見なされるべきである。言い換えると、あなたのユースケースに適合する名前空間があるなら、他の誰かのドメイン名を指し示すとしてもそれを使うこと。
語彙は名前空間内のすべてのラベルを完全修飾してもよい(MAY) (例: ["l", "com.example.vocabulary:my-label"]
)。
L
タグを使わずにクエリするときに他の名前空間と混同すべきではない、より正式な語彙を定義する場合はこれが推奨される場合がある。 このような語彙では(修飾されたラベルと修飾されていないラベルを混在させるのではなく)すべてのラベルに名前空間を含める必要がある(SHOULD)。