The future of the web, isn't the web


My friends, and former employers, at the Government Digital Service have written a spectacularly good blog post "Making GOV.UK more than a website".

In it, they describe how adding Schema.org markup to their website has allowed search engines to extract semantic content and display it to a user. For example, the "Learn to drive" page has content which can appear directly in a search engine:
two screenshots of search results on mobile showing results for 'learn to drive step by step'.

Even better, if you ask Siri / Google / Alexa for something, it can give an answer from an authoritative source:
Amazon Alexa answers the query ‘When’s the next bank holiday’.

This is the death of the web. Long live the web!

Why this is really important

Your information has to be where your users want to access it. Not where you want to display it. I remember sitting in a housing benefits office, watching someone playing on their PlayStation Portable - or so I thought. On closer inspection, she was browsing the GOV.UK web pages to see what the process was for claiming benefits. Web browsers are everywhere!

But the future is not a browser. It is a User-Agent. It could be your search engine, smart watch, voice assistant, or something yet to be invented.

History

The web is great. But its real power was in separating content from design.

  • HTML for your words.
  • CSS for your layout.

That's a good start. But we can go one deeper. Because content isn't HTML.

Your content probably lives in a database. Whether you're running a personal blog, or an ecommerce platform, the content is actually data. You render it as HTML because that's what's easiest for humans to read on a screen.

But... not everyone is able to read a screen. Nor do they always want to.

Do we need to write custom CSS just in case our data is rendered on a smartwatch? Or a TV? Or an Internet Connected Fridge? No! The User-Agent should be able to grab the data and render it appropriately.

At the moment, we're mostly stuck in this paradigm:

Data ➡ HTML ➡ CSS ➡ Browser ➡ 👀

But because our content is just data in a database, we're not restricted to that. It can just as easily be:

Data ➡ Speech Synthesis Markup Language ➡ Alexa ➡ 👂

Too many APIs

And that is what I love about HTML + microdata / Schema. No one is going to use your API - unless you are a megacorp. But if the data is already in your web pages, they don't have to do anything fancy.

No one is ever going to use my blog's API. But your Kindle could come across my web page, and see this recent review - embedded in it is this data:

<script type="application/ld+json">
{
    "@context": "http:\/\/schema.org",
    "@type": "Review",
    "author": {
        "@type": "Person",
        "name": "@edent",
    },
    "itemReviewed": {
        "@type": "Book",
        "name": "This Is How You Lose the Time War",
        "isbn": "9781534431003",
        "author": {
            "@type": "Person",
            "name": "Amal El-Mohtar",
            "sameAs": "https:\/\/www.goodreads.com\/book\/author\/Amal+El-Mohtar"
        },
    },
    "reviewRating": {
        "@type": "Rating",
        "worstRating": 1,
        "bestRating": 5,
        "ratingValue": 5
    }
}
</script>

And - hey presto! - it can find the book via ISBN, show you books by the same author, and display the rating I gave the book. All without needing any fancy AI or Natural Language Processing.

Your smart-fridge can find a recipe and display the steps you need to take in order to prepare the perfect moussaka. You don't need to build an app for Samsung fridges, and another one for Smeg fridges. Just build a website and embed your data in the pages!

The future

So, I hope that the future is more data-in-the-web & more diverse User Agents.

You will have many, many User Agents - your car, your speaker, your microwave - all of them grabbing data on your behalf, rendering it, processing it, giving you information in the format which works best for you.

It will all be powered by the web, but won't be accessed by what you think of as a traditional web browser.


Share this post on…

11 thoughts on “The future of the web, isn't the web”

  1. said on beko.famkos.net:

    I wonder what your opinion on #microformats is 🙂
    Also no API involved but it allows for some fancy stuff.
    [Feel free to remove that manual comment now that you have webmentions] The future of the web, isn’t the web by @edent @edent
    My friends, and former employers, at the Government Digital Service have written a spectacularly good blog post “Making GOV.UK more than a website”.
    In it, they describe how adding Schema.org markup to their website has allowed search engines to extract semantic content and display it to a user. For…

    Reply | Reply to original comment on beko.famkos.net
  2. says:

    I wonder what your opinion on microformats is 🙂

    Also no API involved but it allows for some fancy stuff.

    Reply
  3. said on boffosocko.com:

    Replied to The future of the web, isn't the web by Terence Eden (shkspr.mobi)

    My friends, and former employers, at the Government Digital Service have written a spectacularly good blog post "Making GOV.UK more than a website".
    In it, they describe how adding Schema.org markup to their website has allowed search engines to extract semantic content and display it to a user. For...

    This reminds me of Drew McLellan’s talk from 2006 Can Your Website be Your API? or Jeremy Keith’s slightly more recent talk The Spirit Of The Web from 2012 which I’d listened to recently.
    I like the idea of experimenting into some of these new areas, but I’m worried about who owns some of these gateways and how they treat the data–both from the perspective of the site owners as well as from the users who are encouraged to access data through them. How do our power structures change based these new modalities? Is it responsible?

    Reply | Reply to original comment on boffosocko.com
  4. says:

    Like Beko I think that a better focus would be on the use of microformats, specifically mf2. There are a lot of tools that work with that already (like most IndieWeb things), and plenty of very robust libraries for parsing it. If you really want a JSON-LD blob there are mf2->json converters, and it’s much easier in my experience to integrate mf2 into an existing HTML template.

    Supplying JSON-LD as sidecar data (accessible through an API or whatever) is fine, but this mechanism for providing it inside a script blob is kind of annoying to deal with for both the producer and the consumer.

    Reply

Trackbacks and Pingbacks

  1. Welcome to the last issue of 2020!
    It’s challenging to keep up with so many great articles published every day. With so much going on, this issue is all about the best articles you may have missed this past year.
    We’ve put together a collection of the top must-read articles of 2020!
    From the team at Hacker Bits, we wish you a happy holidays and healthy new year!
    – Ray and Maureen
    Learn more
    How Developers Stop Learning: Rise of the Expert Beginner by Erik Dietrich
    Ask HN: Best books under 200 pages for developers?
    Deep Work and the 30-Hour Method for Learning a New Skill by Maria Markstedter
    Essays on programming I think about a lot by Ben Kuhn
    The Art of Learning for Software Developers by Matthieu Cneude
    Work less
    Career advice for people with bad luck
    Rules of thumb for a 1x developer by Mickey Muldoon
    How a lazy bitch like me learned to be productive by Madison Taskett
    Improving my productivity as a working programmer by Mateus Salvador Alberghini
    Data Structures and Algorithms Actually I Used Working at Tech Companies by Gergely Orosz
    Stay current
    Degoogle: Cutting Google out of your life (updated 2020) by Josh Moore
    Why is Kubernetes getting so popular? by Ricardo Aravena
    Ask HN: Which tools have made you a much better programmer?
    Rust explained using easy English
    The future of the web isn’t the web by Terence Eden
    Tell us what you think. Leave a comment below, email us or find us on Twitter @hackerbits.
    Like what you read?
    Claim your subscription!

    https://z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=3121af6d-2d13-4515-a473-ad002f857a4b

  2. Welcome to issue 50 of Hacker Bits!
    We have a great selection of articles this month covering improving productivity, web scraping, more about clean code, database sharding and so much more!
    As always, please don't hesitate to let us know if you have any suggestions or feedback! 🙂
    Enjoy!
    - Ray and Maureen
    Learn more

    How These Things Work - A book about CS from first principles by Sandy Maguire
    Learn Just a Little Awk by Greg Grothaus
    Event-Driven Architecture by Pradeep Loganathan
    Gears by Bartosz Ciechanowski
    Database sharding explained in plain English by Craig Kerstiens

    Work less

    Minimalism - An undervalued development skill
    Improving my productivity as a working programmer by Mateus Salvador Alberghini
    The Economics of Clean Code by Frederick Vanbrabant
    Code Less, Engineer More by Liz Fong-Jones
    Software is about people, not code by Dan Moore

    Stay current

    Congrats! Web scraping is legal! (US precedent)
    The EARN IT Act: how to ban end-to-end encryption without banning it by Riana Pfefferkorn
    Google is not a search engine, but an ad engine by David Heinemeier Hansson
    The Cowardice of Brave by Matthew Butterick
    The future of the web isn't the web by Terence Eden

    Tell us what you think. Leave a comment below, email us or find us on Twitter @hackerbits.
    Like what you read?
    Claim your subscription!

    https://z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=3121af6d-2d13-4515-a473-ad002f857a4b

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">