How to Fix Spam, Bots, and AI Slop on the World Wide Web

The Semantic Social Graph Is the Real Algorithm
John Carvalho · CEO, Synonym · March 2026

Every major platform solves relevance the same way: from the center.

They collect signals, train models, rank content, and impose one feed logic over millions of people. The platform decides what is relevant. The platform decides what is spam. The platform decides who gets reach and who gets buried. Users can adjust some knobs (mute a word, unfollow an account) but the architecture is not negotiable. The platform owns visibility.

This model is not broken by accident. It is broken by design.

Centralized attention is the monetization surface. Every engagement metric, every ad placement, every algorithmic boost exists because one entity controls what you see. That is the product. Not the feed. The control over the feed.

When people ask for a better algorithm, they are asking the landlord to rearrange the furniture. The problem is not the algorithm. The problem is who owns it.


Spam Is Not Bad Content

Most anti-spam thinking starts from the wrong premise: that there exists some global category of "bad content" and the system's job is to detect and remove it.

That is too simple.

Spam is not bad content. Spam is unwanted reach.

A message from a stranger about Bitcoin protocol design might be valuable to one person and irrelevant noise to another. A meme account might be entertainment in one context and pollution in another. A political opinion might be insight to someone who shares the frame and propaganda to someone who does not.

The question is not "is this content good or bad?" The question is: has this content earned a credible path to this user in this context?

Those are completely different problems. The first requires a god-view classifier that imposes universal standards. The second requires a graph that lets each user define what counts.

Platforms chose the first because it keeps them in control. The second gives that control to users.

Two Architectures of Relevance
Central Algorithm
Semantic Social Graph
Left: All content funnels through one opaque chokepoint. The platform decides what you see.

Right: Content reaches you through trust paths you define. Spam has no path. Valuable strangers surface through trusted intermediaries.

What the Graph Actually Does

A social graph already exists on every platform. You follow people. People follow you. The platform tracks interactions. That graph exists, but it is hidden. It is the platform's input, not your tool.

A semantic social graph takes the graph away from the landlord and gives it back to the tenant.

Semantic Social Graph. A graph where the nodes are public keys (users), content (posts, files, links), and any digitally addressable target (URLs, resources). The edges are semantic tags: user-applied labels that attach meaning, judgment, or context to any node. A user can tag another user as relevant for "Bitcoin," tag a post as "useful," tag a link as "scam." These tags are the connective tissue. They carry structured meaning, not just the fact that a connection exists. Trust is contextual, graduated, and directional. Graph distance (how many hops of trust separate you from a node) determines reach. The graph is indexed, queryable, and user-shaped. This is the system we are building at Synonym through Pubky.

Semantic means the connections carry meaning, not just existence. You do not merely follow someone. You can signal that someone is relevant for a specific context: protocol design, music, local events, comedy, finance. Content carries meaning through tags. Trust is not binary. It is contextual, graduated, and directional.

That produces a graph where relevance is shaped by the user rather than imposed by the platform.

You define whose judgments matter, in which contexts, and how far those judgments propagate. Two hops? Three? Only direct? Only within a topic? The filtering logic belongs to you.

This is not a recommendation engine. It is a transfer of power. The platform's hidden model is replaced by a graph the user can see, shape, compose, and carry with them.

Same Graph, Different Contexts
▲ Try switching contexts to see the graph reshape
Full graph. All connections visible. A centralized feed would try to rank all of this for you from the outside.

The Four Options

Every information system faces the same tension between openness and noise. There are four possible responses.

Fully Open

Everyone sees everything. Drowns users in spam, scams, and noise. Unusable at scale.

Fully Closed

Only approved content reaches you. Kills discovery. Makes the approver a chokepoint.

Central Algorithm

The platform guesses what you want. An attempt to split the difference, but it concentrates power, creates arms races, and makes you dependent.

Contextual Trust

Discovery stays open, reach is filtered through trust paths. Bots collapse. Valuable strangers surface. You own the logic.

That fourth option is what the semantic social graph enables.

It resolves the false tradeoff. You do not have to choose between drowning in noise and being locked inside a walled garden. You can have open discovery with contextual filtering, because the graph itself does the work that platforms currently do with opaque centralized models.

Three predecessors, one synthesis. The Web of Trust (from PGP, 1991) proved that trust can propagate through a graph without a central authority: you vouch for someone, they vouch for someone else. But it was binary (trust a key or don't), had no context, and the UX was impenetrable. The Semantic Web (Tim Berners-Lee, early 2000s) proposed that connections should carry structured meaning, not just links. The vision was right but too complex, and nobody adopted it. The social graph (Facebook era) made relationships computational at scale, but platforms captured it immediately. Each piece existed. Nobody combined them with user sovereignty as the design constraint. The semantic social graph is that combination: trust propagation from the Web of Trust, structured meaning from the Semantic Web, and relational computation from social graphs, made portable and user-controlled.

How It Works in Practice

A user cares deeply about Bitcoin protocol work. She follows some developers directly, but more importantly, she has trust relationships and tag-based filters shaped around that topic. Certain people are strong signals for technical discussion. Certain semantic trails carry weight. Trust propagates a step or two through meaningful connections.

A random spammer replies to her post with a scam link and a fake compliment. Under a centralized model, the platform has to detect that as spam from above. Maybe it catches it, maybe it does not. Maybe the spammer adapts and gets through next time.

Under a semantic social graph, the reply simply has no path. No relevant tag history. No trust connection in the Bitcoin context. No bridge from anyone she relies on. It collapses without anyone having to make a ruling.

Now a stranger from another country replies with a highly technical and useful comment. She does not follow him. But several people she trusts in the relevant context have interacted with him, tagged him positively, surfaced related work. He has a credible path through the graph.

He appears.

The system is not blocking strangers. It is making strangers earn a path.

How Strangers Earn Reach
The scammer (bottom-left) has no trust path to you. Their reply collapses. The valuable stranger (top-left) has a credible path. Two trusted developers connect them to you through the Bitcoin context. They surface through earned trust, not platform approval.

Why Central Algorithms Cannot Fix This

A central feed has three permanent problems, and no amount of machine learning changes any of them.

First, it flattens context. It compresses countless human judgments into a small number of ranking functions. Even when it personalizes, the logic belongs to the platform.

Second, it creates an arms race. Once reach is centrally allocated, every spammer, propagandist, and engagement farmer is incentivized to reverse-engineer the system. The platform patches. The spammers adapt. The cycle never ends because the architecture guarantees it.

Third, it makes users dependent. Your feed quality, your spam protection, your discovery of new voices: all of it depends on a system you do not control, cannot inspect, and cannot take with you when you leave.

This is why platform moderation is an endless controversy. They are trying to solve a fundamentally local and contextual problem with a fundamentally central mechanism. The architecture is wrong. Better models do not fix wrong architecture.


Portable Filters, Credible Exit

Here is where this stops being just product design.

If your relevance logic lives inside a platform, you are captive to that platform. Your feed quality, your social graph, your discovery: all of it is hostage to the platform's continued good behavior. If they change the algorithm, degrade the product, censor your context, or sell to someone hostile, you lose everything that made the experience valuable.

A semantic social graph should be portable. Your trust relationships, your filters, your tag-based context: these can be composed, exported, subscribed to, modified, and carried beyond any single app or host.

That is credible exit. Not as a slogan, but as a capability. You can leave a hostile system without losing the graph that makes your experience work.

Credible exit. The ability to leave any platform, host, or service and take your identity, data, relationships, and relevance logic with you. If you cannot leave without losing everything that made the experience valuable, you are not a user. You are a captive.

A better algorithm inside a captive platform is still a captive platform. The semantic social graph makes the algorithm yours.


What It Takes

No centralized platform will fix this with their current architecture. The model is the problem.

But if you wanted to solve spam, bots, and AI slop for real, here is what it takes:

Anchor identity to keys, not accounts. Every user is a public key. Not an email, not a phone number, not a handle leased from a platform. A key you own, carry, and can verify anywhere. Fake accounts become structurally expensive because identity is no longer free to manufacture.

Make tags the edges of the graph. Let users attach meaning to people, content, and links. Not just "follow" or "like." Contextual labels: "useful for Bitcoin," "spam," "trusted on design," "scam." These tags are the raw material for filtering. They replace the central algorithm with distributed human judgment.

Filter by trust paths, not global models. Content reaches you because someone you trust, in a relevant context, is connected to it through the graph. Not because a platform model predicted you might engage with it. Spam collapses because it has no path. Valuable strangers surface because trusted intermediaries bridge them to you.

Make the graph portable. Your trust relationships, your filters, your tag context: these belong to you. You can export them, modify them, share them, and carry them to any compatible host. If a platform turns hostile, you leave. Your relevance logic comes with you.

Open the protocol. None of this works if one company owns the graph. The identity layer, the tagging system, the trust propagation, the data storage: all of it must be open, auditable, and forkable. No single point of capture.

This is not hypothetical. This is what we are building. The semantic social graph is live. The protocols are open. The infrastructure exists. What remains is adoption.

People are used to asking the platform what matters. The semantic social graph lets them ask their own graph: who matters here?

That is the real algorithm. Not a smarter master feed. Not a better classifier. A system where judgment returns to the edges, relevance belongs to users, and the filter is yours to shape, yours to carry, and yours to leave with.

Trust is unavoidable. The question is not whether to trust. The question is trust whom, with what, and in which context.

Every centralized feed asks for the same thing in the end: dependency.

That dependency is the thing we are trying to end.


Resources

Everything referenced here is open source and operational.