The Block-Paved Path to Structured Data - Structur...
# linking-together
m
The Block-Paved Path to Structured Data - Structured Content 2022 by @Maggie Appleton Despite its troubled past, structured and semantic data is actively used and useful across the web today. It improves our search results with rich visual previews. It helps researchers gather raw data for analysis and simulations. The only problem is we don’t have enough of it. The vast majority of data on the web is still unstructured. Without diving headfirst into unrealistic dreams of a fully machine-readable web, we can still seek ways to increase the amount of structured data out there. At HASH, we’re exploring how a relatively new but wildly popular interface pattern could help get us there: block-based editors. From Notion to WordPress Gutenberg, we’ve seen a surge in editing environments that give you a set of modular ‘blocks’ you can combine into rich interactive documents. Then without writing (or even knowing) any code, you can publish them to the open web. Come find out why we believe the path to structured data is paved with these user-friendly blocks.

https://www.youtube.com/watch?v=AHblHPLoKKE

👍🏼 1
👍 4
🤯 1
s
cc @Cole as well I think Hash has a few folks in this Slack!
❤️ 1
v
Very nice, thank you for sharing this. This is one of few projects which seem to have similar direction to what I want to investigate 🙂
m
Thanks for posting @Mariano Guerra ❤️ If anyone prefers pictures + long form text, I have a write-up on the same material here: maggieappleton.com/block-data Also happy to answer Q’s if anything is confusing or merits more discussion
🙏🏼 1
🙏 1
👍 2
e
Great talk Maggie. Didn’t realize you were on this Slack! I DM’d you on Twitter instead
v
I've looked into it a little more and I appreciate the effort to unite blocks. I wanted to ask whether block hub is free but found that it indeed is directly on its page, great 🙂 . I work on backend and frontend stuff is blocking me -- perhaps interfacing with this will be easier than to reinvent the blocks for myself again. Thanks!
e
Awesome! Nice one writing it up too @Maggie Appleton, despite being a good talker/listener, I find it easier to digest these things at my own pace.
1
c
Hi @Maggie Appleton, thanks for the presentation and notes – How is the structured data for blocks actually made available? Presume Notion follows block protocol, loads my data, then renders the blocks – say my page is public, how would a friend then download the structured data? Is it presumed that somewhere in the html is a url to the json file containing the structured data? Or that there are web components rendered with entity data attributes, and those should be consumed? (I think the answer might be neither, since there can be many possible rendering contexts? But then how is the dream of retrieving structured data from the web achieved?) Asking another way, I'm not spotting in https://blockprotocol.org/spec/block-types how entities data can actually be retrieved from a rendered page – any help locating this is appreciated
m
The protocol only defines how a block and an app should communicate, which includes requiring blocks to declare an expected schema. But it doesn’t control whether an app like Notion then translates those schemas into something accessible on the open web like JSON-LD or RDF. The block schemas would make that translation much easier, but the BP itself can’t govern what individual apps choose to do. It only tries to make it easier for them to create and publish structured data through blocks. We’re trying to walk the line between trying encourage block-based apps to lean into structured data (and give them better tools to implement it) but we can’t govern whether they actually take the extra step and semantically mark-up their publishable pages with something like JSON-LD and/or RDF
a
Great presentation! Reading some Block Protocol docs now… a recent conversation here https://futureofcoding.slack.com/archives/CCL5VVBAN/p1654100917645329?thread_ts=1654013227.876789&cid=CCL5VVBAN
A couple of early thoughts: • value types (aka Value Objects in DDD) are often really useful to reduce implementation complexity… They’re struct-ish, not scalar values, but don’t need their own independent identity, as they’re always scoped-to/owned-by an identity-carrying parent entity • entity versioning is pretty much inevitable: ◦ users want to save their work in progress without committing ◦ someone else needs to approve before it goes live ◦ undo ◦ audit …but it can get complex fast, especially when multiple changes need to be rolled out together! A pattern we designed but never implemented, which alleviates some of the pressure to support branch/merge like functionality is here
ID+version tuples can be mapped onto URLs in a straightforward way, especially if you don’t allow entity IDs to contain slashes (or force them to be escaped)… •
<http://example.com/entities/by-type/person/abcd123|example.com/entities/by-type/person/abcd123>
- latest version implicitly •
<http://example.com/entities/by-type/person/abcd123/latest|example.com/entities/by-type/person/abcd123/latest>
- latest version explicitly; perhaps
latest
should be a reserved word, not a valid version? :) •
<http://example.com/entities/by-type/person/abcd123/zyx987|example.com/entities/by-type/person/abcd123/zyx987>
- pinned to version zyx987
k
@Maggie Appleton I really appreciate the slides and transcript at https://maggieappleton.com/block-data. Particularly your definition of blocks:
a single unit of content within a document or canvas that can be flexibly composed and rearranged, has a type that determines how it displays data -- [a type that you can change] while the data inside the block stays the same.
The idiom of the '/' hotkey was also something I hadn't paid attention to before (since I live under my own plain-text-note-based rock and haven't tried out Notion). Slack and Github use '/', but it looks like it's not quite blocks. Do you have any plans to transcribe part 3? I'm going to go scan the video to hear what you say about this image.
"oEmbeds or iframes for CRUD operations" 🤔