[HN Gopher] The Block Protocol ___________________________________________________________________ The Block Protocol Author : jacobrussell Score : 157 points Date : 2022-01-27 17:32 UTC (5 hours ago) (HTM) web link (blockprotocol.org) (TXT) w3m dump (blockprotocol.org) | catchmeifyoucan wrote: | This kind of reminds me of https://adaptivecards.io/ from | Microsoft. | sambroner wrote: | The Block Protocol is building on a pretty large history of | similar ideas, but none have _really_ succeeded. Joel 's interest | in this project is some cause for hope as is the embrace of | existing standards like react, webcomponents, and HTML. | | Historically, OpenDoc is pretty relevant. So is OLE. More | recently Notion, Coda, Microsoft Loop [1], Anytype.io, etc lean | on the same concepts to allow you to break documents into | independent & reassemble-able components. There hasn't been a | large ecosystem here, although the componentized approach has | more traction now as we move away from skeuomorphism. | | On the data side, Solid is the most relevant. The models are | often the same, users give applications very granular data | permissions and progressively authorize data access as required | for additional functionality. Developers seem to dislike the | model... You don't really know what you're going to be rendering | and key features are not really used. | | From a pure schema perspective, you have schema.org. It's a | pretty comprehensive attempt to catalog structured data for most | use cases. It's nice that this project can kinda build on the | semantic web, but most people ignore it! That being said, | adoption would go a long way towards interoperability between OSS | projects. | | I'd like to live in a world where everything works together? But | I'm not so hopeful at this point because the ecosystem has very | weird economics. Ultimately the "Block Developer" needs to be | compensated, but the host is the one getting the SaaS or | advertising payment. Obviously simple components can be free, but | very complex ones may need micropayments, licensing fees, etc. | | [1] I helped start Fluid Framework, which is the underlying tech | for Microsoft Loop. These are just my opinions and I no longer | work for Microsoft. | qwertyuiop_ wrote: | "The Block Protocol is a global standard for building interactive | blocks connected to structured data." | | is this a W3C standard ? why are they claiming its a global | "standard" ' | notpachet wrote: | I am torn on this. On the one hand I believe very strongly in the | value that the semantic web can provide, and I applaud any effort | to move us towards a future where we can more reliably interop | between different applications on the web. I hope this pushes the | needle in that direction. | | On the other hand, there is a very crowded graveyard of spiritual | ancestors to this project, all of which were aspiring to similar | goals. I am not seeing much direct acknowledgement here of why | those other projects failed, or measures to prevent that from | happening with the Block protocol. | | One common problem in semantic web projects, which Block doesn't | seem immune to, is that the authors of those projects seem to get | stuck thinking about how to model the presentational components | on a given web page (lists, forms, images, calendar widgets) | instead of the actual real-world stuff that these things | represent (the books on my shelf, my allergies, a picture of my | dog, my birthday). Don't get me wrong, richly-typed | presentational components would be a big improvement. But I don't | think they should be the end goal (unless perhaps you're in the | blog-writing software business). | | Web pages are just one of many vehicles that we use for shuttling | around information about the real world. We should try to come up | with a system that is capable of representing real-world semantic | information regardless of how that information ends up getting | turned into pixels. It may be a web page, it may be Siri reading | it to me, it may be AR. | | But when modeling real-world data, we always seem to walk into | traps such as this (from the Block FAQ): | | > On other occasions you'll want to store information differently | than how it's set out in the schema.org definition. For example, | schema.org/Person defines a person as having a givenName and a | familyName and yet in various cultures this isn't guaranteed. | HASH uses preferredName and legalName instead - in communications | and billing contexts respectively. | | How do we design a semantic typing system for real-world data | that is amenable to the inevitable need to evolve or amend the | schema, or leave off certain fields from a type instance, or tack | on a few extra fields? Should our applications eschew canonical | types (like schema.org's Person) in favor of a ducktyping | approach (I don't care if you give me a schema.org Person, or a | blockprotocol.org Person, or a notpachet.org Dog, as long as the | blob has a numeric field for the "age" key? | blobbers wrote: | Is the idea that you build your website out of the blocks of | other websites? | | As in TMZ and Techcrunch both publish something and you display | their little blocks on your website? Is the data dynamic? It | seems like there is data, and there is a block that can display | said data. | | How is this any different from a view and a model(+controller?)? | lootsauce wrote: | Tried to sign up but can't get past the user name page. | ciaranmn wrote: | We had some teething issues earlier, apologies - if you try | again now it should work. | skybrian wrote: | Back in the dot-com era we had "portal servers" which were | basically a way to build a dashboard. This seems like a related | idea? Put blocks in multiple columns and you have a dashboard. | | Maybe it will do better this time? But I feel like mobile phones | went in the opposite direction with UI's designed for smaller | screens, showing only one app at a time. | | We do have lots of documents and notebooks though. Maybe | Observable's notebooks would benefit from something like this? | | Observable's notebooks let you define variables containing data | and use them in other places, with live updates. It seems like | you'd want something like that with blocks. | lucasmullens wrote: | So this seems to be a wrapper around web components, which might | make web components easier to use in frameworks. By providing | types, one could build a generator that takes a Block and creates | a strongly-typed React/Vue/Svelte component, or even mobile | components using a webview. | danecjensen wrote: | Can you elaborate on this? Why can't you make a generator for | regular web components? | yesimahuman wrote: | Stencil has this feature btw: build a web component and it can | output the strongly-typed React/Angular/Vue bindings to consume | it natively in those frameworks. | spankalee wrote: | The Web Components Community Group is developing such a format | to describe the types of components here: | https://github.com/webcomponents/custom-elements-manifest | | People have already built tools that generate wrappers based on | it. | geektips wrote: | Noob Question: How does this compares to an oEmbed. | spankalee wrote: | The security issue really should be front and center in a project | like this. It's kind of disappointing to see it left as an | exercise for the embedder. | | In the general case with untrusted 3rd party code the only really | safe solution is to embed the blocks in cross-origin iframes. In | the face of Spectre and Meltdown you really want those to be out- | of-process iframes too, but that's up to the browser. | | iframes are cumbersome of course, so it would have been | interesting to see the protocol focus on making them more | seamlessly integrate with the embedding context with a standard | postMessage protocol for things like securely forwarding content | sizes (for auto-resizing the frame), events, and styling | information across the frame boundary. | DavidWilkinson wrote: | This is a fair criticism of the public spec in its current form | and we're working on documentation to help folks deal with | this. | | We actively want to talk approaches through with more | interested parties, and welcome contributions to the spec and | docs. | | Sidebar -- for our part at HASH - we're optimistic about the | role WebAssembly might play, having used it extensively in | building the wider ecosystem of simulation tooling. | miniatureape wrote: | I think this is a really cool idea and something I have | personally wanted (or at least thought I wanted) for a long time. | In fact I wrote about a similar idea in 2013.[1] | | To me, this is just one part of something bigger though. I want | to be able to store code in blocks and compose them into bigger | blocks by chaining them and pipelining them. I'd also like | versioning and some access rules. | | https://justindonato.com/notebook/urls-as-pointers.html | bamazizi wrote: | Interesting timing! After more than 3 years of preaching this | idea to every ear I could find, no one listened! So I've been | building a whole 'block oriented backend as a service' for a | while now. Basically "bring your own frontend" | | Event driven, CQRS, with workflow orchestration of LEGO like | microservices around block oriented data structures! | | Not an easy system to architect and build, but efforts like this | are not only great validation or motivators but a great reference | to compare and contrast! | sambroner wrote: | How would your approach be similar to or different than Edge DB | [1]? Sounds like much more orchestration around the DB layer? | | [1] https://www.edgedb.com/blog/building-a-production- | database-i... | rapnie wrote: | That is interesting. Is it open-source or intended to be? | cxr wrote: | Strong Xanadu vibes. Not surprising to see, since at least one of | the people involved isn't new to trudging through the history of | hypertext and has several Xanadu writeups. (See the backlinks on | <https://maggieappleton.com/garden-history>.) | usbfingers wrote: | Many have tried - very recently - and seemingly stalled or failed | at creating something like this with wide adoption, most notably | Tim Berners-Lee with the SOLID protocol | | https://solidproject.org/ | | https://solidproject.org/TR/protocol | | The roadblock is always getting major tech companies to accept it | as a valid means of accessing user data. | | The amount of times I've heard about SOLID on NPR or other | popular mainstream newscasts only to garner little to no support | is astounding. Definitely take note where others have seemingly | failed here because it's an uphill battle. | tmikaeld wrote: | Not the same thing, this "Block protocol" is for HTML widgets | basically, re-usable HTML/CSS/JS components for sites/apps. | usbfingers wrote: | https://news.ycombinator.com/item?id=30105910 | | At its heart, it is very similar. | | Comment above does a good job at describing the distinction. | It's more than just re-usable HTML/CSS/JS, that's just how | they're making it accessible to others. There are entities | associated with the HTML/CSS/JS mapped alongside the | component, which is the core benefit here. | | https://blockprotocol.org/spec for more info on how they're | mapping data as entities | sam_goody wrote: | The real difference is the mindshare. | | joelonsoftware has bajillion readers, but he is much better | known for founding stackoverflow. | | When SO endorses something, it will got a lot of mindshare, and | becomes something that developers feel connected to. | | And with enough mindshare, the same project that would have | been dead in the water becomes a given. | usbfingers wrote: | this is an excellent point | | Sort of tangent, but the fact that Block Protocol is also | managing the distribution of the resulting UI components, | unlike Solid which encouraged people to consume the data | independently through an API, makes it more accessible. | [deleted] | anderspitman wrote: | Personally my hesitancy in embracing Solid is the complexity. | What I really want is essentially an HTTP filesystem API for my | programs. Like a modern WebDAV to replace Google Drive. All the | linked data stuff might be useful down the road but I currently | don't need it. | Ostrogodsky wrote: | irq-1 wrote: | To everyone that doesn't get it, think desktop UI controls, but | for the web. Joel explains it clearly on the intro blog post: | https://www.joelonsoftware.com/2022/01/27/making-the-web-bet... | | The strongly typed data is about not scraping the web; its typing | for software reading the blocks and reusing the data. | slyall wrote: | Blog post from Joel Spolsky introducing this. | | https://www.joelonsoftware.com/2022/01/27/making-the-web-bet... | pdonis wrote: | This is, as others have commented, a much better explanation | than the article at the top of this thread. | | But I'm not sure it's quite as simple as Joel makes it seem | here: | | _> If you work on any kind of editor--be it a blogging tool, a | note-taking app, a content management system, or anything like | that--you should allow your users to embed blocks that conform | to the Block Protocol. This way you can write the embedding | code once and immediately make your editor able to embed a rich | variety of block types with no extra work on your part._ | | I don't see how this would work. Sure, the _data_ would be | embeddable anywhere, but how does the editor know how to | display it to the user and let the user interact with it? That | 's not just "embedding code". And later on: | | _> Want to create a block that shows the Great Circle routing | for a flight between two airports? Write the code for the block | once and it can be embedded anywhere._ | | Again, how does the application it's being embedded in know how | to display it to the user? That seems like it requires more | than just "embedding code". Each new kind of block requires | each application to add code to _use_ the block. | | I agree the data exchange interoperability part is nice, but | I'm not sure about the code reduction that seems to be implied | here. | open-source-ux wrote: | Interesting idea but more questions than answers... | | The 'block' idea makes sense in the context of WordPress, but | WordPress 'blocks' include layout blocks as well as content | blocks. | | You could argue HTML is already a universal language that | includes semantic 'blocks'. Is the block protocol a collection | of HTML elements grouped together to form higher-level blocks? | | Will content 'blocks' be separated from style? What role will | CSS component frameworks take in styling content blocks? | | We have embedded content from third-party parties already e.g. | a tweet 'block', a YouTube video, an Instragram post, etc. The | result is embedded 'blocks' stitched together to make a slow- | loading page with a mess of HTML and CSS code (and a host of | third-party cookies). How can the block protocol avoid this? | | As I said, interesting idea but many questions remaining at | this early stage. | jrochkind1 wrote: | This explains it a lot better than the OP. (At first I was | wondering if it had to do with "blockchain", because of the | word "block" and the OP seeming like the kind of "solution in | search of a problem" I associate with blockchain). | | But now I get it. Standardized content plugins across apps, | basically? | | Sure, makes sense. I wish I thought any of the platforms | involved were interested in making any investment at all in | interoperability. | DavidWilkinson wrote: | Various are interested in making their platforms more | extensible (the flip side of content interop). | flutetornado wrote: | I have always wanted Kindle to support a lot more features than | what it does today. Digital books could be a lot more than what | they are today. Want to embed a python REPL in a python book for | users to test things right in the book, from a common source? | Want to embed function graphs in a Math book from a common | source? How about a theorem prover right there in the book? How | about a Wolfram engine embedded in there to solve arbitrary | calculus problems? How about a section in another book - license | it from the other publisher and embed it into your book? | Embedding a video, a web page, a 3D visualization engine, etc | should all be possible in a digital book. | | Looks like this maybe able to achieve all of this. Just need to | get Amazon Kindle team on board with this. | gingkoguy wrote: | Damn I thought square came out with something | jawns wrote: | The idea that you can create blocks that can easily be integrated | into other applications presupposes that it's a desirable thing | to have data that can be easily integrated into other | applications. | | Which, for us as developers, seems like a given. | | But when you look at it through the lens of business users, that | becomes a much more murky assumption. | | Look at RSS. Amazing way to aggregate content from other sources | into a viewer that you have robust control over. Developers love | it! | | But is RSS desirable from a business point of view? The landscape | over the past 15 years suggests that no, it's not. | | Businesses would prefer to build walled gardens. They want | complete control over the experience of consuming the content | they produce, particularly when it comes to analytics and user | data generated from that content. In many cases, their business | model depends on it. | | While the Block site touts this protocol as a way to | collaboratively build and share things within a community and | ecosystem that runs on cooperative principles, that may be at | odds with what our current business environment is incentivizing. | CyberDildonics wrote: | To be clear, you think that a standard data format and protocol | is not worthwhile because some organizations don't release | data? | zozbot234 wrote: | Standardized data formats and protocols exist already - see | Linked Data and the Semantic Web. They're mostly used by non- | commercial data providers _because_ of the aforementioned | incentive problem. | mejutoco wrote: | I have been asked to implement RSS but private please, more | than once :) One way to look at it could be that protocols | create potential (sowing) and businesses exploit that potential | (harvesting). Without the protocols I believe some of the | walled gardens would also be impossible. The best example i can | think of is email, which created opportunities for businesses | for events, ecommerce, login systems, etc. | culi wrote: | Sounds like we need a different economic system that doesn't | have these types of incentives | AyyWS wrote: | So you're saying block protocol would be a good fit for Red | Star OS? | doliveira wrote: | I don't think there ever will be actual support from current | major tech companies for such an endeavor, their business | models are all about information and development lock-in, | either explicitly or implicitly... I think it would have to | start with academia and technical content, just like it did for | the web (as I understand it) | DavidWilkinson wrote: | We've spent a lot of time thinking and talking to folks about | the incentive structures around this, and think they stand on | their own - although your skepticism was an initial worry we | had, too. As it stands the Block Protocol enables embedding | applications to make their products more useful to consumers. | And block developers reach a wider audience with their tools | than they would otherwise. There's a lot more to this that | we'll write up nicely later. | alexaholic wrote: | oEmbed[1] meets Schema.org[2]? | | [1] https://www.oembed.com | | [2] https://schema.org | tadfisher wrote: | org-mode plugin when? | metalliqaz wrote: | The idea is cool, but why would any major service support this? | The whole point of every startup these days is to grow to the | point where they can hog all the users on to their own | proprietary platform. Interoperability is anathema to the modern | way of thinking. | dataangel wrote: | Sometimes software projects become a parody of the industry, this | feels like one of those times. Abstraction astronauting to the | 10th power, "A block is structured data" okay so like nearly | ANYTHING? "You can send structured data between apps"... so it's | JSON. "But also things like images!" ok, so files you've | reinvented files. Maybe there is something actually useful here | but Christ nobody is going to know based on this website. | anderspitman wrote: | Funny you invoke astronauting, given that AFAIK Joel Spolsky | (involved in this project) coined or at least popularized the | term: | | https://www.joelonsoftware.com/2001/04/21/dont-let-architect... | [deleted] | slx26 wrote: | >> Why would I want to build blocks with the Block Protocol? | | >> Blocks built with the Block Protocol can easily pass data | between applications because the data within each block is | structured. | | Yeah, what you said. What's their problem? What better world do | they imagine? What's the approach taken on their solution? Very | poorly explained. | | EDIT: Joel's article is much, much, much more convincing. | atarian wrote: | Ohh I get it. It's basically Docker/shipping containers for | content. | dgellow wrote: | So, we now need to develop a kubernetes for content, right?! | babyshake wrote: | This has nothing to do with Jack Dorsey's Block, right? | [deleted] | spicybright wrote: | It looks like it's not. I thought it was block chain just from | the title myself. | jrochkind1 wrote: | When someone finally combines blockchain with semantic web, | it'll be an immovable object meeting an unstoppable force and | cyberspace will implode. | MarkBennett wrote: | ha ha, that was my first thought too | egypturnash wrote: | I feel like "You can move things from one to-do app to another | to-do app!" is not really a compelling answer to the question | "Why would I want to build blocks with the Block Protocol". | cuteboy19 wrote: | Relevant XKCD: https://xkcd.com/927/ | hackerlytest wrote: | I knew what xkcd it was just by looking at the link. Lol | mindcandy wrote: | That's because people whip it out constantly and almost | always where it's not appropriate. It's pretty rare that | anyone tries to enact a new standard. So, instead we see | this comic use to downplay every time that anyone does | anything resembling anything that has ever been done | before. Which is to say: to downplay everyone else's | efforts. It has long gone past being funny to just being | dismissive in it's widespread use. | Dylan16807 wrote: | Yeah, it seems like it shows up _any_ time a standard is | suggested, which is taking a two sentence premise and | ignoring 2 /3 of it. | Ostrogodsky wrote: | andjd wrote: | Exactly this. There may not be a 'standard' that does any of | this already, but the goal of this being portable across | websites requires all of those websites to support this 'new' | standard -- so there probably isn't a way this becomes wide | spread enough to be useful. | | Relatedly, this follows the Notion model, where the UI is | intrinsically tied to and limited by the data model. This may | have appeal to developers who already are primed to think | that way, but it's a terrible UI paradigm for everyone else. | ohadron wrote: | I came here for this comment | Dylan16807 wrote: | What are the existing standards? | recursive wrote: | http://microformats.org/ | pphysch wrote: | HTML, JSON, iframes | Dylan16807 wrote: | The HTML and JSON standards don't get close to this by | themselves. | | I don't think iframes really do it either, but even if | they do nobody uses them that way and a replacement seems | okay. It's not really a "competing standard" if nobody | wanted to use it. | pphysch wrote: | If you look at https://blockprotocol.org/hub and can | survive the <5fps (yikes!), you can see that they've | demonstrated reimplementations of <p>, <img>, <h1> by | piling mountains of Javascript/JSON on what is | (hopefully?) just those standard HTML elements under the | hood. | | If I have to pick between standard slow-moving HTML and | wild west HTML-reimplemented-in-React, I will choose the | former every time. I will never have to worry about "my | <p> has been abandoned by its maintainer and is now | malware!". | ericflo wrote: | Widgets are back! | [deleted] | divbzero wrote: | How does the Block Protocol differ from or add to Web Components? | Is it the standardization of how structured data that can be | passed with the blocks? | divbzero wrote: | Based on what I can gather from the documentation I think the | answer is basically: _Yes, it's the structured data._ | | My initial confusion came from looking at Block Hub [1] which | appears to be a collection of UI components. But the underlying | Block Protocol specification [2] is all about structuring data | around entity types and entity identifiers. Looking at a | specific example of a block [3] the UI component is displayed | next to the underlying data and schema. | | My guess is the creators of Block Protocol want to promote the | free exchange of structured data and decided that coupling the | data to UI components is the best way to do that? It's notable | that the web has faced challenges encouraging use of both | structured data (Semantic Web) and UI components (Web | Components). Maybe they can be more appealing bundled together. | | I do hope the Block Protocol project tries as much as possible | to reuse existing standards for data and components, building | upon whatever we have that already works well. | | [1]: https://blockprotocol.org/hub | | [2]: https://blockprotocol.org/spec | | [3]: https://blockprotocol.org/@hash/image | ciaranmn wrote: | This is correct: it's the standardization of the interface | between blocks and things using them, which includes | structure in the data being passed back and forth, and the | structure of the interface itself (e.g. what operations are | available). | | We do want to promote the free exchange of structured data, | and to have data captured and marked up according to some | structure - we also want to promote the portability and easy- | of-setup of UI components. | | Our FAQ illustrates how we relate to and intend to use | existing standards - https://blockprotocol.org/docs/faq - | we'd be interested in any others you think worth building on. | spankalee wrote: | If you want to promote portability, then blocks should be | web components based, full stop. React-based blocks won't | be usable without setting up React on the page. | | I think the FAQ around leaves a lot more open questions. | Like: | | > but they do not standardize the interface between those | blocks and the applications using them | | I'm not sure this is entirely true. Most reusable | components these will have an interface described by a type | system - this is how IDEs offer code completion and JSX and | other template systems are type-checked. | | In the Web Components Community Group we're also | standardizing a format for describing the entire interface | of a web component, including its attributes, properties, | events, methods, CSS variables and parts, etc. This is | called the Custom Element Manifest: | https://github.com/webcomponents/custom-elements-manifest | | Instead of being tied to json-ld, the manifest just | documents what JS/TS type a property, etc., has. If a | component has a person property that accepts a Person type, | a tool can understand that. | | This manifest will give tools like catalogs, linters, and | visual UI builders enough information to do high-level | operations like generate demos, lint templates, assemble | components without code, etc. | euroderf wrote: | So is there a sweet spot between microformats and Notion ? | jitl wrote: | (Disclosure: I work on Notion) | | This is a really cool idea! | | I think the challenging part of this project will be building | intuitive and collaborative interfaces on top of the bare-bones | data model. The challenge comes with two parts: (1) allowing | blocks to compose, so I can nest a "task block" inside a | "paragraph block", and (2) figuring out the collaboration model | so multiple users can manipulate blocks at the same time, eg by | typing characters. Both of these aspects are un(der)specified | in the Block Protocol spec. | | For an example of a challenge building composable blocks, | consider the suggested architecture - the project imagines | different block types implemented as sandboxed iframes, | orchestrated by some editor that stitches them together into a | document or dashboard. This would make certain interactions | difficult/impossible to implement in the browser. For example, | you can't start a text selection in one iframe, and end the | text selection in the next iframe. This means that each layer | will need to implement many of the standard blocks, just to | provide tools that operate on _the contents_ of more than one | block at a time. | | I'm left wondering if there will ever be "block protocol | native" apps, or if this will be more of an | interoperability/import/export format between otherwise | monolithic platforms that have their own much richer internal | data format. | DavidWilkinson wrote: | (One of the BP maintainers here) | | If you'd be open to exploring this in the context of Notion | we'd love to chat: david@hash.ai | uoaei wrote: | Oh look, someone reinvented semantic web again. | redwall_hp wrote: | But with an inherent dependency on an additional abstraction. | Why a "block" when we already have a Document with many | Elements that should have semantic meaning applied directly to | them? | iddan wrote: | Exactly what I was thinking. The Semantic Web done the heavy | lifting of defining general schemas (https://schema.org) and | extending JSON (https://json-ld.org) and yet people don't | subscribe to it. On the other hand, it has a lot of historical | baggage (RDF, old schemas) that maybe a new standard can | actually be better | feanaro wrote: | Why is RDF a bad thing? | j-pb wrote: | * Layers upon layers of complexity: Implementing CURIs | alone is a non trivial task, although all that's really | needed to describe entities and attributes is 128bit UUIDs. | | * There is no good build-in way for authentication and | trust. | | * Description Logic (the foundation of OWL) has a | fundamentally prescriptive philosophy, which makes it | inappropriate for most practical applications. | | * No good library and tool support in general, due to the | complexity. | | * Blank Nodes | | * No good consistency mechanism for distributed data | generation, and Quads (having multiple graphs) don't | properly solve this. | | * Using human readable entity and attr id's leads to more | bike-shedding and accidental collisions than it's worth. | | * High barriers to entry. | | * After years of developer disappointment the earth is | pretty much salted. | jrochkind1 wrote: | "CURIs"? | j-pb wrote: | A standard for shorter URI/URN identifiers: | https://www.w3.org/TR/curie/ | | It's needed because of the "readable resource name" | criterion I also mentioned. Most of the complexity in RDF | is actually not in the datamodel but leaks in from other | parts of the web. | contravariant wrote: | As far as I'm concerned its most damning property is being | all about relations but having no easy way to express | properties of those relations. | | It's easy to express "<something> isa <cat>", but | significantly harder to express "<something> isa <cat> with | probability 98%". And all attempts to express the later | just look like you're trying to build an impromptu | relational database in order to fit an n-ary relationship. | jcelerier wrote: | I don't know how much that counts but every time I had to | interact with RDF data I wanted to pull my eyeballs out of | my sockets pretty much for the whole thing. Also, the idea | that human knowledge can be categorized seems very | laughable to me - I don't know of any RDF specification or | ontology that holds in practice ; too many people have too | many incompatible definitions for things and there is never | one better than the others. | k__ wrote: | Maybe, finally a useable iteration of it. | ciaranmn wrote: | We want to fit into the existing semantic web tech rather than | reinvent it - there's a FAQ here which hopefully helps to | clarify: https://blockprotocol.org/docs/faq | j-pb wrote: | Kudos, this really feels like one of those ideas whose time | has come. I'm tinkering on something very similar for longer | than I care do admit, except I took on the daunting task of | replacing RDF, and I'm sufficiently disillusioned by years of | frontend work to base the UI off of TUIs and HyperCard. | | One thing that I experienced as a huge hurdle for semantic | web technology is the lack of browser APIs to actually work | with RDF/JSON-LD/Semantic Web data. There's really no | complete and straightforward way to transfer, store and query | semantic data in the fronted. JSON-LD works around this by | exposing the graph as a tree regular old JS can work with, | but that looses a lot of the flexibility and power of the | original graph model, e.g. path independence and proper | queries. | | I'll definitely keep an eye on how your ideas and solutions | evolve! | wrnr wrote: | Well it does use RDF and probably has the same problem, was it | `foaf:Person` or `schema:Person` or maybe even | `ai:reificatedConceptNr1234`. | anderspitman wrote: | Interesting, especially since Joel Spolsky seems to be involved. | Would like to see a comparison to microformats[0], RDFa, etc. | | [0]: https://microformats.org/wiki/Main_Page | lelandbatey wrote: | I've read and perused this, and I have some specific questions. | | 1. According to the spec[0], a "block package" is "a collection | of files making a block type (which is 'a definition and | implementation', the schema and the code) available for use by | embedding applications, including its source code and | accompanying metadata." However, when I browse to a | "block"/"block package" in the Block Hub[1], I'm presented with a | demo of the "block package" in the form of a concrete "block", a | view of example data being provided to this "block", and a view | of the schema of this "block". However, if this is meant to be a | view of the "block package", shouldn't I also be able to find my | way to the rest of this "block package", i.e. where do I view the | implementation code? The spec says that a block package includes | its source code, and the block hub seems to be a browser of block | packages, but it doesn't give me the full view into said block | packages. Is there a reason for this? Is it on the to-do list? | | 2. What's going on with the type signatures here? I see a lot of | what look like type signatures, in both the spec and the schemas. | In reading the spec, it seems like the type signatures are being | used pretty loosely, maybe as pseudo code of a sort, as I don't | see them being rigorously referred to. For example, I see that in | "Specification > Block Types > Entity type functions"[2] under | `createEntityTypes` it refers to accepting a type of | "CreateEntityTypesAction" (no type signature), but then lower | down it refers to accepting a type of | "CreateEntityTypesAction<T>", but then says that the shape of | that entity is just two hard-coded fields, with no reference to | the generic type "T". What's going on here? Then if I view an | actual block in the Block Hub[1], I see that the schema for that | block also has definitions for entities with some kind of type | signature 'something' going on e.g. "#/definitions/Record<string, | {cellState:UseRowStateLocalState<{},unknown>;}>". Maybe those are | for use with something like TypeScript? I'm not familiar with | TypeScript, so I don't know how to parse those, though I do know | that they're not specifying anything at the level of "JSON | Schema"[3], so I assume they're related to either something in | the spec or something in the implementation, or both. What's | happening here? Are these types in the schema owned by the | implementation (e.g. they're used by the source code of the | implementation for JSX or something?), while the types in the | spec are merely pseudocode? | | If there's already a pattern where additional layers of features | such as typing/templating are being shoved into the schemas of | Blocks, might this make interop between blocks more difficult in | the future? | | [0] - https://blockprotocol.org/spec#terminology | | [1] - https://blockprotocol.org/@hash/table | | [2] - https://blockprotocol.org/spec/block-types#entity-functions | | [3] - https://json-schema.org/ | pjkundert wrote: | Blocks of data and the semantic rules for their creation | (validation), reading, updated and deletion (CRUD), with | composability, versioning and robust APIs? | | That's a pretty succinct description of the Holochain project. | Turns out that it is pretty powerful, once implemented. It isn't | as simple as you might expect... :) | DavidWilkinson wrote: | Except it turns out that blocks and even block protocols were | never actually blocked by the lack of a blockchain ___________________________________________________________________ (page generated 2022-01-27 23:00 UTC)