- From: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Date: Tue, 16 Sep 2014 15:46:29 +0200
- To: Jason Douglas <jasondouglas@google.com>
- CC: Sam Goto <goto@google.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>
On 09/16/2014 07:26 AM, Jason Douglas wrote:
>
>
> On Mon Sep 15 2014 at 3:57:07 PM ☮ elf Pavlik ☮
> <perpetual-tripper@wwelves.org <mailto:perpetual-tripper@wwelves.org>>
> wrote:
>
> On 09/15/2014 05:59 PM, Jason Douglas wrote:
> > Why is a BookmarkAction directly on a WebPage insufficient? What
> > properties would Bookmark add?
>
> I don't see that much of a problem with
>
> WebPage --{potentialAction}--> BookmarkAction
>
> GET http://example.net
> {
> "@id": "http://example.net",
> "@type": "WebPage",
> ...
> "potentialAction": {
> "@type": "BookmarkAction",
> "actionStatus": "PotentialActionStatus"
> }
> }
>
> even that IMO it doesn't make that much sense to announce such a
> common/basic Affordance...
>
>
> Now let's say I performed this action and the app of my choice, which i
> used to perform it, created first of all a resource which I consider a
> Bookmark, but also persisted an Action (one taken by me!) itself to show
> it in a stream of my activities
>
> GET https://wwelves.org/perpetual-__tripper/bookmarks/dfaf8a0fd9
> <https://wwelves.org/perpetual-tripper/bookmarks/dfaf8a0fd9>
> {
> "@id":
> "https://wwelves.org/__perpetual-tripper/bookmarks/__dfaf8a0fd9
> <https://wwelves.org/perpetual-tripper/bookmarks/dfaf8a0fd9>",
> "@type": "Bookmark",
> "about": "http://example.net",
> "@reverse": {
> "result": {
> "@id":
> https://wwelves.org/perpetual-__tripper/activities/s0dfa091
> <https://wwelves.org/perpetual-tripper/activities/s0dfa091>",
> "@type": "BookmarkAction"
> }
> }
> }
>
> GET https://wwelves.org/perpetual-__tripper/activities/s0dfa091
> <https://wwelves.org/perpetual-tripper/activities/s0dfa091>
> {
> "@id": https://wwelves.org/perpetual-__tripper/activities/s0dfa091
> <https://wwelves.org/perpetual-tripper/activities/s0dfa091>",
> "@type": "BookmarkAction",
> "object": "http://example.net",
> "actionStatus": "CompletedActionStatus",
> "startTime": "2014-01-04T10:30:00+01:00",
> "endTime": "2014-01-04T10:30:00+01:00",
> "result":
> "https://wwelves.org/__perpetual-tripper/bookmarks/__dfaf8a0fd9
> <https://wwelves.org/perpetual-tripper/bookmarks/dfaf8a0fd9>"
> }
>
> In this case all 3 resources do (or can) reference each other
>
> Bookmark --{about}--> WebPage
> Bookmark <--{result}-- BookmarkAction // note *inverse*
>
> BookmarkAction --{object}--> WebPage
> BookmarkAction --{result}--> Bookmark
>
>
> And with some kind of pingback/trackback mechanism in place a webpage
> could also aggregate information about people bookmarking it:
>
> WebPage <--{about}-- [Bookmark] // i use [] to suggest *collection* of
> resources
>
>
> *possibly confusing part*
>
> WebPage --{potentialAction}--> BookmarkAction
>
> Action(potential) != Action(completed).
>
> I see Action(potential) acting as *sort of a template* from which
> everyone performing this action can create copies of it to persist and
> publish Action(completed) as a *distinct resource*!
>
>
> Yup, that was the intent. That's part of why we created urlTemplate as
> a separate property from url (which sometimes gets used as @id).
I understand you refer to
Action --{target}--> EntryPoint --{urlTemplate}--> Text
where Text: "An url template (RFC6570) that will be used to construct
the target of the execution of the action."
Looking at JSON-LD example from http://schema.org/EntryPoint
{
"@context": "http://schema.org",
"@type": "Restaurant",
"name": "Tartine Bakery",
"potentialAction": {
"@type": "ViewAction",
"target": [
"http://www.urbanspoon.com/r/6/92204",
{
"@type": "EntryPoint",
"urlTemplate": "http://api.urbanspoon.com/r/6/92204",
"contentType": "application/json+ld"
},
...
}
}
}
I could store and publish this as completed action in my social web
profile as:
{
"@context": "http://schema.org",
"@id": "https://wwelves.org/perpetual-tripper/activities/dfa8da9f8af",
"@type": "ViewAction",
"actionStatus": "CompletedActionStatus",
"startTime": "2017-01-04T10:30:00+01:00",
"endTime": "2017-01-04T10:32:15+01:00",
"object": {
"@id": "http://www.urbanspoon.com/r/6/92204",
"@type": "WebPage",
"name": "Tartine Bakery | Urbanspoon profile"
"about": {
"@id": "http://tartinebakery.tld",
"@type": "Restaurant",
"name": "Tartine Bakery"
}
}
}
Does it look like following the schema:Action design for cases with
Action --{actionStatus}--> CompleatedActionStatus ?
How can I also store which compleated Action --{target}--> EntryPoint I
used? Using blank node for an EntryPoint can make it harder to refer to it..
I let myself modify this example here a little to distinguish Restaurant
from WebPage with its profile on Urbanspoon.
Restaurant - http://tartinebakery.tld
WebPage - http://www.urbanspoon.com/r/6/92204
I View-ed in this case a WebPage about Restaurant, not the physical
Restaurant itself (more prominent for schema:TouristAttraction)
BTW on W3C Social WG list we currently discuss as:Activity ||
schema:Action and observed that some of schema:Action subtypes describe
affordances of *web resources* while other ones of *abstract things*. I
just used same example there:
http://lists.w3.org/Archives/Public/public-socialweb/2014Sep/0053.html
Cheers!
Received on Tuesday, 16 September 2014 13:48:50 UTC