Beyond Tokens: Building Web3’s Composable Knowledge Layer - Yaniv Tal

EthPrague 2025 · May 2025 · 25:06

Yaniv Tal, founder of The Graph and Geo, argues at EthPrague 2025 that web3 is not only DeFi and that composability should be a public good. He introduces GRC-20, a knowledge graph standard for interoperable, verifiable data that lets communities build user-owned apps across identity, governance and more. The talk covers why web3 needs better primitives to move beyond siloed apps, how entity-relation knowledge graphs enable cross-application interoperability, use cases from event coordination to AI-augmented querying, and the roadmap for integrating GRC-20 with The Graph's decentralized indexing.

Speakers

Topics

From EthPrague 2025, hosted by ETHPrague.

Transcript

[Music] So we are now welcoming Yaniv Tal and we will be talking about building web 3's composible knowledge layer. Um so everyone pay attention to this. This is a a very interesting talk. Thank you. Uh hey everyone great to be here today. Uh so yeah I'm Yian. Uh I founded the graph back in 2017 and I've been working on built helping to build this web 3 thing ever since. um started working on geo about four years ago. It's it's a layer on top of the graph and um you know it's been a bit of a journey. We've been working on this web

3 thing as an industry for a while. Um I'm still somewhat looking for it, right? Um people might have different like definitions of what web 3 is, right? For me it's it's an open, verifiable, composable web, right? Like a new web. It's more than just money. It's more than just DeFi. It's an open, composable, verifiable web. Um, and we're seeing like the beginnings of things, right, with social and different things. But like what's this thing really going to look like? And I think it helps to look at, you know, concrete examples. Um, so if we just look at something simple like events, right?

We're we're at an event today at ETH Prague. Um, you know, there's things throughout the week. You're probably checking out what side events and things to go to. Maybe you're using something like Luma, right? Luma is a web 2 app, right? It's controlled by a company. Um, they do make the information available through an API. Um, but uh, you know, it's it's a limited way of accessing and contributing to like knowledge and information. And Luma is not the only app, right? There's a bunch of different apps. You can have things on Meetup, uh, Eventbrite, maybe like different companies have their own websites where they kind of publish their events. And so it's very scattered, right? And this is what we call silos across different applications. And you can imagine if you

had a question like, you know, what are all of the Ethereum events in Europe next week? You should be able to like ask that and get a definitive answer, right? And like when we have web 3, when this thing like really exists, all of that information will be open and it'll be verifiable, right? which means that you know there's like cryptographic signatures and um you can really know that you're getting the correct answer to any question that that you want to ask. So if you think about like what would it take to be able to answer a question like this definitively if we had all this information on web 3. Uh so last year I published a post called knowledge graphs are web 3. And

the claim that I make here is that knowledge is actually the missing piece and the primitive that we need to make this web 3 vision a reality. And so uh you know with Ethereum um you know we talk a lot about web 3 there, uh DeFi really seems to be you know the main use case that's really taken off so far on the chain. Uh but it took standardization right ERC20 defining a composable standard for value that really made this DeFi thing explode right now you could have different smart contracts and protocols with interoperable value and that's what enabled you know DeFi and um uh similarly la last year uh we

released a new standard for knowledge called GRC20 um and in the same way you need standardization to really enable like composability. Um, and I'm going to talk through what some of the pieces are, what it means to have a standard for knowledge so we can truly build open, composable verifiable applications. Uh, but what is knowledge? Uh, so you can think of data as being just the raw like bits and information. For example, on a on a blockchain or or anywhere, right? It's just kind of the raw bits. And then information is when you structure that information right that data um into a structure. So think of tables right you all use tables you

have a schema and it's this fixed set of here are like the fields and that is your information. Now knowledge is much more free form and you can think about how you even you know think about things in your own mind right like when you're learning and you're creating knowledge you're building connections between things right you're understanding the relationships. Oh, this is kind of like that other thing that I saw, right? Or this contradicts that or you know these things are related. So, it's that free form interconnection between different things that helps you build up a layer of understanding. Um and and you can't have these rigid structures to enable knowledge. So, that's a key difference.

You can think of knowledge as being like um you know in concrete terms like linked and labeled information but that is unstructured and that can really evolve and that allows us to better map the world around us and that's really what we need as we build this interconnected web 3 thing. Uh so uh knowledge graphs and these kind of ideas uh have been around actually for a while and the original architects of the web we've got uh you know Tim Berners Lee at the conference here right um these guys have been working on um something called the semantic web which was this vision of an open interoperable web um and RDF triples right and triple stores are

really kind of the foundation for this um RDF it's a W3 standard that uses these triples that subject predicate object um but it is limited right um you they don't have support for properties on the edges which turns out to be uh really important and if you actually look at the RDF standard uh it uses XML it's it's it's pretty complex to use developers had not really picked it up it has issues where like the ids are these URIs which a lot of times um most of the time just points to these centralized servers so you can't really use this like in a web3 three context anyways we would need to migrate all of the existing RDF data that's out there um uh but but it kind of gave us like a

point in the right direction uh more recently we've seen an emergence and growth in these things called property graphs um and that that's gotten popularized with graph databases like Neoforj um and especially recently with AI these things have really taken off uh because it turns out that graph databases and things like Neoforj work really well with graph rag and with like these new AI LLM tools. Um, and the property graph model uses these entities and relations as the base model. And you can actually have properties on the relations, uh, which I'll show in just a bit. Um, which is really a much more powerful way to

model knowledge. Um, and we can make this, you know, web 3 native. Uh so it starts with the entities and an entity can be any person place thing right you can think of as an entity um and uh these entities have globally unique ids and that's something that's really important when you think about composability right so you know right now we're in Prague Prague is a city and if you were building an application that wanted to reference the city of Prague what ID would you Right? There really is not like a clear place for you to go to be like, "Oh, that's the ID for Prague." Right? And so

if every every system uses a different ID, you know, you have a million applications with a million different IDs, that's part of this issue of composability. So you you actually need standardization. Um and uh and that's, you know, part of what the standard can give us. Then you need relations right and relations between things and um with GRC20 we have these property graph style relations. So for example we have Byron works at geo right so works at is the relation type and we can have properties on that relation. So for example, when when did Byron start working on Gio at Gio? So if you think about something

like this, right, it's not really a property of Byron and it's not really a property of of Gio the company, right? It's a property of the relation. And so very few like information systems that we use today, if you're building an application in like a relational database, right, you don't really have this kind of thing, right? You have tables with foreign keys. Um, but having relations be their own things that you can add properties to is actually a really powerful way that allows us to like accurately model the world the way it exists. And so if you have these entities and you have relations between those entities, right, that forms a graph. Um, and that's uh really what we're talking about here with knowledge,

right? is building like a global interconnected graph of all of the world's public knowledge and information and seeing how are things related and and critically this stuff happens like across domains, right? So, we're building like individual applications and when you're doing that, you know, you're thinking about your users, you're thinking about specific use cases, but the information that lives inside your app, it's actually like connected to all the other information, right? Like Prague doesn't just live in your app, right? or um you know this event doesn't just live in you know one app. So that's entities and relations and then on top of that we can start to add some structure. Um and for that we define these things called types. So an entity can have many types right this is

different than many type systems where you'd have like a single type. um and and the types give structure and the way we do it the structure is optional right so in a relational database if you try to feed in some row and it doesn't exactly match the fixed structure your database breaks right it's like nope I can't take this um but you know when we're talking about composable knowledge what we want to do is we really want to enable inter interoperability and if you have lots of different applications that are using shared knowledge and information um they can't just break you know it needs to be able to uh to to accommodate lots of different you know types of data. So um

it is a flexible type system but this still allows you to start to standardize on common fields and things um and and this is what helps uh create structure and standard standardization. Um the types are composed of properties and we have different like native types for the properties can be text, numbers, you know, date and times. Um and uh and these things what we do here is the properties actually have also globally unique ids. So we represent the types and the properties as just normal entities, right? So it's like the schema is just data. And because these things have globally unique IDs, you can change

like the names and things over time. So you've probably done this in an application where you decide, oh, we gave this thing the wrong name. And then you try to change it and then maybe you have to do a giant migration or maybe like things break because the names no longer match. Um, that's true within a single application, but if you're talking about having thousands of interoperable applications, that stuff becomes intractable, right? And what you need is the ability to let people evolve their schemas, right? To add properties, to change the name of properties, those types of of things while still being able to interpret all of the data that was already created and generated and out there, right? And so this is the sort of stuff that you have to get these primitives right to actually have this

composability um across applications over time. So all of this knowledge um we organize into spaces and you can have public spaces or personal spaces. You know public spaces you can have for any type of community. Um so think of industries, regions, academic fields, interest groups, right? All of these things can be organized into spaces. uh each space has its own knowledge graph and has its own either governance system or access control rules for how to update the knowledge for that space.

Uh so the the process of publishing knowledge is right you have a user and a user can use any number of applications and this is part of that you know composability it's not going to be one app it's going to be lots of different apps each of these apps can publish their knowledge in this GRC20 format and the way that works is you encode it we use protobuffs as the encoding standard it's a really efficient way of serializing and encoding um data and uh and and you can take any amount of um these entities and relations uh ops. So these are changes to those things and batch them into like a single payload that you upload to like IPFS or to

arweave and then you post that on chain right so with a single onchain transaction you could update you know a thousand entities a thousand relations um and by publishing it on chain you get global consistency right um over the state of the knowledge graph at every point in time um so this is really powerful Right? You now have a way to regardless of what you're talking about in your application, whatever the ontology or the schemas or types are, you can update arbitrary amounts of data that touches any entity, any relation. Um, and you can have global consensus over knowledge in any type of space. Again, we have the

personal spaces and p and public spaces. So, if it's a personal space, um, you can publish to that right away. Basically a personal space think of as being controlled by an individual or an entity you know maybe like you have a company website that's controlled by the company um or as an individual you can publish to that right away and then the public spaces they can aggregate data from these personal spaces or you can publish directly to public spaces um but for that you have a governance process and so these spaces you arrange into a subspace hierarchy um and this becomes really interesting when you Think about public knowledge and information of you know how different communities interact with each other and

how to grow the amount of consensus right maybe you know within a company we have a certain view on knowledge and information and that's within our company but what about at an industry level right what about at a region um you know I think one of the issues we have in the world today is that you know anyone can say anything on the internet we're all talking past each other and it makes it really difficult to have quality discussions, right? Because if if we can't even agree on basic facts, how are we supposed to actually understand what's going on in the world and have quality discussions? So, this ability to get to shared views, shared facts, um I think is is really important at a societal level. I actually think

this is what we need to have a healthy society. Um and it also is a thing that enables this web 3 thing. Um and so you know you you want to find this balance between freedom where anyone can publish anything, anyone can create their own views and curation because ultimately I think we want to help people better understand the world. Um and uh and for that uh the reality is that like not all opinions are created equal, right? Some people know things, you know, on you know particular topics more than others. And if we're going to have sane systems for organizing knowledge and information, uh, we need to elevate people who, you know,

understand certain things better. And so, you know, I think that is going to be an interesting journey as we build out reputation systems and ways of better curating knowledge and information so the best information can rise to the top. Um, that is you know part of this journey as well. Um so if we look at you know the difference between like web two and web 3 in web two the data is controlled by the application right and the application is storing that data they're controlling the structure of the the information for that application um and the the web platform is just this this very thin layer right um in web 3 that gets reversed right the platform is

actually where the data lives, right? It's not controlled by the application and that's what enables the freedom and the interoperability. Um and uh you know for that though you need the right kind of primitives to to structure and organize that that knowledge and information that can be used across all the different applications. Um so you know we've gone deep on a bunch of different use cases um we're going to be sharing out today. Um we organized uh a bunch of the knowledge around uh ETH Prague and this week here in Prague, you know, in this sort of knowledge graph where we have speakers and uh uh you know the different side events and the talks and

all this kind of stuff organized in a knowledge graph. It's a cool kind of example. Uh but I I want to talk a little bit about um just some lessons through this process of uh you know years going deep into the stuff as we prepare to start opening uh more of this up. Uh so first lesson is you know if you're building something like this whether it's infrastructure or something you know that's like a foundational uh piece for web 3 you know pick a few use cases and go deep you know because each one is different. We we actually spent months going deep on like just politics, right?

Or months going deep on just news or philosophy. Um we picked a problem uh which for us was homelessness in San Francisco. And and we we we actually dove really deep into that problem. How how would we use web 3 to solve a problem like this? And you know with each of these things it gave us you know through this breadth an understanding of you know what these you know what's required of these tools you know across these different domains. Uh lesson two is that you don't need more than 10 users to iterate with.

So we've had like a group of of 10 users about that we've spent, you know, the last two years, you know, them basically full-time organizing knowledge, building out different use cases. Um, and uh and that's actually preferable if you have a smaller group of people and you're really iterating because it allows you to go really deep also with with those people and and you can get things to a really polished state like that. Um, and lesson three is that foundational primitives need to be stable, right? Like that's the number one job of a primitive is to be a stable foundation that's not changing. You know, if you think about like HTTP, it does not change every year, right? There's been like one update to the spec in the last like 30 years. Um, so that's like what we're trying to

achieve here with GRC20, right? Is to have a stable foundation for interoperable knowledge. Um, where this knowledge that's being produced today uh will be able to be used in like a hundred years, right? still um you know as people are building apps the apps will continue to run they're not going to break um and that's going to enable you know so many different apps to get traction and get usage because people don't have to be worried that if I start using this app it's going to break right um I think that's that's going to be a really big advantage that web 3 has um so uh just today we updated um our spec for GRC20 20. Um, I'm going

to be kind of sharing a link. Um, and uh, we're we're we're in the the finalization stage, so if anybody wants to jump in um, and provide feedback, we're going to be finalizing the spec very very soon. So, so now is the time. Um, we've already done uh one online hackathon and we're going to be doing more uh for people who want to get their hands dirty and start playing around organizing knowledge using GRC20. Um, we've been iterating on the governance process for these public spaces. We've been working with Aragon, uh, who's been really great to work with on kind of the governance tools for these public spaces to help communities get to consensus on public knowledge.

And we've been working on this application geogenesis which is the first UI that uses GRC20. Um and you can think of this as like a web3 notion right so notion you define your tables and your structures for things and that's like within your one app. Imagine if we could connect all of the notions together, right, into this global graph of public knowledge and information, but having governance on top of that also. So you have like a git history for all knowledge. You can see how did this thing change, like who approved this, how did we get into the state, right? It's something that anybody can edit, you know, and you know, this was actually a property they

wanted to have in the web and they didn't get it there. And you know with most applications you don't have this but you know if you have public knowledge and information that people are using like if you see something that's wrong do you have a way that you can update that thing? You know you don't and that's part of you know the issue with these kind of closed platforms. So you know imagine an open web where everything is kind of editable but through a governance process and you can see exactly how it changed. Um so this is uh you know we've had to invent a bunch of new UI affordances here uh both on the governance side as well as you know creating this global interconnected graph. Um so uh you can actually view this today. You can go to

geo browser.io um to check this out. We have a bunch more content that we're going to be publishing here and we're going to start opening it up uh more soon. Uh we have a a new set of tools uh for developers that are going to be coming out really soon uh that's going to uh enable people to build custom apps um on top of GRC20. So I'm I'm really excited about that. We've been working on this for a while. Um in the the meantime uh you can play around with if you go to the graph protocol GitHub this GRC20TTS library um for just generating you know entities and relations and types and properties. So um this makes it uh really easy to interact with GRC20

uh standard and um uh and there's a link to the spec in this repo. So, if you want to check out the spec, uh this is the best place to go to find that. And uh you can scan this QR code uh to sign up for early access to GeoGenesis. So, this is invite only. Um we're going to start uh opening this up more very soon. So, um sign up for early access here. And uh yeah, you know, it's been a while that we've been working on this web 3 thing, right? For for me almost 8 years.

And um you know, the the revolution is coming, right? Like web 3 really is going to change everything. We're we're going to rebuild everything on top of this new foundation. It's going to be open. It's going to be decentralized. Um and it's going to change how we coordinate, how we how we organize and and achie achieve things. Um, and you know, hopefully you guys will be the ones building a lot of these apps that change how people do things on web 3. Um, uh, so the revolution is coming and, um, and we can build this thing, you know, if we use the right primitives. Thank [Applause]

you. Thank you very much. Does anyone in the audience have any questions for for the moment? I guess not. All right. Thanks. Okay. Thank you again. [Music]