Offer/Demand & potentialAction -> TradeAction/TransferAction

I struggle to understand how (if) Actions can work together with
Offer/Demand. In particular TradeAction/TransferAction seem to have some
potential to work together with Offer/Demand...

Looking at: Thing > Action > TransferAction > GiveAction
http://schema.org/GiveAction
"The act of transferring ownership of an object to a destination.
Reciprocal of TakeAction."


For example: https://gist.github.com/elf-pavlik/848d332d2259ffe9199e

*Jane Doe gave a Fairphone to elf Pavlik*

{
  "@id": "https://example.net/jane/actions/12345",
  "@type": "GiveAction",
  "recipient": {
    "@id": "https://wwelves.org/perpetual-tripper",
    "@type": "Person",
    "name": "elf Pavlik"
  },
  "agent": {
    "@id": "https://example.net/jane",
    "@type": "Person",
    "name": "Jane Doe"
  },
  "object": {
    "@id": "https://example.net/jane/assets/231231",
    "@type": "IndividualProduct",
    "model": {
      "@id": "http://fairphone.com/v1",
      "@type": "ProductModel",
      "name": "Fairphone V1"
  }
}

To arrive at to this point in real world scenario, I would need to
publish a Demand and/or Jane would need to publish an Offer. At the same
time looking at Actions, using *potentialAction* seems an attractive
option when publishing list of assets:

https://gist.github.com/elf-pavlik/f26562c3c1719bf06273
{
  "@id": "https://example.net/jane/assets/231231",
  "@type": "IndividualProduct",
  "model": {
    "@id": "http://fairphone.com/v1",
    "@type": "ProductModel",
    "name": "Fairphone V1"
  },
  "potentialAction": [
    {
      "@type": "GiveAction",
      "object": "https://example.net/jane/assets/231231"
    },
    {
      "@type": "BorrowAction",
      "object": "https://example.net/jane/assets/231231"
    },swee
    {
      "@type": "UseAction",
      "object": "https://example.net/jane/assets/231231"
    }
  ]
}

I wonder how it could fit with Offer/Demand

{
  "@id": "https://example.net/jane/listings/5939304",
  "@type": "Offer",
  "seller": "https://example.net/jane",
  "itemOffered": {
    "@id": "https://example.net/jane/assets/231231",
    "@type": "IndividualProduct",
    "model": {
      "@id": "http://fairphone.com/v1",
      "@type": "ProductModel",
      "name": "Fairphone V1"
    },
  }
}

schema:TradeAction already enables schema:price (not sure why not
schema:priceSpecification ?) which in a way suggests this possibility:

{
  "@type": ["GiveAction", "Offer"],
  "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"
}

Maybe also Offer/Demand could in a way 'mint' Trade/Transfer Actions...

I try lately to follow developments in Hydra CG[1], now together with
Linked Data Fragments[2]. I see there strong emphasis on Hypermedia
Controls[3] and building around Actions looks like a nice fit[4]

Any thoughts?
:)

[1] http://www.hydra-cg.com/
[2] http://linkeddatafragments.org/
[3] https://sites.google.com/site/restframework/hypermedia-controls
[4] http://www.hydra-cg.com/spec/latest/schema.org/

Received on Wednesday, 2 July 2014 13:51:06 UTC