Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TrustGraph integration #94

Open
mattyg opened this issue Mar 21, 2023 · 10 comments · May be fixed by #261
Open

TrustGraph integration #94

mattyg opened this issue Mar 21, 2023 · 10 comments · May be fixed by #261

Comments

@mattyg
Copy link
Collaborator

mattyg commented Mar 21, 2023

Originally by @mattyg , Collab edited by @harlantwood, @dauphin3, @jost-s --

@harlantwood & @dauphin3 are working on integrating TrustGraph 🎉 in #104

Collecting thoughts -- about the initial integration and beyond -- in one place.

Overview

Following

  • Instead of "following" an agent being a binary action (either followed or not followed), with trust graphs we can add granularity and context to a follow.
    • Each follow will include: a topic (the type of content that you trust them on) and a trust rating (decimal between between -1.0 and 1.0 of trustworthiness).
  • when to exclude mews -- UI should be very clear -- eg a slider like: [Hard Pass]---[Meh]---[Awesome] which mirrors the underlying scale: -1.0 to 0 to 1.0.

Feed

  • Split feed UI into 2 tabs -- Chronological (the current feed) and Recommended (TrustGraph powered feed)
  • in recommended tab -- needs to be weight and recency combined -- don't want to see very old highly weighted at top
    • could be a simple linear function - eg 2 week window - or window varying per user based on usage patterns
  • could have visual tag showing eg ( holochain, 98% ) next to mew to show why I'm seeing it -- ie the properties with which I tagged its author when I followed them
  • ideally if I've scrolled one tab and go to the other I don't see mews repeated
  • Variable depth of network
    • Display only agents within a trust graph depth of 5 of my trust network (for discovery)
    • Display only agents within a trust graph depth of 3, on the topic of "cooking" (for finding highly trusted chefs and recipes)
    • Display only agents with a trust graph depth > 5 and < 20 (for discovery of agents far outside my trust graph perspective)

Topics

  • since we need a concept of "topic" that we trust an agent about, we should incorporate that into the UX. Perhaps by tagging mews with a variety of topics, leaning on #hashtags as topics, or using machine learning to identify commonly used words & phrases
  • Display "word could" of topics on a user's profile page. Can we come up with a novel modern UX to bring back word clouds?

Implementation

  • In addition to our current "follows", we optionally add TrustAtoms which can be thought of as "nuanced follow information" -- eg ( "cuisine", 99% ).
  • On "unfollow", we will delete the relevant TrustAtoms (depends on Allow deleting TrustAtoms trustgraph/trustgraph-holochain#67)
  • In "Feed - Recommended tab"
    • We query all TrustAtoms created by the Agent
    • We filter for those TAs above a weight threshold (nominally >= 0)
    • We follow those links to get their targets (followed agents)
    • We fetch posts from those agents which mention the relevant hashtags (do we store links for hashtags in DHT currently?)
    • We order these posts according to some combination of: weight of tags and recency
  • Other ways we may want to retrieve TAs (TODO add UX use cases)
    • for all of: follow / following / my_followers / my_following zome calls
      • we could add a boolean include_trust_atoms argument
      • we could allow filtering by topic
@dauphin3
Copy link
Collaborator

doesn't it only go to 7 degrees of separation haha

love the idea of word clouds.. I think its good to create a matrix of tags for each "topic" instead of trying to find an umbrella term, so that topics dont converge on a single idea but allow for multiple meanings linked to components of concepts/categories

@harlantwood
Copy link
Collaborator

Thanks @mattyg for writing this up! Great summary.

@harlantwood
Copy link
Collaborator

harlantwood commented Mar 25, 2023

@mattyg FYI we're treating the “description” field as a bit of a wiki to ideate on the features and implementation details.

@harlantwood harlantwood changed the title Trust Graph integration TrustGraph integration Mar 25, 2023
@harlantwood
Copy link
Collaborator

@jost-s and I did a pass on design and implementation of relevant features -- notes integrated into Description field above.

FYI @mattyg @artbrock @bierlingm @dauphin3

@bierlingm
Copy link
Collaborator

I like it. Anything helpful we can contribute, or just an FYI?

@harlantwood
Copy link
Collaborator

I like it. Anything helpful we can contribute, or just an FYI?

Thanks for asking @bierlingm -- feedback and ideas or concerns welcome at this stage.

I also made a more tightly scoped description of the initial PR here: #104

@mattyg
Copy link
Collaborator Author

mattyg commented May 3, 2023

We decided to remove the native "follow" feature entirely and instead just use trust graph for follows.

  • If you're not following somebody, the UX in their Agent Profile Popup will be the same as before: just a single follow button.
  • If you are following them, the UX in their Agent Profile Popup will show the list of topics and trust weights (if specified).
  • By default, a "follow" creates a trustatom for the "catchall other" topic at 50% trust

@mattyg
Copy link
Collaborator Author

mattyg commented May 3, 2023

Some more thoughts from our meeting today about trust graph UX:

  • We shouldn't have to type in the tag we wish to follow someone on manually. Even with typeahead search this is an odd clunky interface.
  • Display a tag cloud of hashtags / cashtags used in agent's mews
  • User can adjust the trust weight slider for tags within the tag cloud UX

I definitely understand if this doesn't happen in the first pass of trustgraph integration, but if so let's make another ticket for it.

@mattyg
Copy link
Collaborator Author

mattyg commented May 17, 2023

Another idea from our meeting today:

  • ability to adjust your trust weight for an agent directly from a Mew they published -- perhaps in the agent profile popup

@mattyg
Copy link
Collaborator Author

mattyg commented Nov 1, 2023

Reflection from meeting today:

  • Trust weight should be very coarse -- i.e. "none" (0%), "partial" (50%), "full" (100%) -- making it too granular (i.e. 0-100% slider) feels unnatural for how we think

@mattyg mattyg linked a pull request Jan 15, 2024 that will close this issue
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

4 participants