Re: Offer/Demand & potentialAction -> TradeAction/TransferAction

Hi Sam and thanks for fast reply!

first question bit out of topic, do you have somewhere published HTML
copy of https://www.w3.org/wiki/images/1/10/PotentialActionsApril11.pdf ?

I add few more comments inline.

On 07/02/2014 08:25 PM, Sam Goto wrote:
>     {
>       "@type": ["GiveAction", "Offer"],
> 
> 
> Yeah, the dual typing here was discussed in the past. We run into this
> problem (i.e. a noun that is almost a 1:1 mapping with a verb) in
> multiple occasions. For example: Order vs OrderAction, Reservation vs
> ReserveAction and Review vs ReviewAction.
> 
> We did consider having the verbs inherit from the nouns (e.g.
> ReviewAction inheriting from Review, inheriting all of its properties)
> and sub-property-of the properties of the action types.
> 
> I agree that we don't have yet a clear story on this subject yet.
would you see subtypes of

schema:TransferAction
- schema:GiveAction
- schema:LendAction
schema:TradeAction
- schema:DonateAction
- schema:RentAction
- schema:SellAction

inheriting from schema:Offer ?
and

schema:TransferAction
- schema:TakeAction
- schema:BorrowAction
schema:TradeAction
- schema:BuyAction

inheriting from schema:Demand ?


I also notice:

* schema:GiveAction reciprocalOf schema:TakeAction
* schema:BorrowAction reciprocalOf schema:LendAction
* schema:SellAction reciprocalOf schema:BuyAction

maybe worth introducing schema:reciprocalOf to further formalize it?


no reciprocal:

* schema:RentAction
* schema:DonateAction

not sure how Donate complements Give/Take ?

* schema:TipAction
* schema:PayAction
maybe worth coordinating those two with https://web-payments.org/ ?

>  
> 
>       "object": {
>         "@id": "https://example.net/jane/assets/231231",
>         "@type" "IndividualProduct"
>       },
>       "actionStatus": {"@type": "PotentialActionStatus"},
>       "agent": {
>         "@type": "Person",
>         "@id": "https://example.net/jane",
>         "name": "Jane Doe"
>       }
>     }
> 
>     I like schema:object here which also fits nicer then schema:itemOffered
>     when used in schema:Demand
>     Similar schema:agent provides generic alternative to schema:seller
>     (which I find somehow confusing when used in Demand!)
> 
>     {
>       "@type": ["ReceiveAction", "Demand"],
>       "object": {
>         "@id": "https://example.net/jane/assets/231231",
>         "@type" "IndividualProduct"
>       },
>       "actionStatus": {"@type": "PotentialActionStatus"},
>       "agent": {
>         "@type": "Person",
>         "@id": "https://wwelves.org/perpetual-tripper",
>         "name": "elf Pavlik"
>     }
> 
> 
> There is a notion of "executable" for potential actions that I think
> needs to be present here somehow. That is, while Demand/Offer tells you
> "what" can be done it doesn't tell you the "how" (e.g. hypermedia
> controls). That is, in your examples, I'm missing the "how" to
> complete/execute the potential action, possibly because there isn't a
> "target" associated with the actions. So, for example, the following is
> what I was expecting to find:
> 
> {
>   @type: IndividualProduct,
>   potentialAction: {
>     @type: GiveAction,
>      target: {
>        urlTemplate: "http://example.com/products/123/give",
>        httpMethod: "POST"
>      },
>      recipient: {
>        @type: Person,
>        name-input: "required name='recipient'"
>      }
>   }
> }
>  
> Which would give you the information you need to "execute" a "giving"
> via asking the user who is the "recipient" and making a POST request to
> an EntryPoint.
Yes! Also for some actions service could require authentication and
simple set certain properties only to authenticated 'agent'...

Thinking further in this direction, how would you see
schema:actionStatus changing during such interaction?

In real life more then one person would 'request' certain item offered.
First idea that comes to my mind - my favorite *AssetsManagement* app
would create matching schema:TakeAction and first publish it on my
origin (Personal Cloud) and then post it (already with permanent URI) to
schema:GiveAction EntryPoint (for example with CORS if app runs in a
browser). It would also have nice side effect of both parties having
matching (and cross referenced) records of Give/Take in their 'Sharing
Portfolios' (very important for reputation based currencies). It would
also enable various more sophisticated community processes like: "Who do
you want me to give this item to?" Where people (eg. friends) could up
and down vote matching requests (again thinking here of reputation
currencies / social capital)

Just as I don't know how to link matching schema:Offer and schema:Demand
I don't see obvious way of linking matching Give/Take, Lend/Borrow,
Sell/Buy and other reciprocal actions...

I don't expect replies to all those questions, still any clarifications
very much appreciated :)

Received on Wednesday, 2 July 2014 20:15:18 UTC