Speaker 1: So usually when you look at a map of a city,
Speaker 1: there is this expectation of like static geography. You know,
Speaker 1: you see the roads, you see the intersections, right, the
Speaker 1: little blue line for the river. Yeah, exactly. The map
Speaker 1: just sits there and basically says, you know, here's where
Speaker 1: things are.
Speaker 2: It feels like a.
Speaker 3: Fixed picture, just a rigid grid of reality.
Speaker 1: But then you open up a routing app on your
Speaker 1: phone and you punch in a destination and suddenly that
Speaker 1: static map just comes alive. It's instantaneously calculating I mean,
Speaker 1: millions of possibilities, routing you around traffic and finding the
Speaker 1: absolute optimal path. Well in a fraction of a second.
Speaker 2: Yeah, the map isn't just a picture anymore.
Speaker 1: At that point, exactly, You're suddenly looking at this invisible,
Speaker 1: underlying architecture that really governs how everything in our world connects.
Speaker 3: It is the absolute definition of a hidden mathematical engine.
Speaker 3: And that engine is what we call.
Speaker 1: A graph, and that invisible architecture is exactly what we
Speaker 1: are mapping out today. Welcome to today's deep dive. We
Speaker 1: are diving deep into the science of graphs.
Speaker 3: And just to be absolutely clear, right out of the gate,
Speaker 3: we are not talking about like the bar charts or
Speaker 3: the line graphs from high.
Speaker 1: School algebra, right, No pie charts here, No, no.
Speaker 3: No, We are talking about mathematical models of pairwise connections.
Speaker 3: So we have vertices which are the items themselves, and
Speaker 3: we have edges which are the connections between them.
Speaker 1: And the sheer ubiquity of this model in our source
Speaker 1: material is staggering. I mean, whether you're looking at a roadmap,
Speaker 1: the World Wide Web, an electric circuit, or a massive
Speaker 1: social network, you are looking at a graph.
Speaker 3: Absolutely, And the goal of our deep dive today is
Speaker 3: to really explore how computer science uses these incredibly simple
Speaker 3: models to solve seemingly impossible logistical scheduling and routing problems
Speaker 3: in just mere milliseconds.
Speaker 1: Yeah, We're going to start with simple two way connections,
Speaker 1: figure out how a computer explores them without getting lost,
Speaker 1: and then we'll look at the complications of like one
Speaker 1: way streets, which gets messy, oh very and finally we
Speaker 1: will add actual costs to those paths. By the end,
Speaker 1: we're answering questions ranging from you know, how the Java
Speaker 1: programming language manages your computer's memory to how you calculate
Speaker 1: your exact Kevin Bacon number.
Speaker 3: I love that one, But we do have to start
Speaker 3: with the fundamental blueprint though, right.
Speaker 1: So the most basic model we have, Yeah.
Speaker 3: It's called the undirected graph. In an undirected graph, the
Speaker 3: edges are simply two way connections. So if vertex A
Speaker 3: is connected to vertex B, then B is connected to A.
Speaker 1: It's perfectly semetic, right, a standard two way street exactly.
Speaker 3: But the immediate challenge when you want to put this
Speaker 3: into a computer is how to represent it without just
Speaker 3: blowing through massive amounts of memory.
Speaker 1: Because I mean, if you have a massive network, say
Speaker 1: billions of users on a social network, most people don't
Speaker 1: know most other people, like, the connections are really sparse.
Speaker 2: Yeah, they are.
Speaker 3: And the intuitive way to represent this might be like
Speaker 3: a giant grid what we call an adjacency matrix. Imagine
Speaker 3: every single vertex has its own row and its own column,
Speaker 3: and you just put a check mark where they intersect.
Speaker 1: Okay, makes sense in theory, in.
Speaker 3: Theory, sure, but for a network of millions, a matrix
Speaker 3: takes up a prohibitive amount of space. You'd have this
Speaker 3: massive grid where you know, ninety nine point nine percent
Speaker 3: of the boxes.
Speaker 2: Are just empty.
Speaker 3: Oh wow, Yeah, it's a colossal waste of computing resources.
Speaker 1: So to fix that, the standard approach the sources talk
Speaker 1: about is an adjacency list's data structure.
Speaker 2: Right.
Speaker 1: You basically just keep a master array of your vertices,
Speaker 1: and for every single one you attach a simple, really
Speaker 1: short list of only the vertices it actually connects to.
Speaker 3: You don't record the absences, only the presences.
Speaker 1: Yeah, it's elegant, and it saves exactly enough space to
Speaker 1: make processing huge graphs possible.
Speaker 3: But which you have your graph efficiently stored in the computer,
Speaker 3: you still need a way to explore it. And sources
Speaker 3: bring up this amazing historical.
Speaker 1: Analogy for this, oh, dating back to antiquity, right, Trimo
Speaker 1: mays exploration. Yes, I really love this concept. So for
Speaker 1: you listen, imagine wandering through a massive physical maze. To
Speaker 1: avoid getting hopelessly lost, you carry a ball of string. Right.
Speaker 1: You unroll the string behind you as you walk down
Speaker 1: any unvisited passage. When you hit an intersection, you mark
Speaker 1: it with chalk, so you know you've been there. If
Speaker 1: you hit a dead end or you know an intersection
Speaker 1: you've already marked, you just turn around and use your
Speaker 1: string to retrace your steps until you find a passage
Speaker 1: you haven't gone.
Speaker 3: Down yet in that physical process.
Speaker 1: Ye.
Speaker 3: That is the exact mechanism of one of the most
Speaker 3: fundamental algorithms in computer science. It's called depth first search
Speaker 3: or DFS.
Speaker 1: DFS.
Speaker 3: Yeah, you follow a path as deeply into the graph
Speaker 3: as you possibly can until you hit a dead end,
Speaker 3: marking vertices as you visit them. Then you literally retrace
Speaker 3: your steps back to the last intersection that had an
Speaker 3: unexplored edge.
Speaker 1: And that string translates perfectly to a computer's memory, right
Speaker 1: because DFS uses what.
Speaker 3: We call a stack exactly, a stack.
Speaker 1: Which operates on a last in, first out role. So
Speaker 1: the last inner sec you pass is the very first
Speaker 1: one you return to when you need to backtrack.
Speaker 3: It explores the graph by basically looking for new vertices
Speaker 3: far away from the start point, and it only takes
Speaker 3: closer vertices when it hits those dead ends. There's a
Speaker 3: butt there is what if you don't just want to
Speaker 3: explore the graph, What if you specifically want to find
Speaker 3: the shortest path between two points. Depth first search doesn't
Speaker 3: help much there, because it might take you on a
Speaker 3: massive winding detour just based on which arbitrary path you
Speaker 3: chose to go down first right.
Speaker 1: Because you're just picking a hallway and running. So if
Speaker 1: DFS is a single person running as far as they
Speaker 1: can down one winding hallway, bread first search or BFS
Speaker 1: is well, it's like dropping a stone in a pond.
Speaker 2: Oh, that's a great way to put it.
Speaker 1: The search ripples outward perfectly. You fan out in all
Speaker 1: directions at once, You check everywhere that is exactly one
Speaker 1: step away. Then only after that one step ring is
Speaker 1: completely checked, the search expands to everywhere that is two
Speaker 1: steps away, and so on and programmatically.
Speaker 3: The difference is incredibly subtle but profound. Instead of a stack,
Speaker 3: breadth first search.
Speaker 1: Uses a q Q right first and first out.
Speaker 3: Like waiting in line at a grocery store. It explores
Speaker 3: the oldest discovered intersections first. This guarantees that when you
Speaker 3: finally find the vertex you're looking for, you have found
Speaker 3: the absolute shortest paths.
Speaker 1: To get there, because you literally already checked every single
Speaker 1: path that was shorter exactly.
Speaker 2: You couldn't have missed a shorter way.
Speaker 1: So we've been talking about these vertices as like abstract
Speaker 1: numbers vertex zero, vertex one, but in the real world,
Speaker 1: data doesn't.
Speaker 3: Really look like that no, it rarely does, and that
Speaker 3: brings in what we call symbol graphs.
Speaker 1: Right.
Speaker 3: In a symbol graph, the vertices aren't just integers, they
Speaker 3: are strings of text. So they are airport codes like
Speaker 3: JFK or LAX, or IP addresses or movie titles.
Speaker 1: And the source material uses the Kevin Bacon game as
Speaker 1: the perfect example of this. They use an Internet movie
Speaker 1: database file.
Speaker 2: Yes, the classic game.
Speaker 1: For anyone who hasn't played. The goal is to connect
Speaker 1: any actor to Kevin Bacon through the movies they've co
Speaker 1: starred in. But looking at this as a graph, there
Speaker 1: is a fascinating structural detail here.
Speaker 2: Yeah, it's a bipartite graph.
Speaker 1: A bipartite graph. Break that down.
Speaker 3: So a bipartite graph is a network where the vertices
Speaker 3: could be divided into two completely distinct sets, and the
Speaker 3: key is edges only connect to vertex in one set
Speaker 3: to a vertex in the other.
Speaker 1: Okay, So in this case, the two sets are movies
Speaker 1: and actors.
Speaker 3: Right, Movies only connect to actors who are in them,
Speaker 3: and actors only connect to the movies they acted in.
Speaker 1: So there's no direct actor to actor edge and no
Speaker 1: movie to movie edge.
Speaker 3: You have to alternate exactly. And if you apply our
Speaker 3: breadth first search algorithm to this bipartite symbol graph, you
Speaker 3: effortlessly find the shortest alternating path. Wow, you started the
Speaker 3: Kevin Bacon vertex. Ripple out to all the movies he
Speaker 3: was in. That's a distance of one. Then you ripple
Speaker 3: out to all the actors and all those.
Speaker 1: Movies, so all those actors have a Kevin Bacon number
Speaker 1: of one.
Speaker 2: Right.
Speaker 3: Then you sweep to all the other movies those actors
Speaker 3: were in, and so on. The BFS algorithm sweeps through
Speaker 3: the database and instantaneously proves the Bacon number for anyone.
Speaker 1: And you could use the exact same logic to find
Speaker 1: your Urdo's number if you're a mathematician based on like
Speaker 1: co authored papers, or even a Bruce Springsteen number to
Speaker 1: connect musicians. It's the exact same underlying architecture.
Speaker 3: It is, but there's a massive blind spot here.
Speaker 1: Okay, what's the blind spot?
Speaker 3: The Kevin Bacon game assumes mutual relationships, like if I
Speaker 3: worked with you, you worked with me. Two way streets are
Speaker 3: great for modeling a movie cast or a physical road network,
Speaker 3: But what happens when the world isn't mutual.
Speaker 1: Oh, like, what if a webpage links to you but
Speaker 1: you don't link.
Speaker 3: Back exactly, or a one way street in a city.
Speaker 3: This brings in directographs or digraphs.
Speaker 1: Digraphs. Okay, so if we are just adding a directional
Speaker 1: arrow to the etch, how much harder can this really
Speaker 1: beat a process?
Speaker 2: Like?
Speaker 1: Does our ball of string from the maze still work?
Speaker 3: It gets profoundly harder because the moment you introduce direction
Speaker 3: reach A bility is no longer symmetric. In a standard graph,
Speaker 3: if vertex A can reach vertex B, B can obviously
Speaker 3: reach A. In a digraph, the fact that A have
Speaker 3: a path to B tells you absolutely nothing about whether
Speaker 3: B can get back to A. It completely changes the
Speaker 3: topological structure.
Speaker 1: But the depth for search algorithm still works to find
Speaker 1: out what is reachable, right it only follows the arrows.
Speaker 3: Yes, it does. And a critical real world application of
Speaker 3: this one way reachability is actually going on inside your
Speaker 3: computer's ram right now?
Speaker 1: Eait really?
Speaker 2: Yeah?
Speaker 3: Specifically in Java's mark and sweep garbage collection.
Speaker 1: Garbage collection that sounds like something a sanitation truck does
Speaker 1: not a programming language, well.
Speaker 3: In memory management, it's absolutely essential. So a running program
Speaker 3: creates countless objects in memory. The computer treats all those
Speaker 3: objects as vertices in a giant digraph, and the references
Speaker 3: from one object to another are the directed edges. Okay, periodically,
Speaker 3: the system just pauses and runs a digraph reachability algorithm
Speaker 3: starting from the main program. It marks every object it
Speaker 3: can reach by following those one way.
Speaker 1: Arrows, and anything that doesn't get marked is no.
Speaker 3: Longer connected to the active program. It's digital garbage. The
Speaker 3: system then sweeps those unmarked objects away to free up memory.
Speaker 1: Wow, so it's just unrolling the tremo string through your
Speaker 1: computer's memory. That's incredible.
Speaker 2: It really is.
Speaker 1: Another huge area where these one way arrows matter is scheduling.
Speaker 1: So think about planning a college course schedule. You have
Speaker 1: strict prerequisites. Oh wow, you know you have to take
Speaker 1: introduction to CS before you can take advanced programming. You
Speaker 1: have to take calculus before linear algebra.
Speaker 3: This is a classic precedence constrained scheduling problem. The vertices
Speaker 3: are the courses and the directed ages are the prerequisites
Speaker 3: pointing from the requirement to the advanced class. The goal
Speaker 3: is to put all these vertices in a straight line,
Speaker 3: an order where every single arrow points forward. You can't
Speaker 3: take a class before. It's prerequisite in graph processing, finding
Speaker 3: this order is called a topological sort.
Speaker 1: Okay, but hold on, that assumes everyone follows the rules.
Speaker 1: What if the registrar completely screws up. What if course
Speaker 1: A requires course B, course B requires course C, but
Speaker 1: course C requires Course.
Speaker 3: A, then you have a massive problem. That is what
Speaker 3: we call a directed cycle. If you trace the arrows,
Speaker 3: you end up right back where you start it right.
Speaker 3: If a graph has a directed cycle, scheduling is completely impossible.
Speaker 3: No one can ever graduate.
Speaker 1: It's the ultimate bureaucratic catch twenty two exactly.
Speaker 3: Therefore, topological sorts only work on a very specific type
Speaker 3: of graph, a day EAG, which stands for directed a
Speaker 3: cyclic graph, a cyclic meaning containing no cycles.
Speaker 1: So before you can even try to schedule the classes,
Speaker 1: you have to use a search algorithm just to prove
Speaker 1: there are no cycles hiding in the rule book and the.
Speaker 3: Exact same depth first search we've been talking about solves
Speaker 3: this too, by keeping track of the path that's currently
Speaker 3: exploring the straying.
Speaker 2: In our maze.
Speaker 3: If it ever encounters a vertex that is already on
Speaker 3: its current path, it has found a cycle. Ah, if
Speaker 3: it explores a whole graph, it never hits its own string.
Speaker 3: It's officially a dag and the schedule.
Speaker 2: Can be made.
Speaker 1: Okay, So cycles ruined schedules. We hate cycles and we
Speaker 1: want things in a straight line. But what if a
Speaker 1: cycle is exactly what we are looking for.
Speaker 3: Then we are looking for strong components and strong connectivity.
Speaker 1: Okay, break that down.
Speaker 3: Two vertices are strongly connected if they are mutually reachable.
Speaker 3: So if there is a directed path from A to B,
Speaker 3: in a directed path from B back to A, this
Speaker 3: inherently means they're part of a directed cycle, right they loop.
Speaker 3: A strong component is a cluster of vertices that are
Speaker 3: all mutually reachable from one another.
Speaker 1: And the source material uses the example of an ecological
Speaker 1: food web for this, which really helped me visualize it.
Speaker 1: Imagine a massive digraph where the vertices are species and
Speaker 1: the directed edges point from predator to prey. Identifying the
Speaker 1: strong components in this massive web allows ecologists to understand
Speaker 1: isolated energy flows. If a group of species are all
Speaker 1: mutually reachable in this web represents a self contained cycle
Speaker 1: of energy and nutrients.
Speaker 2: That's a great example.
Speaker 1: Or think about the world wide Web finding strong components
Speaker 1: clusters together hyperlinked pages that all reference each other, which
Speaker 1: helps search engines categorize the Internet.
Speaker 3: But computationally finding these massive, intertwined clusters of mutual reachability
Speaker 3: in a network of millions of vertices it seems like
Speaker 3: an impossibly complex task. If reachability isn't symmetric, how do
Speaker 3: you efficiently group everyone who can reach everyone else?
Speaker 1: Yeah? When I read the steps for this in the
Speaker 1: source material, it seemed like actual magic. It's called the
Speaker 1: Cosaraji Sharer algorithm.
Speaker 2: It is brilliant.
Speaker 3: It finds all the strong components in a digraph in
Speaker 3: linear time. The steps are deceptively simple.
Speaker 1: Okay, walk us through it.
Speaker 3: First, you take your digraph and you reverse every single
Speaker 3: era you compute the reverse graph. Okay, Then you run
Speaker 3: a search on that reverse graph, but you aren't just
Speaker 3: looking around. You're keeping a very specific list. You record
Speaker 3: the order in which the search finishes explod oring of
Speaker 3: Vertex's path, essentially ranking who hits.
Speaker 1: A dead end last, tracking the dead ends.
Speaker 3: Got it? Then you use that specific reverse order to
Speaker 3: run your second search on the original unreversed graph.
Speaker 1: Let me stop and explain why flipping the arrows actually works,
Speaker 1: because this is where the genius really lies for me.
Speaker 2: Please do.
Speaker 1: If you are exploring a graph and you wander into
Speaker 1: a strongly connected cluster, the danger is that you might
Speaker 1: accidentally follow an arrow that leads out of the cluster
Speaker 1: to some other random part of the graph, and since
Speaker 1: it's a one way street, you can't get back. You
Speaker 1: just bleed out into the rest of the web.
Speaker 3: Yes, exactly, you lose the cluster. By reversing the arrows
Speaker 3: and ranking who hits dead end's last, you are essentially
Speaker 3: finding the sinks, the places where flow pulls up. Wow.
Speaker 3: When you run the second search using that specific order,
Speaker 3: you guarantee that you are always starting in a cluster
Speaker 3: where the only outgoing arrows have either been reversed or
Speaker 3: point to things you've already found. It artificially traps the
Speaker 3: search algorithm inside the cluster. It can't bleed up right,
Speaker 3: so every time the search finishes its local sweep, that
Speaker 3: isolated bucket of vertices is exactly one strong component.
Speaker 1: You just run a search, flip the graph and run
Speaker 1: it again, and boot the complex ecosystem of predator and prey,
Speaker 1: or the clustered communities of the World Wide Web. It
Speaker 1: just falls out into perfectly organized buckets.
Speaker 2: Beautiful.
Speaker 1: It is absolutely breathtaking that something so complex is solved
Speaker 1: by manipulating the flow like that.
Speaker 3: It's a testinate to how deeply understanding the mathematical properties
Speaker 3: of the graph yeah, allows you to manipulate it. But
Speaker 3: as we move forward, we have to recognize that in
Speaker 3: the real world, navigating connections isn't just about whether a
Speaker 3: path exists.
Speaker 1: Right, so far, all these connections we've talked about are free.
Speaker 1: You either have an edge or you don't. But in reality,
Speaker 1: taking a street costs something, which introduces us to edge
Speaker 1: weighted graphs.
Speaker 3: We assign a value or a weight to every single connection.
Speaker 1: And my immediate assumption was that an edgeweight is obviously
Speaker 1: the physical distance between two points, like the miles between
Speaker 1: to airports on a routing map.
Speaker 3: Yeah, that's a very common misconception. Edgeweights can represent physical distance, yes,
Speaker 3: but they can also represent the monetary cost of a flight,
Speaker 3: or the time it takes for a signal to travel
Speaker 3: down a wire, or.
Speaker 2: Even the amount of fuel burned.
Speaker 3: Okay, In fact, edgeways don't even have to be positive.
Speaker 2: They could be zero or even negative values.
Speaker 1: Wait, how can a cost be negative.
Speaker 3: Well, imagine a financial graph modeling currency exchange or stock transactions.
Speaker 3: A negative weight might represent a guaranteed profit margin on
Speaker 3: a trade. The math of the graph doesn't care what
Speaker 3: the number represents, It just knows it needs to optimize it.
Speaker 1: Okay, that makes sense, and one of the most famous
Speaker 1: optimization problems is finding the minimum spanning tree or MST.
Speaker 2: Right.
Speaker 1: The goal here is to find a set of edges
Speaker 1: that connects every single vertex in the graph without any cycles,
Speaker 1: and doing it with the absolute minimum total edge weight possible.
Speaker 3: And this is a profoundly important problem. If you are
Speaker 3: laying electrical wiring for a new neighborhood, or laying fiber
Speaker 3: optic network cables across an ocean, or even designing the
Speaker 3: routing topology for an airline, you need to connect everything
Speaker 3: using the absolute minimum amount of resources.
Speaker 1: But finding the minimum spanning tree without just guessing and
Speaker 1: checking trillions of combinations, that requires something called the cut property.
Speaker 2: Think about it intuitively.
Speaker 3: Imagine taking all the vertices in your graph and drawing
Speaker 3: a line that divides them into two completely isolated islands,
Speaker 3: group A and group B.
Speaker 1: Okay, two islands.
Speaker 3: Now, look at all the potential edges that could cross
Speaker 3: the water to connect those two islands. The cut property
Speaker 3: says that if you want to build a spanning tree,
Speaker 3: you absolutely have to build at least one bridge to
Speaker 3: connect them. If you want to keep your overall cost down,
Speaker 3: why wouldn't you pick the absolute cheapest bridge available. The
Speaker 3: property mathematically proves that the crossing edge with the absolute
Speaker 3: minimum weight must be part of the minimum spanning tree.
Speaker 1: So any random cut, as long as you divide the
Speaker 1: graph into two, the cheapest edge bridging that gap is
Speaker 1: guaranteed to be in the final optimal tree.
Speaker 2: Any cut it.
Speaker 1: All that is wild, And this leads to what computer
Speaker 1: scientists call a greedy algorithm. Yes, greedy algorithms are amazing
Speaker 1: because they seem almost too simple to work. A greedy
Speaker 1: algorithm basically just says, at every single step, look at
Speaker 1: the options right in front of you and just grab
Speaker 1: the cheapest one. Don't worry about the big picture, don't
Speaker 1: plan ten steps ahead, just make the best cheapest local
Speaker 1: choice right now.
Speaker 3: It is counterintuitive, isn't it, And a lot of areas
Speaker 3: in life making the greedy short term choice leads a
Speaker 3: disaster down the road. Oh absolutely, But because of the
Speaker 3: cut property in the minimum spanning tree problem. Continually making
Speaker 3: the greedy local choice mathematically guarantees that you will end
Speaker 3: up with the perfect optimal global solution.
Speaker 1: You just keep gobbling up the cheapest connection that doesn't
Speaker 1: form a cycle, and when you've connected everything, you were
Speaker 1: holding the perfect blueprint for your power grid or your network.
Speaker 3: It highlights a recurring theme in graph processing. Complex global
Speaker 3: problem often have elegant solutions if you can just identify
Speaker 3: the right local rule to follow.
Speaker 1: Man, what an incredible journey we just took.
Speaker 2: Yeah, we covered a lot of ground.
Speaker 1: We started out literally unrolling a ball of string to
Speaker 1: get through a basic maze. Then we use that same
Speaker 1: ripple effect to reveal the hidden bipartite web of Kevin
Speaker 1: Bacon's movie career. We wrangled chaotic, impossible college schedules by
Speaker 1: proving they were directed as cicclet graphs. We trapped cycles
Speaker 1: to find mutually assured survival and food webs using the
Speaker 1: sheer brilliance of the Kasarda Sharier algorithm. And finally we
Speaker 1: routed the cheapest possible power grade using nothing but a
Speaker 1: greedy local choice.
Speaker 3: Abstract mathematical models really are the silent force powering our
Speaker 3: modern infrastructure. But I do want to leave you with
Speaker 3: one final mind expanding thought, straight from the exercises in
Speaker 3: our source material.
Speaker 1: Ooh, lay it on us.
Speaker 3: We've talked a lot about maps, computers, and social networks today,
Speaker 3: but mathematical chemists used the exact same graph logic we
Speaker 3: discussed today to analyze the build holding blocks of the
Speaker 3: universe on They use something called the Wiener index. It's
Speaker 3: calculated by summing the lengths of the shortest paths between
Speaker 3: all pairs of vertices in a graph. But in their graphs,
Speaker 3: the vertices are atoms and the egges are chemical bonds.
Speaker 1: Wow. Think about that for a second. The exact same
Speaker 1: algorithmic logic your phone's map app uses to route your
Speaker 1: car around a traffic jam is simultaneously being used by
Speaker 1: scientists to decode the shape, the behavior, and the fundamental
Speaker 1: structure of the microscopic molecules inside your own body.
Speaker 3: The rules of the graph apply the matter the scale.
Speaker 1: It really makes you look differently at that city map
Speaker 1: we started with. It's not just a picture of streets.
Speaker 1: It's a reflection of the invisible architecture that connects literally everything, atoms, actors,
Speaker 1: internet pages and you. Everything is connected, and now you
Speaker 1: know how to map it.