Chapter 5: Social Graph

"Hongik Ingan: Your friends are not scattered, they are unified."

5.1 The Scattered Friends Problem

Your Friend Kim Minsu
=====================

Platform A: @kim_minsu (500 followers)
Platform B: @minsukim (200 followers)
Platform C: @minsu_dance (1000 followers)
Platform D: @kimminsu92 (50 followers)

Same person.
Four different accounts.
You follow on some, not others.
No way to know they're the same person.


Your Social Network Today
=========================

Instagram: 500 friends
Twitter: 800 friends
TikTok: 200 friends
Bluesky: 150 friends

Total "friends": 1650
But actual unique people: Maybe 600?

Overlap unknown.
Connections fragmented.
Relationships incomplete.

5.2 Unified Social Graph

WIA-SOCIAL Unifies Your Network
===============================

Your Unified Network:
+------------------------------------------+
|                                          |
|   Unique Connections: 623                |
|                                          |
|   Multi-Platform Friends:                |
|     On 2+ platforms: 156                 |
|     On 3+ platforms: 42                  |
|     On all platforms: 8                  |
|                                          |
|   By Platform:                           |
|     Instagram: 500                       |
|     Twitter: 800                         |
|     TikTok: 200                          |
|     Bluesky: 150                         |
|                                          |
|   Mutual Follows: 287                    |
|                                          |
+------------------------------------------+


Friend Profile View
===================

Kim Minsu (WIA ID: wia:kim.minsu.1234)
+------------------------------------------+
|                                          |
|   [Photo] Kim Minsu                      |
|   "Digital creator"                      |
|                                          |
|   Your relationship: Mutual Friend       |
|                                          |
|   Connected on:                          |
|     [OK] Instagram: @kim_minsu           |
|     [OK] Twitter: @minsukim              |
|     [--] TikTok: @minsu_dance (not following) |
|     [OK] Bluesky: @minsu.bsky.social     |
|                                          |
+------------------------------------------+

5.3 Cross-Platform Friend Finder

Find Friends Across Platforms
=============================

// Search by name
const results = await social.findAcrossPlatforms('Kim Minsu');

Result:
{
  found: true,
  confidence: 0.95,  // How certain we are it's same person
  identity: {
    wia_id: 'wia:kim.minsu.1234',
    displayName: 'Kim Minsu'
  },
  platforms: [
    { platform: 'instagram', handle: '@kim_minsu', following: true },
    { platform: 'twitter', handle: '@minsukim', following: true },
    { platform: 'tiktok', handle: '@minsu_dance', following: false },
    { platform: 'bluesky', handle: '@minsu.bsky.social', following: true }
  ],
  mutualFriends: 15
}


How It Works
============

Matching methods:
  1. Same email linked to accounts
  2. Same phone number
  3. Explicit WIA-SOCIAL link
  4. Bio link analysis
  5. Profile photo matching
  6. Friend network overlap
  7. Username similarity

Privacy respected:
  - Only public information used
  - No unauthorized data access
  - User consent required for linking

5.4 Follow Everywhere

One Click, All Platforms
========================

// Follow on all available platforms
await social.followEverywhere(friendId);

Result:
{
  success: [
    { platform: 'instagram', status: 'following' },
    { platform: 'twitter', status: 'following' },
    { platform: 'bluesky', status: 'following' }
  ],
  skipped: [
    { platform: 'tiktok', reason: 'already_following' }
  ],
  failed: []
}


Selective Follow
================

// Choose specific platforms
await social.follow(friendId, {
  platforms: ['instagram', 'twitter']
});


Unfollow Everywhere
===================

await social.unfollowEverywhere(friendId);

5.5 Relationship Management

Get Relationship Status
=======================

const relationship = await social.getRelationship(friendId);

Result:
{
  type: 'mutual',  // 'following' | 'follower' | 'mutual' | 'none'

  byPlatform: {
    instagram: { following: true, follower: true },
    twitter: { following: true, follower: false },
    bluesky: { following: true, follower: true }
  },

  interactions: {
    lastInteraction: '2025-01-10',
    frequency: 'weekly',
    commonInterests: ['tech', 'photography']
  }
}


Close Friends
=============

// Mark as close friend
await social.setCloseFriend(friendId, true);

// Close friends get:
// - Priority in feed
// - Instant notifications
// - Access to private content


Block Everywhere
================

// Block on all platforms at once
await social.blockEverywhere(userId);

// Mute without blocking
await social.muteEverywhere(userId);

5.6 Network Analysis

Your Network Stats
==================

const stats = await social.getNetworkStats();

Result:
{
  totalConnections: 623,
  followers: {
    total: 847,
    byPlatform: {
      instagram: 450,
      twitter: 380,
      tiktok: 120,
      bluesky: 95
    }
  },
  following: {
    total: 520,
    byPlatform: { ... }
  },
  mutuals: 287,

  growth: {
    last30Days: +45,
    trend: 'growing'
  },

  engagement: {
    mostInteractive: ['wia:kim.minsu.1234', ...],
    topEngagers: ['wia:lee.jiyoung.5678', ...]
  }
}


Find Mutual Friends
===================

const mutuals = await social.getMutualFriends(friendId);

// Who you both follow
// Great for finding new connections

5.7 Friend Suggestions

Cross-Platform Suggestions
==========================

const suggestions = await social.getSuggestions();

Result:
[
  {
    identity: { displayName: 'Park Jihoon', ... },
    reason: 'Followed by 12 of your friends',
    platforms: ['twitter', 'bluesky'],
    confidence: 0.85
  },
  {
    identity: { displayName: 'Lee Soyoung', ... },
    reason: 'You follow on Instagram, also on Twitter',
    platforms: ['twitter'],
    confidence: 0.92
  },
  ...
]


"You Might Know" Analysis
=========================

Based on:
  - Mutual friends across platforms
  - Similar interests
  - Same communities/groups
  - Professional connections
  - Geographic proximity (if allowed)

5.8 Lists and Groups

Cross-Platform Lists
====================

// Create a list
await social.createList({
  name: 'Tech Friends',
  description: 'People I know from tech',
  members: [
    'wia:kim.minsu.1234',
    'wia:lee.jiyoung.5678',
    'wia:park.jihoon.9012'
  ],
  privacy: 'private'
});

// List works across all platforms
// See their content unified
const techFeed = await social.getFeed({ list: 'tech_friends' });


Groups
======

// Create cross-platform group for messaging
const group = await social.createGroup({
  name: 'Project Team',
  members: [member1, member2, member3],
  platforms: ['auto']  // Use best available
});

// Message entire group
await social.messageGroup(group.id, 'Meeting tomorrow at 3pm');

Chapter Summary