Interests Lexicon (and graph)

Many different projects and people, including @flo-bit.dev, @tompscanlan.bsky.social & @gui.do to name only a few, are thinking about some way for people to state their interests.

This can be on the personal-profile level, but also in the context of a groups-profile, an event page, even a blog post.

GitHub supports ‘topics’ for repos only, but they actually end up working for profiles as well since profiles on GitHub are repos.

A v0.1 lexicon for ‘interests’ wouldn’t need to be much more than that.

At scale there’s also need for a support-system of sorts to deal with things like:

  • de-duplication (stack overflow did a good job of this with its tags)
  • context (the same word/interest can carry different meanings in different context)

Network of Shared Purpose

I’ve done many projects over the years, and for each and every one of them there’s always someone out there with the interest and capability to help me solve some problem, usually because they’ve already been solving that problem for their own project. But it’s unnecessarily difficult for us to find each other.

I think we can make it much simpler for people on the internet to go ‘I’m interested in working on x/y/z’ and be connected with other people who share that interest, especially among open source practitioners.

Imagine a simple directory & search based on people’s public profiles. In the context of my to-be-revived Fish Folk project for instance, I wanna know about people who are into ‘open source’, ‘gamedev’ and ‘rust’.

I’ve searched manually in this way on GitHub many times, and connected with dozens of collaborators that way.

I’ll for example see that someone already worked on a 2D pixel platformer game in Rust already, so I just get in touch and say

hey, seems like we might have a shared interest! Wanna talk?’.

There’s a rather incredible amount of people out there working on the same kind of stuff without ever getting in touch with the others. The Network of Shared Purpose is effectively a global jobs board, but for mutual collaborations rather than work-for-hire.

Prototyping

Here are some of my special interests:

  • Open source
  • Openness philosophy/praxis
  • dweb protocols
    • atproto
  • Cooperativism
    • steward-ownership
    • not-for-profit
    • post-growth entrepreneurship
  • Indie gamedev
    • Godot
  • Community development

I tend to get along well with anyone who have two or more of these interests in common with me.

Next up we just gotta build more glue layers so that anyone already on atproto can easily participate in this network for people of common interests, or as I like to call think of it, shared purpose.

I have an assortment of notes expanding g on this idea here, but for the purposes on a lexicon discussion it’s best to think primarily in terms of just the foundational ‘tag’ we wanna collectively support.

2 Likes

Haven’t planned interests yet, right now it’s focused on skills (id.sifa.profile.skill) with endorsements (signed attestations from other users). But interests feel like a logical next step and I’d love to see this happen.

There’s overlap, but they’re not the same. Skills = “I can do this”, Interest = “I care about this.” I suppose they’d both use the same dictionary. I think they should be separate records but maybe linkable somehow.

On deduplication… yeah. Stack Overflow’s tag synonym system works because there’s a central team curating it AND the topics are very programming/tech centered.

I think it makes sense to have a skill/interest system, but not sure if alignment in the dictionary makes sense. There will always be a community/tool that will need other/more specific words, which will make no sense to include in another community. No idea how to get that to work though… :sweat_smile:

Sifa.id already reuses community.lexicon.* for location and calendar data, so if interests end up there too I’d probably just use that directly instead of inventing a id.sifa.interest. :flexed_biceps:

1 Like

Also interested in this.

The Smoke Signal LFG feature uses some flat tags and the feedback has been good.

at://did:plc:cbkjy5n7bk3ax2wplmtjofq2/events.smokesignal.lfg/3mdtckku6hl2b

{
    "$type": "events.smokesignal.lfg",
    "tags": [
        "ATProtocol",
        "StayingWarm",
        "Donuts"
    ],
    ...
}

Would be very interested in both long-term / semi-permanent interests as well as time-scoped ones.

2 Likes

I like the Wikipedia approach with its tag(specifier) convention.

That way no term/tag can be captured by one particular meaning. Trying to solve for tag-squatting and duplications might be premature as far as a v1 goes though, I just wanted to acknowledge the inevitability.

1 Like