Yes, but if the majority are interoperable, that raises the pressure on others to use the same event type for the same data type, unless they can prove that they have some novel use case that requires a different tactic. Which is possible.
Like, if Zapstore is using labels for ratings, I'll just use labels. I don't need to invent a new "rating kind", just to be a jerk about it. My incentive is to just go along, to retain interoperability and not preclude future use cases. That's part of the magic of Nostr.
It’s true that if everyone else is using some specific format or nip for ratings, then it’s in my interest as a dev to adopt the same system. This is how we avoid a Tower of Babel type situation.
But it will never boil all the way down to a single global format that we are all forced to use. There will always be multiple formats. If we know how to synthesize multiple formats from multiple data sources together to answer a single question, like what’s does my WoT put at the top of my rec list, that’s a good thing.
Problem: how does my WoT rank widgets from top to bottom?
Data source 1: vendor follows, mutes, zaps
Data source 2: 5 star ratings of the widget from store A
Data source 3: emoji reactions on adverts of that product on a nostr classified ads client
And I’m sure we can think of MANY more data sources than those 3.
Edit:
Data source 2: 5 star ratings of the widget from stores A, B, C, and D, plus 0-100 point ratings from store E written by some pain in the ass nonconformist weirdo dev who uses a different format for reasons you may or may not agree with or even understand
Answer: the grapevine method synthesizes all these data sources into a single score. If you want to buy a widget and your fav nostr store has listings of 1000 widgets from 1000 vendors, why not use ALL of the above data sources to rank those 1000 products from top to bottom?
That's a complicated set of math to do.
Yes but quite doable. Too much to do on the fly on the front end, but the heavy lifting can be done ahead of time on the back end.
I built a front end demo using only two data inputs (follows and mutes) which is how I realized it’s too much for the front end. @ManiMe streamlined the download process into a single click and you can try it out here:
http://grapevine.my
It will output the top 1000 recommended pubkeys minus the ones you already follow as a NIP-51 list which you can upload to a few clients (Coracle, Amethyst, nostrudel maybe?) and browse the feed when you get tired of you follows feed. Great way to discover new high quality follows.
@cloud fodder and @ManiMe and I are working on replicating the above but calculating scores on the back end using a relay that already has follows and mutes data, so no need to dump all of that onto the browser, much better UX.
So I did that and have no clue how to view that list on amethyst. Not your problem, just, trying to see the output.
Start out going to listr.lol and see if you have a list with “Grapevine” in the title
Yup. "Grapevine recommended"
Can any #Amethyst users help a beaver out? How to import a NIP-51 list and browse a feed and whatever else you can do with it?
#askNostr
Ah. I see. It's just a filter that you apply, basically. I can't see see the list itself, it is just applied as a filter. That's... Not exactly useful. I don't see anyone new on that feed at all.
No one new? It should omit the pubkeys you’re already following when it builds the list. Did it not do that?
Didn't seem to. Mostly just my own stuff comes up. 😅
Yup. It's literally a feed of me. Kinda weird, TBH
I see your list — yeah, didn’t populate it at all except for your pubkey. Check out my Grapevine list on listr to see what it is supposed to look like.
When you built the list were you signed in using an extension? Smartphone?
I can't figure out how to see lists via a different npub.
Yes. An extension (nos2x, IIRC) on an android phone with kiwibrowser.
We haven’t tested list generation on android — maybe that’s why?
On listr you can browse lists of other npubs. Search by username at the bar on the top. Or go to listr main page Activity Feed and right now I see one or two My Grapevine Recommended lists recently updated — the first two I click on seem to have worked (mostly) correctly (except only 878 items, should be 1000? 🤔)
I get an error 504 when I click on your grapevine list.
I dunno what else to try. 😅
I find listr useful to view the list itself. It’s easy to scroll down and check who you’re following and who you’re not.
At first we just exported the top 1000 and you’d get a mix of current follows and suggested follows, but then we figured we’d omit current follows so you’d get a fresh feed from high quality pubkeys.
Soon you’ll be able to generate multiple lists. With / without current follows; Grapevine page 1, page 2, etc
I still can't see the list on listr. It's just... A block?
Your “My Grapevine Reccomended Follows” list was published to Nostr from grapevine.my. You can confirm this using listr. I haven’t personally tested on android (yet) but I believe you can make custom feeds in Amethyst, using Nostr user lists?
Yes. I just was thinking that I could view the list itself, not the filtered results of the list. Not as useful.
Interesting.
If I could see the output. How do I see lists on amethyst?
#asknostr
nostr:nevent1qqs95jmlcjd4lhdq3qqa78g0wjwa4gkaehaf6zxaksux96rvwgflj7cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsyg89yuk7j99axqt4t3pehz8xjkdy8jwjveyrruync50fc7v6z6ss9upsgqqqqqqs34lypr
Yes it is complicated. But there are a “finite” set of these data types (Nostr event kinds that interact with other events in ways that may be interesting for WoT) to calculate.
There doesn’t need to be a standard of “which data types” should be used “in which manner” by clients. Some de facto standards may arise, while other algo inputs will only increase in complexity. Standards are not as important as adaptability.
For the foreseeable future, developers of WoT recommendation engines will have to keep their ears to the ground to adapt their algo inputs accordingly. But this complication does not need to be developed all at once or overnight.
Mind you, this is a new perspective for me. It’s much easier to just say “let’s make a standard”, to make development easier. But life IRL does not work this way. Life adapts. So we must learn to adapt as Nostr grows.
Today we do this. Tomorrow we do a bit more. Baby steps.