- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Mon, 16 Oct 2017 21:26:07 +0200
- To: <public-hydra@w3.org>
The minutes from this week's telecon are now available at
http://www.hydra-cg.com/minutes/2017-10-16/
The full text of the discussion is below, including a link to the audio
transcript.
-------------------------------------------------------------------
Hydra W3C Community Group Telecon Minutes for 2017-10-16
Agenda:
https://www.w3.org/community/hydra/wiki/Conference_Calls
Topics:
1. CreateAction with HTTP PUT
Action Items:
1. Tomasz to extend use case 5 to include all issues discussed
today
Chair:
Markus Lanthaler
Scribe:
Markus Lanthaler
Present:
Markus Lanthaler, elf Pavlik, Tomasz Pluskiewicz, Karol
Szczepański
Audio:
http://www.hydra-cg.org/minutes/2017-10-16/audio.mp3
Markus Lanthaler is scribing.
Markus Lanthaler: Is there anything we should add to the agenda
apart from the issues Pavlik sent out?
elf Pavlik: Karol's PR
Topic: CreateAction with HTTP PUT
https://github.com/HydraCG/Specifications/issues/141
elf Pavlik: we approached this from two difficult use cases
... adding members to collections
... and creating resources
... it seems either way we will need IriTemplates
elf Pavlik:
https://github.com/HydraCG/Specifications/issues/141#issuecomment-336670989
elf Pavlik: if we use CreateAction it could be both POST or PUT
... it would look pretty much the same if we would have a way
to attach a "target template"
... telling the client how to construct the URL
Tomasz Pluskiewicz: we already have a similar functionality with
templates and links
elf Pavlik: comment trying to follow hydra:search approach
https://github.com/HydraCG/Specifications/issues/3#issuecomment-336635276
Karol Szczepański: indeed my latest PR is quite similar to
Pavlik's snippet
... I think hydra:search is a link. It is not clear to me if we
can use this pattern for this as well
elf Pavlik: we could also change hydra:search to SearchAction
and have that operation point to a IRI template
Tomasz Pluskiewicz: { "create_user": { "@type": "IriTemplate",
"operation": { "expects": "NewUser" } } }
Markus Lanthaler: when I designed Hydra the intent was to have
IriTemplate work pretty much work like a "abstract"
hydra:Resource
... once the variables in the template are replaced, it would
work the same
elf Pavlik: does this mean we need to describe things
differently based on their HTTP method
Markus Lanthaler: { "@type": "IriTemplate", "template":
"whatever?{var}", "mappings": [..], "operation": { "@type":
"CreateAction", "expects": "NewUser", ... } } }
Karol Szczepański: I'm experiencing connection issues :(
http://schema.org/Action
elf Pavlik: right, so if I would like to describe how to add
something to a collection with a PUT, how would I point to the
IRI template?
Markus Lanthaler: that's indeed undefined at the moment
... Schema.org has things like instrument, agent, object etc.
to describe some of these relationships
elf Pavlik: I used action to describe this on GitHub
elf Pavlik:
https://github.com/HydraCG/Specifications/issues/141#issuecomment-336670989
Tomasz Pluskiewicz: I think we are overthinking this
... we could leverage the follow your nose principle and let
the user decide
... how we could tell a client the consequence of an operation
beforehand is an open problem though
... maybe not as important though unless we want to target
machine to machine communication
... in general though I agree that an extension on collections
would be nice
elf Pavlik: if we would like to describe an HTTP request for a
resource directly, we would use hydra:operation or its inverse
hydra:target
... if the client needs to send the HTTP request to a different
resource to affect the current one, we could use hydra:action as
proposed in
https://github.com/HydraCG/Specifications/issues/141#issuecomment-336670989
Markus Lanthaler: So, what you propose is to introduce an
additional property "hydra:action" whose semantics are "there's
an operation that affects *this* resource but needs to be send to
a *different* URL (specified with hydra:operation or
hydra:target)"
Karol Szczepański: could we make the method determine which
resource the request should go to?
Tomasz Pluskiewicz: if you look at Pavlik's example they are
uniform
Tomasz Pluskiewicz: actually, I meant the snippets in IRC. above
Karol Szczepański: am I correct that you are making a
distinction between an action and an operation?
elf Pavlik: kind of, action is just a connection to a different
resource
Karol Szczepański: so PUT would go to action, POST would go to
operation
elf Pavlik: I'd actually think the other way round
Karol Szczepański: ok, right, so the other way round
Tomasz Pluskiewicz: o_0
Markus Lanthaler: Let's take this back to GitHub
elf Pavlik: q?
Karol Szczepański: Pavlik, your snippet has targetTemplate. Is
this something you created?
elf Pavlik: yeah, they are just proposals
Karol Szczepański: "action": { "@type": ["hydra:Operation",
"schema:CreateAction", "hydra:IriTemplate"],
Karol Szczepański: what would it mean if action is simultanously
an operation and an IRI template?
elf Pavlik: we shouldn't conflate operations and resources
... and the way Markus described IriTemplates as "abstract
resources" think describes well that we shouldn't conflate them
Tomasz Pluskiewicz: I wouldn't like to see them conflated either
... I'll rewrite Pavlik's snippet to how Markus described it
elf Pavlik: there's the third option which is how it is in the
PR
... let the HTTP method decide
Markus Lanthaler: I think that would be too restrictive.. a POST
could need to go to a different URL as well, not just a PUT
... Let's spend a few more cycles on GitHub and discuss it
again next time
... The next topic would be "Adding already existing resources
as collection members", as it's highly related I'd propose to
table that as it is highly related unless someone disagrees
Karol Szczepański: I touched on that in my PR but I had to use
workaround as we miss IRI templates
... https://github.com/HydraCG/Heracles.ts/pull/18
Karol Szczepański: don't hesitate to comment on the PR, it was
created for that exact purpose
Markus Lanthaler:
https://github.com/HydraCG/Specifications/issues/118
... The next topic is also highly related "Specifying
operations on TemplatedLink objects", PR 118
... The last topic "Should we introduce a property to associate
operations and their target directly to an entity?" is also about
the same thing
... https://github.com/HydraCG/Specifications/issues/3
Tomasz Pluskiewicz: do we have a volunteer to create use cases
for these?
elf Pavlik: do you think we need use cases? Creating events with
POST and PUT should already address them
Tomasz Pluskiewicz: maybe I can extend use case 5
... maybe we conflate to connected but different matters
... one is operations on IriTemplates
... the other one is a PUT (which is a specialization of the
other)
ACTION: Tomasz to extend use case 5 to include all issues discussed today
Karol Szczepański: I have a question about Prettier
... how is it configured
... writing a for loop in three lines instead of one breaks my
heart
Markus Lanthaler: Is it because the line is getting too long?
... https://github.com/prettier/prettier#configuration-file
Markus Lanthaler: it's pretty opinionated so not highly
configurable
... please file an issue to discuss some specific examples
... it shouldn't get in the way of getting work done
elf Pavlik: markus comment re action vs. operation
https://github.com/HydraCG/Specifications/issues/3#issuecomment-268809248
Tomasz Pluskiewicz: I'd like to raise my concern about using
action and operation
... it's confusing to use these two very similar terms
... and it will be hard to know when to use which
Received on Monday, 16 October 2017 19:26:34 UTC