dennisgoedegebuure.com

Home · Entity Graph

The entity graph

What is an entity graph? Building mine in public, from photographs

Search engines organize the world as things, not pages

Ask a search engine a question about a person and it does not answer with a list of pages first. It answers with a person: a name, a job, a company, a place, a set of facts it is confident belong to one individual and not to someone else with a similar name. The same is true of an AI assistant. Before it can say anything sensible about you, it has to decide which Dennis you are.

That decision rests on entities. An entity is a distinct, named thing: a person, a company, a school, a stadium, an event, an award. Entities have stable identities. Pages about them change, move and disappear. The entity stays.

An entity graph is the map of those entities and the relationships between them. Companies keep enormous graphs of the whole world. This article is about a much smaller one: mine. It covers one person, the people he has met and worked with, the companies he has worked for, the places he has lived, the schools he went to, the events he was part of and the awards on his shelf. It is published on this site, in the open, so that people can explore it and machines can read it.

One hub, and everything connects to it

My graph has one center. Every other entity connects to it, and many connect to each other as well. The former prime minister connects to the organization he now leads. The hockey club connects to the town, the town to the school, the school to the boy who played there. Read together, those links are a biography in a form a computer can follow.

The entities on this site fall into nine groups:

One page cannot hold all of that as prose. A graph can. That is why the map on this site is interactive. You can zoom out and see the shape of a life, or zoom in on a single node and read what connects it to everything else.

Evidence first, and no claim stronger than its evidence

A graph built on photographs has an obvious temptation built into it. Stand next to enough well-known people, publish the pictures, and a careless reader might conclude that you are more connected, more endorsed and more important than you are. I do not want that graph. It would be false, and false graphs fall apart the first time anyone checks them.

So this site works from a ladder. Each rung is a stronger claim, and each rung needs stronger evidence than the one below it.

LevelWhat the page may sayEvidence required
1. Co-presentDennis with X at YOne original photograph, with the setting identified.
2. ConversationDennis spoke with X about ZA first-hand account of the conversation, written by Dennis.
3. CollaborationDennis worked with X on YThe work itself: a project, a talk, an article, a recording.
4. Ongoing tieDennis and X know each otherA relationship both sides would recognize, stated in plain words.
5. EndorsementX said this about DennisA direct, attributed statement with a source. Never inferred.

Most photographs on this site sit at level 1, and the page says so. A photograph of two people is honest evidence of one thing: they were in the same place, at the same moment, and both agreed to be in the picture. That is worth publishing. It is also all it is worth, and the caption, the story and the code underneath the page all stop there.

Where the evidence is stronger, the page says more. A panel I spoke on has a program. A project I worked on has an outcome. An award has a name engraved on it. Those edges carry real weight in the graph because someone else recorded them at the time, for their own reasons, long before this website existed.

The people in the photographs

Two encounters open the public graph. They were chosen because they test it in different directions: one in public life, one in sport and civil rights.

Dennis Goedegebuure with Mark Rutte
Dennis Goedegebuure with Mark Rutte. Date and venue are added to this caption when the encounter record is complete.
Dennis Goedegebuure with Colin Kaepernick
Dennis Goedegebuure with Colin Kaepernick. Date and venue are added to this caption when the encounter record is complete.

Mark Rutte

Mark Rutte was Prime Minister of the Netherlands and is now Secretary General of NATO. In the photograph he has a hand on my shoulder and we are both laughing. It is a warm picture, and it would be easy to let it imply a closeness it cannot prove. The page for this encounter therefore does a plain job. It names the man, shows the photograph, and carries my first-hand account of where we were and how the moment came about. Until that account is written and checked, the connection sits at level 1 of the ladder: co-present, photographed together, nothing more claimed.

Colin Kaepernick

Colin Kaepernick was quarterback of the San Francisco 49ers and became one of the most recognizable activists in sport for his protest against racial injustice. Our photograph was taken outdoors, both of us in suits. I lived in the Bay Area and worked in American sport during the years his story unfolded, which is the honest context for the picture. The encounter page follows the same rule as the Rutte page: the photograph, the setting as I remember and can document it, and no sentence that reaches past that.

Two more confirmed photographs wait in reserve. One is a selfie with Shaquille O'Neal, who towers over me in the frame. The other is with Carlos Sainz, the Formula 1 driver, in his Ferrari race suit in a Ferrari hospitality setting. Both men are identified with confidence. Both photographs stay off the public site for now, by choice. A graph you build in stages, releasing each part when its record is complete, is worth more than a wall of famous faces published in one go.

A further set of photographs is held back for now, from my years at Fanatics, where athletes passed through events constantly. Every identity in them has since been confirmed to the standard this site sets. They join the graph in stages, when each occasion is documented. Naming the wrong person on a public page is the fastest way to make every other name on the site worth less, so nothing goes up until the record behind it is complete.

Places and events are entities too

A life leaves place-shaped evidence as reliably as it leaves people. The photographs from my years in the United States and my life in the Netherlands give the graph a geography, and geography is hard to fake consistently across thirty photographs.

The Binnenhof in The Hague across the Hofvijver, with the Torentje
The Binnenhof in The Hague, across the Hofvijver, with the Torentje. The seat of Dutch government, and the world Mark Rutte worked in.
MetLife Stadium during the Copa América Centenario in 2016
MetLife Stadium during the Copa América Centenario in 2016, the Chile match on the big screen, Argentina fans in the rows in front.
Dennis Goedegebuure at Hoover Dam, pointing at the intake towers
Hoover Dam, pointing at the intake towers on the Lake Mead side.
Dennis Goedegebuure with his sons in front of El Capitan, Yosemite National Park
Yosemite National Park, with my sons in front of El Capitan.

The Binnenhof appears twice in my photographs, once across the Hofvijver toward the Torentje and once inside the Ridderzaal courtyard. It is a place entity with its own weight: parliaments sit there, and it connects the graph to Dutch public life without a single claim about me. Levi's Stadium connects in the other direction. I stood on that field in a Fanatics cap, in the home stadium of the 49ers, the team Colin Kaepernick played for. The stadium, the team, the employer and the quarterback form a small cluster of nodes that confirm each other.

Other places in the set do quieter work. Hoover Dam, the Grand Canyon, Yosemite and Las Vegas belong to family years in California. One World Trade Center, the New York Stock Exchange and the Brooklyn Bridge belong to New York trips. The Allianz Arena and an Oktoberfest tent belong to Munich. Marina Bay in Singapore, with the ArtScience Museum across the water, belongs to work travel. Muiderslot belongs to home. Each photograph is dated evidence of a person in a place, and places are the nodes search engines are most confident about, because the whole world agrees on where they are.

Dennis Goedegebuure at Marina Bay, Singapore, with the ArtScience Museum across the bay
Marina Bay, Singapore, with the ArtScience Museum across the bay.

Work and awards carry the strongest edges

If the photographs are the visible part of this graph, the work is the load-bearing part. My career runs through Bitdefender, where I was VP Marketing, and through PayPal, eBay, Airbnb and Fanatics. My work now runs through TNC Visibility, my consultancy, and through clients and ventures of my own: Fan Signal Desk, Jersey Grail, ShopTwits, Black Coffee, Tulip Magazine and Architectural Atlas, among others. Every one of those organizations has its own public record, kept by other people. Edges to them are strong because I did not write either end of the record.

Dennis Goedegebuure holding the US Search Awards 2018 trophy for Best In-House Team, Fanatics SEO team
The US Search Awards 2018 trophy: Best In-House Team, Fanatics, SEO team.

The clearest example sits on a shelf. In 2018 the Fanatics SEO team won Best In-House Team at the US Search Awards, and I have the trophy in my hands in the photograph above, with the award name, the year, the company and the team legible on it. That single object connects five entities at once: a person, a team, a company, an awards body and a year. No caption has to argue for any of it.

The professional network works the same way at a slower pace. My friends and peers in search, the people I have shared stages, panels, podcasts and projects with for years, are the part of this graph with the most level 3 evidence behind it: actual joint work. A conference program that lists two speakers is a published record. An interview that names its guest is a published record. Those pages live on other people's sites, which is exactly why they count.

Every relationship is stated twice

A person reads a page. A machine reads the page and the structured data underneath it. On this site both readings come from one record, so they cannot drift apart. The record holds the names, the photograph, its caption and alt text, the event details when they are verified, and the one sentence that states the relationship at the right level of the ladder. The visible page and the code are both generated from that record.

The code is JSON-LD, the format schema.org defines and search engines read. Three patterns do most of the work. First, I have one permanent Person identifier on this domain, and every page on the site refers to that same identifier instead of describing me from scratch. Second, each photograph is published as an ImageObject that names the people in it, so the image itself carries its context wherever it is found. Third, an event becomes a node only when its name, date and place are verified. If they are not verified, the node is left out and the page says only what is known.

In shortened form, an encounter page describes itself to a machine like this:

{
  "@type": "ImageObject",
  "caption": "Dennis Goedegebuure with Mark Rutte",
  "about": [
    { "@id": "https://dennisgoedegebuure.com/#dennis" },
    { "@type": "Person", "name": "Mark Rutte",
      "jobTitle": "Secretary General of NATO" }
  ]
}

Two details in that pattern matter more than the rest. The sameAs property points only at pages that identify the same person, never at a different person, so it can link my profiles together but can never weld me to Mark Rutte. And the knows property, which schema.org provides for people who genuinely know each other, stays unused on photograph pages. Co-presence is expressed through the photograph and the event, which is what the evidence shows.

Corroboration is what turns a claim into a record

Everything above is first-party. I wrote it, on my own site, about myself. Search engines and AI systems treat first-party claims the way a careful reader does: as a starting point, to be checked against what the rest of the web says.

That check is the outer layer of the graph, and it is built slowly. Conference sites that listed me as a speaker. Employer and client pages that named me. Interviews, podcast show notes and guest articles that used my full name and linked back here. Peers who cite a piece of work because it helped them. None of that can be declared into existence with markup. It accumulates when the work is real and the identity details are consistent everywhere: same full name, same short description, same canonical site. Consistency is unglamorous and it is most of the job.

There is a shortcut version of this layer and I am not using it. Sites can swap profile pages, manufacture reciprocal links and pad each other's graphs with friendly claims. Those patterns are easy to spot, they age badly, and they poison the one asset this whole project rests on, which is that everything on this site checks out.

What an entity graph cannot do

It is worth ending the technical part of this article with the limits, because the limits are the reason the rest is believable.

Building mine in public

This site is being rebuilt in the open, and the graph is part of that rebuild. It grows in a fixed order. The Rutte and Kaepernick encounters come first, as pilots, and their pages are finished only when the first-hand accounts, dates and photo rights are on record. The professional cluster follows, because its evidence is the strongest. The back-pocket photographs, Shaquille O'Neal and Carlos Sainz among them, join when I choose to release them and their records are complete. Family photographs stay in the graph as family nodes, including my dog in the snow, because a personal graph that only contains useful people would not be a graph of a person at all.

Dennis Goedegebuure with Auggie Moon, the family dog, in the snow
Dennis Goedegebuure with Auggie Moon, the family dog, in the snow. Auggie died in February 2025. He is a node in the graph.

If you work in search or build for the web, the method is the portable part. Pick one canonical identifier for yourself and use it everywhere. Publish your evidence with names, dates and captions a stranger can verify. Claim each relationship at the level its evidence supports, in words and in code that match. Then do work other people want to record, and let the outer layer of the graph grow at the speed of that work. The map on this site is what that looks like for one person, kept honestly, one verified node at a time.

Appendix: photo index and publication status

Every photograph in this article is listed below with the entity it documents and its status. Photographs described in the text but not reproduced here are listed as well.

PhotographEntityStatus
Dennis with Mark RutteMark Rutte (person)Shown. Public pilot. Date and venue pending.
Dennis with Colin KaepernickColin Kaepernick (person)Shown. Public pilot. Date and venue pending.
Binnenhof across the HofvijverBinnenhof, The Hague (place)Shown.
MetLife Stadium, Copa América 2016MetLife Stadium and Copa América Centenario 2016 (place and event)Shown.
Hoover DamHoover Dam (place)Shown.
El Capitan, YosemiteYosemite National Park (place)Shown.
Marina Bay, SingaporeMarina Bay Sands, Singapore (place)Shown.
US Search Awards 2018 trophyUS Search Awards 2018, Best In-House Team, Fanatics SEO team (award)Shown.
Dennis with the family dog in the snowAuggie Moon (family)Shown.
Dennis with Shaquille O'NealShaquille O'Neal (person)Described only. Confirmed, held in reserve.
Dennis with Carlos SainzCarlos Sainz (person)Described only. Confirmed, held in reserve.
On the field at Levi's StadiumLevi's Stadium (place)Described only.
Six further photographs from eventsIdentities confirmed by DennisHeld in reserve. Released in stages, when each occasion is documented.

Before any encounter page goes live on dennisgoedegebuure.com, its record must carry the date and place of the encounter, a first-hand account, the photographer and rights status for the photograph, and one relationship sentence that matches the ladder in this article.

Sources and further reading