An updated draft of the schema.org/Actions proposal!

Hey all,

  Lots of threads/issues were closed recently, so I figure it was about
time to put out a new
draft<https://www.w3.org/wiki/images/2/25/Schemaorg-actions-draft5.pdf>(commentable
version<https://docs.google.com/document/d/1JDD8kOsSoe2BrQVCm1t2cmcGGlj0gwcvOHfWmXTBndM/edit#>)
that
expressed our latest thinking.

  We don't think this is rock solid yet, but we wanted to give you an
update on the progress we made recently as well as encourage you to keep
sending your thoughts on the challenges that we still face.

  Here are the main deltas from our last draft:

   - Thing.operation resource
model<http://schema-drafts.appspot.com/Thing?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
   - Usage of Collections <http://schema.org/ItemList>
   - MS Windows
Handlers<http://schema-drafts.appspot.com/WindowsHandler?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
   - expects<http://schema-drafts.appspot.com/Action?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>

   You'll find that while the vocabulary spec hasn't changed much, it is a
lot clearer how to express things like "Netflix can stream movies" now
(which we used to call the "action -> resource problem").

   The notion of Collections solves a wide set of problems, such as
searching for restaurant reservations or creating restaurant orders.

    Here is what the actions launched with gmail would look like with our
revisited model:

   - Watching Movies<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/movies/123>
    (old<https://developers.google.com/gmail/actions/reference/go-to-action>
   )
   - Tracking ParcelDelivery<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/deliveries/123>
    (old<https://developers.google.com/gmail/actions/reference/go-to-action>
   )
   - Saving an Offer<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/offers/123>
    (old<https://developers.google.com/gmail/actions/reference/one-click-action>
   )
   - Reviewing Products<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/products/123>
    (old<https://developers.google.com/gmail/actions/reference/review-action>
   )
   - RSVP-ing to
Events<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/events/123>
    (old <https://developers.google.com/gmail/actions/reference/rsvp-action>
   )

    Along with the new draft, we've created a number of different resources
to inform our design and help explain the basic concepts. We've created:

   - a set of demos<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to>
that
   cover most of the use cases we discussed as a group. here are some of the
   most interesting ones:
   - Checking-into a
Flight<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/airlines/123/flights/123>
      - Booking a
Taxi<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/taxistands/123>
      - Reserving Restaurants
tables<http://code.sgo.to/crawler/yaap.html#url=http://code.sgo.to/restaurants/123>
   - a presentation<https://docs.google.com/a/google.com/presentation/d/1tBA8jw4UQDl-areLdJaSGcf3KWEVcTuXPaRm6HNiSEc/present#slide=id.p>
with
   a basic set of use cases walk through
   - this <https://plus.google.com/+SamuelGoto> is me on google+, where
   I'll try to post<http://blog.sgo.to/2014/02/a-proposal-for-schema-org-actions.html>more
frequently about actions and the thought process

   I broke down the spec in two parts:

   - Basic concepts:
Thing.operation<http://schema-drafts.appspot.com/operation?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>,
   statuzes<http://schema-drafts.appspot.com/ActionStatus?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
    and handlers<http://schema-drafts.appspot.com/ActionHandler?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
   - Advanced concepts:
HttpHandler<http://schema-drafts.appspot.com/HttpHandler?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
   , SupportedClass<http://schema-drafts.appspot.com/SupportedClass?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
    and expects<http://schema-drafts.appspot.com/expects?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>

   I think things are looking fairly solid on the Basic concepts (which
actually solve a wide variety of problems). There are still challenges on
the Advanced Concepts, and that's where I'm focusing most of my energy
lately.
   The most challenging part of what's ahead from a vocabulary perspective
is how to express
expects<http://schema-drafts.appspot.com/expects?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>,
with SupportedClass<http://schema-drafts.appspot.com/SupportedClass?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>
being
our current best proposal (which we are not super happy with yet).
   The other challenging part that I've been working on is a formalization
of the protocol of handlers, specifically
HttpHandler<http://schema-drafts.appspot.com/HttpHandler?draft=http://sgo.to/src/proposals/actions-draft5.0.txt>.
Gmail got something
started<https://developers.google.com/gmail/actions/actions/handling-action-requests>,
but we need to do a better job understanding how things like
authentication/authorization will work, sitemaps vs markup vs JSON-LD,
error handling, caching, etc. WebFormHandler isn't well formed either, so
we need to work on that.
   So, do expect me to follow up on these two open questions as my next
steps.

    We've integrated some of the ideas from the Hydra
model<http://hydra-cg.com/spec/latest/schema.org/>. Markus
has been super constructive and we got really good ideas from our
interactions. Thanks Markus!

   Lastly, huge shout out to Jason Johnson who who came up with really
tough questions/solutions in this new draft and met with me on a daily
basis for the last couple of months to help us sort this out! He even wrote his
own understanding<https://docs.google.com/document/d/1ROF0zrxTXrX2M3-_PknUMMq1jd1Mbo8myplc5hVOp4g/edit>
of
the spec, which is a great read of the spec from a different perspective.

   Thanks, Sam

Received on Tuesday, 4 February 2014 01:31:56 UTC