myfeeds.sgit.ai v0.1.8

myfeeds.sgit.ai / The argument

ai-generated, unreviewed what this means

The debug view

Why this article reached these audiences and not the others

One real article, put through the join and shown with its working out. This is the view that exists to be checked rather than read — the one you open when a feed shows you something and you want to know who decided that. Every line below is output from admin/tools/join.py, not a drawing of what the output would look like.

The article

2026-09-14 · pt-PT · pt.newsroom.sgit.ai

Dois nomes para os mesmos palcos

Two names for the same stages

Three pages of the same event site, frozen on the same day, name the event's stages two different ways. The agenda and the speakers page say Unicorn Stage, Impact Stage and Workshop Rooms. The sponsorship page says Main Stage, Startup Stage and Workshop Rooms. One of the three names matches; two do not. The article does not say which is right, because nothing in the frozen pages says.

3 claims confirmed, 0 disputed, 0 not found — re-checked against the frozen sources by the newsroom that published it.

Extraction status: Extracted by hand from the article and its afirmacoes.json, NOT by the pipeline. This is a worked example chosen because the article is real, verified, and carries its claims and frozen sources — so the join can be checked against something that exists. When the pipeline runs against the newsroom, this file is what stage 1 produces and this hand copy is deleted.

What stage 1 pulled out

The article as entities and edges. Every type here is defined in the article ontology, and an entity whose type is not defined stops the build — an unknown type can never match anything, so the article would look uninteresting rather than unreadable.

EntityTypeIs
articleArticleDois nomes para os mesmos palcos
event:startup-summit-lisbon-2026EventStartup Summit Lisbon 2026
discrepancy:stage-namesDiscrepancythe stage names disagree across three pages of one site
source:agendaSourcethe frozen agenda page (2026-09-14/agenda)
source:oradoresSourcethe frozen speakers page (2026-09-14/oradores)
source:patrocinadoresSourcethe frozen sponsorship page (2026-09-14/patrocinadores)
claim:a1Claimthe agenda names Unicorn Stage, Impact Stage and Workshop Rooms
claim:a2Claimthe speakers page names the same three
claim:a3Claimthe sponsorship page names Main Stage, Startup Stage and Workshop Rooms

And how they connect

FromVerbTo
articlestatesclaim:a1
articlestatesclaim:a2
articlestatesclaim:a3
claim:a1rests_onsource:agenda
claim:a2rests_onsource:oradores
claim:a3rests_onsource:patrocinadores
articlerevealsdiscrepancy:stage-names
discrepancy:stage-namesinvolvessource:agenda
discrepancy:stage-namesinvolvessource:patrocinadores

The six verdicts

One delivery per audience, whether or not the article reached it. A withheld delivery carries the same structure as a reached one, because explaining what was rejected is the half a reader actually doubts.

control · always

The faithful translation

The control audience. Every article reaches it and no selection runs — it is the baseline the other audiences' output is compared against.

reached rank 5

The founder

2 connection(s) from 1 concern(s).

exact · weight 3

The founder watches events worth attending; the article names Startup Summit Lisbon 2026, which is a Event.

And back: Startup Summit Lisbon 2026 satisfies events worth attending, which the founder watches.

consequence · weight 2 · proposed by the model

The founder watches events worth attending; the stage they were told to expect may not be the stage that exists, which matters to anyone printing a schedule, briefing a speaker or buying a sponsorship.

And back: This event's stage naming is unreliable, which the founder attending it needs to know.

Path: discrepancy:stage-names --involves--> source:agenda --describes--> event:startup-summit-lisbon-2026

Every concern tried

ConcernWantedHitsOutcome
Funding programmes and callsProgramme Instrumentthis article has no Programme or Instrument in it
Events worth attendingEvent1satisfied
Companies in the same sectorOrganisationthis article has no Organisation in it
Obligations that bind small companiesObligationthis article has no Obligation in it

withheld

The allocator

None of the concerns this audience watches were satisfied: this article has no Sector or Organisation in it; this article has no Instrument in it; this article has no Measure in it; this article has no Money in it.

Every concern tried

ConcernWantedHitsOutcome
Signals about a sectorSector Organisationthis article has no Sector or Organisation in it
Policy and regulatory directionInstrumentthis article has no Instrument in it
Counts of a population and how they moveMeasurethis article has no Measure in it
Money entering or leavingMoneythis article has no Money in it

reached rank 3

The executive

2 connection(s) from 2 concern(s).

exact · weight 3

The executive watches what a board will ask about; the article names the stage names disagree across three pages of one site, which is a Discrepancy.

And back: the stage names disagree across three pages of one site satisfies what a board will ask about, which the executive watches.

exact · weight 3

The executive watches anything that becomes a public question; the article names the stage names disagree across three pages of one site, which is a Discrepancy.

And back: the stage names disagree across three pages of one site satisfies anything that becomes a public question, which the executive watches.

Every concern tried

ConcernWantedHitsOutcome
Cost, revenue and exposure in moneyMoneythis article has no Money in it
What a board will ask aboutDiscrepancy Obligation1satisfied
Where we stand against named othersOrganisationthis article has no Organisation in it
Anything that becomes a public questionDiscrepancy1satisfied

withheld

The practitioner

None of the concerns this audience watches were satisfied: this article has no Technology in it; this article has no Weakness in it; this article has no Control in it; this concern only applies where the article is also about Technology or Weakness or Control, and this one is not.

Every concern tried

ConcernWantedHitsOutcome
Named technologies and versionsTechnologythis article has no Technology in it
Weaknesses and how they are reachedWeaknessthis article has no Weakness in it
Something to change on a systemControlthis article has no Control in it
Whether published information can be trustedDiscrepancythis concern only applies where the article is also about Technology or Weakness or Control, and this one is not

reached rank 3

The risk owner

2 connection(s) from 2 concern(s).

exact · weight 3

The risk owner watches published information that disagrees with itself; the article names the stage names disagree across three pages of one site, which is a Discrepancy.

And back: the stage names disagree across three pages of one site satisfies published information that disagrees with itself, which the risk owner watches.

consequence · weight 2 · proposed by the model

The risk owner watches who is answerable; one organisation published two answers to the same question on its own site, which is a control failure regardless of which answer is right.

And back: This discrepancy makes the event organiser answerable, which the risk owner watches.

Path: discrepancy:stage-names --involves--> source:patrocinadores; source:patrocinadores is a page of the event organiser's own site

Every concern tried

ConcernWantedHitsOutcome
Something more likely or more expensiveWeaknessthis article has no Weakness in it
Duties, and who they bindObligation Instrumentthis article has no Obligation or Instrument in it
Who is answerableOrganisation Personthis article has no Organisation or Person in it
Published information that disagrees with itselfDiscrepancy1satisfied

What the first run found — about the ontology, not the article

The first time this formula ran, the answer was wrong, and it was wrong in a way that is worth showing rather than quietly fixing. Here is what it said and what it says now:

AudienceFirst runNow
The faithful translationreached · —reached · —
The founderreached · 3reached · 5
The allocatorwithheld · —withheld · —
The executivereached · 9reached · 3
The practitionerreached · 12withheld · —
The risk ownerreached · 6reached · 3

Three defects, all in the hand-maintained audience side rather than in the article:

The part worth keeping

A ranking model that put a stage-naming story at the top of a security practitioner's feed is not unusual. What is unusual is being able to see it, in one table, with the offending concern named — and to fix the concern rather than tune a weight until the symptom goes away. That is the entire argument of this site, happening on the first article it was pointed at.

The second thing the run showed is subtler. With exact matches only, four audiences tied at the same rank: the formula was auditable and useless. The discrimination comes back with the consequence matches — which are the ones a model proposes, because they need reading rather than lookup. Neither half works alone. A rules engine is checkable and blunt; a model is sharp and unaccountable; this is a model proposing inside a shape that records what it proposed.

The same thing, as data

Every verdict above is served at /data/joins/dois-nomes-para-os-mesmos-palcos.json, the audiences at /data/audiences.json and the grammar at /data/ontology.json. Run it yourself:

python3 admin/tools/join.py   admin/content/data/articles/dois-nomes-para-os-mesmos-palcos.json