Re: representing hypermedia controls in RDF

2013-11-28 Thread Ruben Verborgh
Hi Gannon,

[Sorry for the delay, your mail accidentally skipped my inbox!]

 My question can be rephrased thus:  Does the theoretical size of the  target 
 audience for a distributed affordance matter ?

The audience size doesn't matter, as each user has personal preferences.
The idea is that the client has an extra piece of intelligence that adds the 
actions the user cares about.
For instance, if you prefer to see movies in a certain theatre and always buy 
books through Barnes  Noble,
then you will bookmark those actions.
When your client (browser) then arrives on a page with a movie or book,
it will automatically insert links to buy tickets for that theatre or order 
through Barnes  Noble,
instead of suggesting Netflix, Amazon or iTunes.

As the processing happens on the client side, we can scale without impacting 
the infrastructure.

 It seems to me that distributed entails that one size fits does not fit all 
 clients, that constrains the Open World …

Exactly! But this is why the client performs the adaptation: it's personalized 
and scalable in the number of clients.

Is this the answer you're looking for?
Additionally, the diagram in 
http://ruben.verborgh.org/publications/verborgh_wsrest_2013/ might clarify 
things.

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-26 Thread Kingsley Idehen

On 11/25/13 6:47 PM, mike amundsen wrote:
snipI still believe that one can talk about REST concepts accurately 
and fluently without the word Affordance ./snip


and who said it could not? why are you saying this kind of stuff here?


As you can see from the recent exchange between Ruben and I, this isn't 
as obvious as you assume. My fundamental goal is simply to be clear 
about the use of Affordance with regards to REST narratives -- for 
myself, and hopefully others.




if you don't want to use this word, don't. are you trying to tell me i 
cannot use it?


I was trying to determine if this word is indeed immutable with regards 
to REST. Anyway, now that this matter is cleared up, I think we can move 
on to others tasks such as harmonizing REST and Linked Data [1] :-)


[1] http://www.w3.org/community/hydra/ .


Kingsley




mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mamund


On Mon, Nov 25, 2013 at 6:20 PM, Kingsley Idehen 
kide...@openlinksw.com mailto:kide...@openlinksw.com wrote:


On 11/25/13 5:03 PM, Ruben Verborgh wrote:

Hi Kingsley

Note, Affordance doesn't show up in any of the standard
dictionaries I have access to. That said, it does have a
Wiktionary entry [1], but that particular definition
doesn't actually make a case for it being immutable or
devoid of an alternative :-)

Norman's The Design of Everyday Things describes the word
nicely.

In case it is of any help, my understanding of the word
affordance is based on the verb:
- a URL enables addressing a resource = the URL is an enabler;
- the link affords going to the resource = the link is an
affordance.

Best,

Ruben




Which can also read as follows, without any loss of meaning:

- a URL enables resource naming = a URL is an identifier since it
enables resource denotation (naming);
- the link facilitates resource retrieval = the link is a
*facilitator* .

I still believe that one can talk about REST concepts accurately
and fluently without the word Affordance .

[1] http://www.merriam-webster.com/dictionary/facilitator .



-- 


Regards,

Kingsley Idehen
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
http://www.openlinksw.com/blog/%7Ekidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen









--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen






smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-25 Thread Ruben Verborgh
Hi Kingsley,

 Are words such as enables , facilitates etc.. so bad that we can no 
 longer make statements like:
 
 a/ enables name to address indirection in HTML via URIs? Basically, that it 
 enables exploitation URI serve dually as a document name and a content access 
 address i.e., a hyperlink. 
 
 Would REST be less useful if the word affordance wasn't engrained in its 
 narrative? 

In my talks, I say that enabling is stronger than affording.
You can visit the page without the link, that's enabled by the server. (E.g., 
you can copy/paste a URI in to the address bar.)
However, the link affords it: it has an actionable property that lets you do it 
directly (even though you could do it without).

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-25 Thread Kingsley Idehen

On 11/25/13 8:22 AM, Ruben Verborgh wrote:

Hi Kingsley,


Are words such as enables , facilitates etc.. so bad that we can no longer 
make statements like:

a/ enables name to address indirection in HTML via URIs? Basically, that it 
enables exploitation URI serve dually as a document name and a content access address 
i.e., a hyperlink.

Would REST be less useful if the word affordance wasn't engrained in its 
narrative?

In my talks, I say that enabling is stronger than affording.
You can visit the page without the link, that's enabled by the server. (E.g., 
you can copy/paste a URI in to the address bar.)
However, the link affords it: it has an actionable property that lets you do it 
directly (even though you could do it without).

Best,

Ruben



Ruben,

Do you have a link to the talk in question?

--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-25 Thread Ruben Verborgh
Hi Kingsley,

 In my talks, I say that enabling is stronger than affording.

 Do you have a link to the talk in question?

Well, it's something I always mention verbally, so enabling will not be on 
the slides.

Nevertheless, here's a presentation on it for a wide audience:
http://www.slideshare.net/RubenVerborgh/the-web-a-hypermedia-story
On slides 41–46, I explain Fielding's definition of hypermedia,
with slides 44–46 specifically focusing on affordance.

And here are slides for my research project Distributed Affordance (what's in 
a name),
which explains the topic in a similar way on slides 7–18:
http://www.slideshare.net/RubenVerborgh/distributed-affordance-21175728

Affordance is in my opinion the crucial word that defines the REST 
architectural style,
as its loose conversational coupling is only possible because representations 
_afford_ subsequent actions;
RPC-style interactions just _enable_ those actions.

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-25 Thread Kingsley Idehen

On 11/25/13 2:33 PM, Ruben Verborgh wrote:

Hi Kingsley,


In my talks, I say that enabling is stronger than affording.

Do you have a link to the talk in question?

Well, it's something I always mention verbally, so enabling will not be on 
the slides.

Nevertheless, here's a presentation on it for a wide audience:
http://www.slideshare.net/RubenVerborgh/the-web-a-hypermedia-story
On slides 41–46, I explain Fielding's definition of hypermedia,
with slides 44–46 specifically focusing on affordance.

And here are slides for my research project Distributed Affordance (what's in 
a name),
which explains the topic in a similar way on slides 7–18:
http://www.slideshare.net/RubenVerborgh/distributed-affordance-21175728

Affordance is in my opinion the crucial word that defines the REST 
architectural style,
as its loose conversational coupling is only possible because representations 
_afford_ subsequent actions;
RPC-style interactions just _enable_ those actions.

Best,

Ruben



I will digest you presentation, and then comment afterwards (*more than 
likely off-list*) on the word Affordance and whether it is immutable 
with regards to REST oriented narratives. Note, Affordance doesn't 
show up in any of the standard dictionaries I have access to. That said, 
it does have a Wiktionary entry [1], but that particular definition 
doesn't actually make a case for it being immutable or devoid of an 
alternative :-)


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-25 Thread Gannon Dick
Hi Ruben,

I haven't been able to pull up your distributed affordance presentation but 
had a general question:

Are you thinking in terms of IPv4 or IPv6 ?
I think it makes a difference, since the Loop Back address space in IPv4 
(16,777,214) puts ca. 425 people (of about 7,126,653,500 people, today, US 
Census Estimate) on one anonymous node.  IPv6 is much different, but it seems 
to me 425 people sharing a party line is much different communication than 
private.  Is privacy dead because we ran out of virtual mail boxes ? Yikes.

--Gannon

On Mon, 11/25/13, Ruben Verborgh ruben.verbo...@ugent.be wrote:

 Subject: Re: representing hypermedia controls in RDF
 To: Kingsley Idehen kide...@openlinksw.com
 Cc: public-lod Data public-lod@w3.org
 Date: Monday, November 25, 2013, 1:33 PM
 
 Hi Kingsley,
 
  In my talks, I say that enabling is stronger than
 affording.
 
  Do you have a link to the talk in question?
 
 Well, it's something I always mention verbally, so
 enabling will not be on the slides.
 
 Nevertheless, here's a presentation on it for a wide
 audience:
 http://www.slideshare.net/RubenVerborgh/the-web-a-hypermedia-story
 On slides 41–46, I explain Fielding's definition of
 hypermedia,
 with slides 44–46 specifically focusing on affordance.
 
 And here are slides for my research project Distributed
 Affordance (what's in a name),
 which explains the topic in a similar way on slides 7–18:
 http://www.slideshare.net/RubenVerborgh/distributed-affordance-21175728
 
 Affordance is in my opinion the crucial word that defines
 the REST architectural style,
 as its loose conversational coupling is only possible
 because representations _afford_ subsequent actions;
 RPC-style interactions just _enable_ those actions.
 
 Best,
 
 Ruben




Re: representing hypermedia controls in RDF

2013-11-25 Thread Ruben Verborgh
Hi Kingsley

 Note, Affordance doesn't show up in any of the standard dictionaries I have 
 access to. That said, it does have a Wiktionary entry [1], but that 
 particular definition doesn't actually make a case for it being immutable or 
 devoid of an alternative :-)

Norman's The Design of Everyday Things describes the word nicely.

In case it is of any help, my understanding of the word affordance is based 
on the verb:
- a URL enables addressing a resource = the URL is an enabler;
- the link affords going to the resource = the link is an affordance.

Best,

Ruben




Re: representing hypermedia controls in RDF

2013-11-25 Thread Ruben Verborgh
Hi Gannon,

 Are you thinking in terms of IPv4 or IPv6 ?

I'm sorry but I lost you here… how can I IPv4/6 relate to this?

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-25 Thread mike amundsen
http://en.wikipedia.org/wiki/Affordance

mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mamund


On Mon, Nov 25, 2013 at 5:03 PM, Ruben Verborgh ruben.verbo...@ugent.bewrote:

 Hi Kingsley

  Note, Affordance doesn't show up in any of the standard dictionaries I
 have access to. That said, it does have a Wiktionary entry [1], but that
 particular definition doesn't actually make a case for it being immutable
 or devoid of an alternative :-)

 Norman's The Design of Everyday Things describes the word nicely.

 In case it is of any help, my understanding of the word affordance is
 based on the verb:
 - a URL enables addressing a resource = the URL is an enabler;
 - the link affords going to the resource = the link is an affordance.

 Best,

 Ruben





Re: representing hypermedia controls in RDF

2013-11-25 Thread Gannon Dick
I did see the presentation.  Apparently Dr. Hausenblas may have warned you 
about me too late :-)

My question can be rephrased thus:  Does the theoretical size of the  target 
audience for a distributed affordance matter ?  In IPv4, the target audience 
would be a community with a population of about 425.  In IPv6, probably much 
less than one (although I've not calculated it).  It seems to me that 
distributed entails that one size fits does not fit all clients, that 
constrains the Open World ... so, it would be very hard to tell if the concept 
and architecture are in operation.  Maybe TBL needs a 6th Star.

On Mon, 11/25/13, Ruben Verborgh ruben.verbo...@ugent.be wrote:

 Subject: Re: representing hypermedia controls in RDF
 To: Gannon Dick gannon_d...@yahoo.com
 Cc: public-lod Data public-lod@w3.org
 Date: Monday, November 25, 2013, 4:05 PM
 
 Hi Gannon,
 
  Are you thinking in terms of IPv4 or IPv6 ?
 
 I'm sorry but I lost you here… how can I IPv4/6 relate to
 this?
 
 Best,
 
 Ruben




Re: representing hypermedia controls in RDF

2013-11-25 Thread Kingsley Idehen

On 11/25/13 5:03 PM, Ruben Verborgh wrote:

Hi Kingsley


Note, Affordance doesn't show up in any of the standard dictionaries I have 
access to. That said, it does have a Wiktionary entry [1], but that particular definition 
doesn't actually make a case for it being immutable or devoid of an alternative :-)

Norman's The Design of Everyday Things describes the word nicely.

In case it is of any help, my understanding of the word affordance is based 
on the verb:
- a URL enables addressing a resource = the URL is an enabler;
- the link affords going to the resource = the link is an affordance.

Best,

Ruben





Which can also read as follows, without any loss of meaning:

- a URL enables resource naming = a URL is an identifier since it enables 
resource denotation (naming);
- the link facilitates resource retrieval = the link is a *facilitator* .

I still believe that one can talk about REST concepts accurately and fluently without the 
word Affordance .

[1] http://www.merriam-webster.com/dictionary/facilitator .


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-25 Thread mike amundsen
snipI still believe that one can talk about REST concepts accurately and
fluently without the word Affordance ./snip

and who said it could not? why are you saying this kind of stuff here?

if you don't want to use this word, don't. are you trying to tell me i
cannot use it?



mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mamund


On Mon, Nov 25, 2013 at 6:20 PM, Kingsley Idehen kide...@openlinksw.comwrote:

 On 11/25/13 5:03 PM, Ruben Verborgh wrote:

 Hi Kingsley

  Note, Affordance doesn't show up in any of the standard dictionaries I
 have access to. That said, it does have a Wiktionary entry [1], but that
 particular definition doesn't actually make a case for it being immutable
 or devoid of an alternative :-)

 Norman's The Design of Everyday Things describes the word nicely.

 In case it is of any help, my understanding of the word affordance is
 based on the verb:
 - a URL enables addressing a resource = the URL is an enabler;
 - the link affords going to the resource = the link is an affordance.

 Best,

 Ruben




 Which can also read as follows, without any loss of meaning:

 - a URL enables resource naming = a URL is an identifier since it enables
 resource denotation (naming);
 - the link facilitates resource retrieval = the link is a *facilitator* .

 I still believe that one can talk about REST concepts accurately and
 fluently without the word Affordance .

 [1] http://www.merriam-webster.com/dictionary/facilitator .



 --

 Regards,

 Kingsley Idehen
 Founder  CEO
 OpenLink Software
 Company Web: http://www.openlinksw.com
 Personal Weblog: http://www.openlinksw.com/blog/~kidehen
 Twitter Profile: https://twitter.com/kidehen
 Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
 LinkedIn Profile: http://www.linkedin.com/in/kidehen








Re: representing hypermedia controls in RDF

2013-11-23 Thread Mark Baker
On Thu, Nov 21, 2013 at 1:01 PM, Markus Lanthaler
markus.lantha...@gmx.net wrote:
 +public-hydra

 On Thursday, November 21, 2013 5:11 PM, Mark Baker wrote:
 Cool. Very similar to RDF Forms in important ways, though I think RDF
 Forms internalizes some useful features that Hydra could benefit from;
 stripping out information that isn't required (or isn't an
 optimization) for a state transition, e.g. DeleteResourceOperation.

 Right, we already discussed removing all those prefided *ResourceOperations.
 The only reason I included them in the first place was to bootstrap the
 system so that developers could build simple CRUD-based systems without
 having to define these things themselves. This is ISSUE-5 [1] btw. :-)

Yep, I started down that path too. Then I had to use it :)


 PUT should also be usable without any required parameterization,

 Not so convinced about that..

It's a relatively minor point, but the idea there is that the common
case will involve retrieving a representation, modifying it, then
PUTting it back. Obviously the media type of initially retrieved
representation is all you need in that case. Not to suggest it's the
only case, though, so I'm all for non-authoritative optimizations.

 though declaring an accepted media type (something that seems to be
 missing from hydra)

 Right.. Hydra currently assumes the client uses the media type it used to
 retrieve the API documentation or the entry point for its requests. This
 leaves binaries out, I know. It isn't currently specified but I think that
 could be handled by specific classes together with hydra:expects as well.

I haven't quite figured out hydra:expects. The examples show that it's
something other than a media type, and moreover, something (e.g.
comment) which I'd normally use a predicate/rel for.

 can be considered an optimization. And POST can be
 used for much more than creation, so I think CreateResourceOperation
 is a misnomer (or else overly specific).

 Of course.. that's the whole reason that Operations thing exists in the
 first place. But it isn't Hydra's job to define them. Concrete APIs will
 create their own by subclassing Operation (or one of the three others unless
 we remove it).

Ok.



 Also, the next version of RDF Forms has been sitting in my head for a
 few years after collecting a little bit of experience with the current
 version. One of the big changes I would make is to go fully predicate
 based rather than class based simply because I expect it would be more
 flexible and also fit better into, e.g. HTML or the Link header. So if
 I had a POST-accepting resource, instead of this:

 http://example.org/res1 a hydra:CreateResourceOperation .

 I'd go with;

  hydra:sink http://example.org/res1 .

 (yah, that example represents at least 3 improvements I'd suggest for
 the language - sorry if it's too dense)

 Indeed. I don't understand that example at all. Could you explain it a bit
 more in detail?

Well, the most important difference is the use of the predicate. The
intent there is that if you consider the two resources in play - the
one containing the form/affordances, and the one receiving the data
that results from the form being used - then they share a generic
relationship which can be called a sink, aka The second resource
acts as a sink for data that emerges as a result of the affordances in
the first being followed. So sink is 1-to-1 with HTTP POST, and
would of course require additional parameterization, but that's the
gist. For documents containing multiple forms, I guess you'd want a
subject that wasn't the document itself, but some identifier for the
form; and you'd also need that same id to hook the parameters to, obv.

 [1] https://github.com/HydraCG/Specifications/issues/5

We may or may not need one depending how we connect parameterization
to operations after the required decisions surrounding them have been
mode. Obviously we need to support parameterized GET requests though.

And FWIW, I don't like the Link construct. If the publisher doesn't
want me to crawl some particular subset of their URI space, they
should describe that space in robots.txt.



RE: representing hypermedia controls in RDF

2013-11-22 Thread Markus Lanthaler
On Thursday, November 21, 2013 10:43 PM, Kingsley Idehen wrote:
 On 11/21/13 4:18 PM, Markus Lanthaler wrote:
  Anyway, do you have a URL for a Turtle doc?
  No, as I said, at the moment I don't serve a Turtle version. Of
 course you
  can use a translator to turn the JSON-LD into Turtle (but you know
 that)..
  here's a link
 
  http://bit.ly/hydra-core-ttl
 
  just in case.
 
 As I said, in a related post, let's not inadvertently introduce problems
 for existing Linked Data tools. JSON-LD and TURTLE is much better than
 JSON-LD only. Thus, all you have to do is incorporate the URL above
 into the doc that's currently missing said reference :-)

Done.

Cheers,
Markus


--
Markus Lanthaler
@markuslanthaler


smime.p7s
Description: S/MIME cryptographic signature


Re: representing hypermedia controls in RDF

2013-11-22 Thread Martynas Jusevičius
Markus,

in the Linked Data context, what is the difference between
identifier and hyperlink? Last time I checked, URIs were opaque
and there was no such distinction.

Martynas

On Thu, Nov 21, 2013 at 6:43 PM, Markus Lanthaler
markus.lantha...@gmx.net wrote:
 +public-hydra since there are a couple of things which we should look at
 there as well

 On Thursday, November 21, 2013 3:03 PM, Ruben Verborgh wrote:
  - representing hyperlinks in RDF (in addition to subject/object
URLs)
 
  hydra:Resource along with hydra:Link covers that:
  http://bit.ly/1b9IK32

 And it does it the way I like: resource-oriented!

 Yet, the semantic gap I need to bridge is on the level of predicates.
 None of the Hydra properties [1] have hydra:Link as range or domain.
 So how to connect a link to a resource?

 Right, nothing has hydra:Link as range because it's a specialization of
 rdf:Property. The range would need to be hydra:Resource.

 Typically you would define your link relations, aka predicates, to express
 the semantic relationship between the two resources. If you want such a
 predicate to become a hypermedia affordance, you type it as hydra:Link
 instead of rdf:Property:

   vocab:homepage a hydra:Link .

   a vocab:homepage b

 That way even clients that know nothing about vocab:homepage will be able to
 find out that it is a link relation and that b is expected to be
 dereferenceable. The spec doesn't include any entailments yet (to not scare
 too many people away at this stage) but they would be

   xxx a hydra:Link .
   aaa xxx bbb .

   == bbb a hydra:Resource .


 More or less like:
 a
 href=http://en.wikipedia.org/wiki/Daft_Punk;http://dbpedia.org/resour
 ce/Daft_Punk/a
 On the human Web, we do this all the time:
 a href=http://en.wikipedia.org/wiki/Daft_Punk;Daft Punk/a
 The difference of course with the Semantic Web is that the identifiers
 need to be URIs, not labels.

 Right. Hydra provides a framework to define such things. It (currently)
 doesn't define a predicate for untyped hyperlinks because I believe they
 generally don't make much sense in a m2m context. Nevertheless, it may make
 sense to define something for very simple use case (crawlers) or to be able
 to express, e.g., links extracted from a HTML page.

 I raised ISSUE-15 [1] to keep track of this.


 I guess a seeAlso would do, (but then again, seeAlso probably applies
 to anything):
 dbpedia:Daft_Punk rdfs:seeAlso wikipedia:Daft_Punk.

 However, I really want something stronger here.
 But perhaps usual hyperlinks are not interesting enough,
 as they can actually be represented as predicates (= typed links):

 dbpedia:Daft_Punk :hasArticle wikipedia:Daft_Punk.

 Right, but nothing here tell's you whether wikipedia:Daft_Punk is just an
 identifier or a hyperlink. If you type wikipedia:Daft_Punk as hydra:Resource
 or :hasArticle as hydra:Link it becomes explicit.



  - representing URI templates [2]
  It's covered by hydra:IriTemplate: http://bit.ly/1e2z2NW

 Now this case is much more interesting than simple links :-)

 Same semantic problem for me though:
 what predicates do I use to connect them to my resource?
 For instance:

 /users :membersHaveTemplate :UsersTemplate.
 :UsersTemplate a hydra:IriTemplate;
  hydra:template /users/{userid}.

 Well, same thing in principle

   :membersHaveTemplate a hydra:TemplatedLink .

 Of course Hydra can't know what :membersHaveTemplate really *means*, i.e.,
 in which relationship the two resource stand. It just allows you to tell a
 client that it's values are link templates and that you can use them to
 construct URLs which lead you to things that are of type hydra:Resource


 So what I actually need is the equivalent of hydra:members,
 but then with a template as range.
 Should we discuss take this to the Hydra list? I'd be interested!

 Definitely.. I already CCed public-hydra. We should move the discussion
 there as it is quite specific to hydra.


 (Also, have you considered hydra:template's range as something more
 specific than xsd:string?)

 No, I'm not aware of any type representing RFC6570 IRI templates and didn't
 see the need to complicate Hydra by defining one :-)


  - representing forms (in the HTML sense)
  In Hydra this is done by a combination of hydra:Operation,
 hydra:expects and
  hydra:supportedProperties, see http://bit.ly/17t9ecB

 I like example 10 in that regard, but I'm stuck at predicates again:
 how to connect the Link to the resource it applies to?

 I'm not sure I understand your question. Example 10 defines the property
 http://api.example.com/doc/#comments You can then simply use it in your data

   @prefix api: http://api.example.com/doc/# .

   / api:comments /comments/ .

 The client can lookup what api:comments is. It will find out that it is a
 hydra:Link, so it represents a hyperlink. Furthermore, it will see that it
 can create new comments by POSTing a api:Comment to /comments/.

 Have you seen the issue tracker demo on my homepage?

 

Re: representing hypermedia controls in RDF

2013-11-22 Thread Martynas Jusevičius
Hey Ruben,

regarding RFC6570, I'm not planning to adopt it, since the
specification is better suited for building URIs, not matching them
(1.4 Limitations): In general, regular expression languages are
better suited for variable matching
I'm using JAX-RS syntax since it can be used for matching and
building, and has utility classes that help you do that.

I don't like how Linked Data API uses endpoints either. I reuse
api:ListEndpoint in some of Graphity ontologies, but give it no
special meaning. If I understand right what you want, I am using SIOC
to define the parent/child relationship between resources (which is
usually represented by a slash in the URI):
http://rdfs.org/sioc/spec/#term_Container

In your case, it could be:

/topics a sioc:Container .
/topics/Global_Warming sioc:has_space /topics .

Cheers,

Martynas
graphityhq.com

On Wed, Nov 20, 2013 at 4:52 PM, Ruben Verborgh ruben.verbo...@ugent.be wrote:
 Hi Martynas,

 - URI templates: Linked Data API vocabulary
 https://code.google.com/p/linked-data-api/wiki/API_Vocabulary

 Cool, I do like that. Have you thought about extending to RFC6570?
 Do you know about usage of this vocabulary?

 The one thing that I like less is the notion of endpoints.
 While this is perfect for SPARQL, which is indeed an endpoint
 or “data-handling process” that expects a “block of data” [1],
 it does not work well in resource-oriented environments.

 I’m looking for predicates that work with groups of resource, such as:
 /topics/Global_Warming :belongsTo /topics.
 /topics a :ResourceList;
   api:itemTemplate /topics/{topicID}.
 That is, I don't consider there to be a topics endpoint;
 instead, there is a topics resource which lists several topics,
 and individual topics can be accessed by ID.
 The reason I would still need the template is because /topics/ is not 
 exhaustive,
 and new elements can be created by following the template.
 This would be equivalent to a HTML GET form.

 - HTML forms: RDF/POST encoding http://www.lsrn.org/semweb/rdfpost.html

 Interesting, thanks!

 Best,

 Ruben

 [1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5



RE: representing hypermedia controls in RDF

2013-11-22 Thread Markus Lanthaler
Hi Martynas,

On Friday, November 22, 2013 3:12 PM, Martynas Jusevičius wrote:
 Markus,
 
 in the Linked Data context, what is the difference between
 identifier and hyperlink? Last time I checked, URIs were opaque
 and there was no such distinction.

These things quickly turn into philosophical discussions but simply speaking
the difference lies in the expectations of a client. In XML for example,
namespaces are just identifiers. There's no expectation that you can go and
dereference that namespace identifier (even though in most cases they use
HTTP URIs). The same is true about RDF. All URIs are just identifiers. From
an RDF point of view, there's no difference between isbn:343-224122 and
http://example.com/343-224122. As you say, they are opaque.

But if you build applications, it is important to distinguish between
identifiers and hyperlinks. A browser for example doesn't render the string
http://example.com/343-224122 as a clickable link unless you mark it up as
one using the a tag.

Linked Data advocates that all URIs are dereferenceable. But that's
communicated out of band. Apart from JSON-LD, which states that URIs SHOULD
be dereferenceable, no other RDF media type makes such a statement. Thus you
need to use constructs such as hydra:Link and hydra:Resource to make the
distinction explicit.

Hope this helps. If not, let me know.


--
Markus Lanthaler
@markuslanthaler




Re: representing hypermedia controls in RDF

2013-11-22 Thread mike amundsen
snip
A browser for example doesn't render the string
http://example.com/343-224122 as a clickable link unless you mark it up as one
using the a tag.
/snip

Yep, the A element is the thing that _affords_ clicking. it is the A
element which is the affordance.

Affordances don't just supply addresses, they supply information about what
you can _do_ with that address (navigate, transclude, send arguments, write
data, remove data, etc.). The appearance of a URL alone provides very
little affordance.

For example:
- http://example.com/x
- http://example.com/y
one of the two URLs points to a blog page to which the user can navigate,
the other points to a logo which should be displayed inline. which is which?

Now this:
- a href=...blog/a
- img href=...  /
one of the two URLs points to a blog page, the other points to a logo.
which is which?

Note it is not the URL that provides the information (which is for
navigation, which is for transclusion), but the element in which the URL
appears. The element is the affordance. These are HTML affordances. There
are a couple more hypermedia affordances in HTML. Other message models
(media types) contain their own affordances.

It is the appearance of affordances within the response representation that
is a key characteristic of hypermedia messages.



mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mamund


On Fri, Nov 22, 2013 at 10:13 AM, Markus Lanthaler markus.lantha...@gmx.net
 wrote:

 Hi Martynas,

 On Friday, November 22, 2013 3:12 PM, Martynas Jusevičius wrote:
  Markus,
 
  in the Linked Data context, what is the difference between
  identifier and hyperlink? Last time I checked, URIs were opaque
  and there was no such distinction.

 These things quickly turn into philosophical discussions but simply
 speaking
 the difference lies in the expectations of a client. In XML for example,
 namespaces are just identifiers. There's no expectation that you can go and
 dereference that namespace identifier (even though in most cases they use
 HTTP URIs). The same is true about RDF. All URIs are just identifiers. From
 an RDF point of view, there's no difference between isbn:343-224122 and
 http://example.com/343-224122. As you say, they are opaque.

 But if you build applications, it is important to distinguish between
 identifiers and hyperlinks. A browser for example doesn't render the string
 http://example.com/343-224122 as a clickable link unless you mark it up as
 one using the a tag.

 Linked Data advocates that all URIs are dereferenceable. But that's
 communicated out of band. Apart from JSON-LD, which states that URIs SHOULD
 be dereferenceable, no other RDF media type makes such a statement. Thus
 you
 need to use constructs such as hydra:Link and hydra:Resource to make the
 distinction explicit.

 Hope this helps. If not, let me know.


 --
 Markus Lanthaler
 @markuslanthaler





Re: representing hypermedia controls in RDF

2013-11-22 Thread Martynas Jusevičius
Mike,

so if RDF representation includes a triple such as

  http://example.com/x a foaf:Image .

is that an affordance? Because that gives me enough information to
render it as img src=http://example.com/x/.

By the way, nothing stops me from having a href=isbn:343-224122
either. It will probably be clickable, but won't work.

Martynas

On Fri, Nov 22, 2013 at 4:42 PM, mike amundsen mam...@yahoo.com wrote:
 snip
 A browser for example doesn't render the string
 http://example.com/343-224122 as a clickable link unless you mark it up as
 one using the a tag.
 /snip

 Yep, the A element is the thing that _affords_ clicking. it is the A element
 which is the affordance.

 Affordances don't just supply addresses, they supply information about what
 you can _do_ with that address (navigate, transclude, send arguments, write
 data, remove data, etc.). The appearance of a URL alone provides very little
 affordance.

 For example:
 - http://example.com/x
 - http://example.com/y
 one of the two URLs points to a blog page to which the user can navigate,
 the other points to a logo which should be displayed inline. which is which?

 Now this:
 - a href=...blog/a
 - img href=...  /
 one of the two URLs points to a blog page, the other points to a logo. which
 is which?

 Note it is not the URL that provides the information (which is for
 navigation, which is for transclusion), but the element in which the URL
 appears. The element is the affordance. These are HTML affordances. There
 are a couple more hypermedia affordances in HTML. Other message models
 (media types) contain their own affordances.

 It is the appearance of affordances within the response representation that
 is a key characteristic of hypermedia messages.



 mamund
 +1.859.757.1449
 skype: mca.amundsen
 http://amundsen.com/blog/
 http://twitter.com/mamund
 https://github.com/mamund
 http://www.linkedin.com/in/mamund


 On Fri, Nov 22, 2013 at 10:13 AM, Markus Lanthaler
 markus.lantha...@gmx.net wrote:

 Hi Martynas,

 On Friday, November 22, 2013 3:12 PM, Martynas Jusevičius wrote:
  Markus,
 
  in the Linked Data context, what is the difference between
  identifier and hyperlink? Last time I checked, URIs were opaque
  and there was no such distinction.

 These things quickly turn into philosophical discussions but simply
 speaking
 the difference lies in the expectations of a client. In XML for example,
 namespaces are just identifiers. There's no expectation that you can go
 and
 dereference that namespace identifier (even though in most cases they use
 HTTP URIs). The same is true about RDF. All URIs are just identifiers.
 From
 an RDF point of view, there's no difference between isbn:343-224122 and
 http://example.com/343-224122. As you say, they are opaque.

 But if you build applications, it is important to distinguish between
 identifiers and hyperlinks. A browser for example doesn't render the
 string
 http://example.com/343-224122 as a clickable link unless you mark it up as
 one using the a tag.

 Linked Data advocates that all URIs are dereferenceable. But that's
 communicated out of band. Apart from JSON-LD, which states that URIs
 SHOULD
 be dereferenceable, no other RDF media type makes such a statement. Thus
 you
 need to use constructs such as hydra:Link and hydra:Resource to make the
 distinction explicit.

 Hope this helps. If not, let me know.


 --
 Markus Lanthaler
 @markuslanthaler






Fwd: representing hypermedia controls in RDF

2013-11-22 Thread mike amundsen
again - to the list!


Yes,

http://example.com/x a foaf:Image .

is an affordance.

of course, that affordance (like HTML.IMG) relies a number of expectations
which most all of us recognize when we see it.

From the network perspective, the expectations are (to keep it simple):
- this is a safe[1] and idempotent[2] operation
- an image media type to be returned.

From the client application perspective, the expectations are:
- use an HTTP.GET when executing this operation
- take the results of the locator and transclude it into the existing view

if any these expectations are not fulfilled, the affordance is usually
considered broken (the network failed) or mis-used (the client did
something else).

snip
By the way, nothing stops me from having a href=isbn:343-224122 either.
It will probably be clickable, but won't work.
/snip
I would restate this as it is *possible* to have... since there is,
actually something that stops you - the expectations of so many others who
recognize this affordance.

Think of the HTML.A as a door in a room. If i go up to a door, turn the
handle, and nothing happens (I don't navigate to a new room), I consider
the door broken or (as Donald Norman might say) that the door is lying to
me. If I encounter a home where many of the doors act in this unexpected
way, I find the experience off-putting. I might even judge the architect
incompetent to, at the least, perverse.

Now consider a hypermedia representation where many of the affordances are
either not working as expected (as in your case) or are actually
inscrutable to me; ones that just don't tell me enough to be usable.

There is an advantage to using affordances in that they offer a shared
understanding without the need for narrative or instructions. That's why we
can drive most vehicles if we've already learned to drive one. Why we can
operate most telephones, etc.  Devices that have unfamiliar or
 counter-intuitive affordances are frustrating and, in some rare cases, can
be dangerous.



[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1
[2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.2


mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mamund


On Fri, Nov 22, 2013 at 12:16 PM, Martynas Jusevičius marty...@graphity.org
 wrote:

 Mike,

 so if RDF representation includes a triple such as

   http://example.com/x a foaf:Image .

 is that an affordance? Because that gives me enough information to
 render it as img src=http://example.com/x/.

 By the way, nothing stops me from having a href=isbn:343-224122
 either. It will probably be clickable, but won't work.

 Martynas

 On Fri, Nov 22, 2013 at 4:42 PM, mike amundsen mam...@yahoo.com wrote:
  snip
  A browser for example doesn't render the string
  http://example.com/343-224122 as a clickable link unless you mark it up
 as
  one using the a tag.
  /snip
 
  Yep, the A element is the thing that _affords_ clicking. it is the A
 element
  which is the affordance.
 
  Affordances don't just supply addresses, they supply information about
 what
  you can _do_ with that address (navigate, transclude, send arguments,
 write
  data, remove data, etc.). The appearance of a URL alone provides very
 little
  affordance.
 
  For example:
  - http://example.com/x
  - http://example.com/y
  one of the two URLs points to a blog page to which the user can navigate,
  the other points to a logo which should be displayed inline. which is
 which?
 
  Now this:
  - a href=...blog/a
  - img href=...  /
  one of the two URLs points to a blog page, the other points to a logo.
 which
  is which?
 
  Note it is not the URL that provides the information (which is for
  navigation, which is for transclusion), but the element in which the URL
  appears. The element is the affordance. These are HTML affordances. There
  are a couple more hypermedia affordances in HTML. Other message models
  (media types) contain their own affordances.
 
  It is the appearance of affordances within the response representation
 that
  is a key characteristic of hypermedia messages.
 
 
 
  mamund
  +1.859.757.1449
  skype: mca.amundsen
  http://amundsen.com/blog/
  http://twitter.com/mamund
  https://github.com/mamund
  http://www.linkedin.com/in/mamund
 
 
  On Fri, Nov 22, 2013 at 10:13 AM, Markus Lanthaler
  markus.lantha...@gmx.net wrote:
 
  Hi Martynas,
 
  On Friday, November 22, 2013 3:12 PM, Martynas Jusevičius wrote:
   Markus,
  
   in the Linked Data context, what is the difference between
   identifier and hyperlink? Last time I checked, URIs were opaque
   and there was no such distinction.
 
  These things quickly turn into philosophical discussions but simply
  speaking
  the difference lies in the expectations of a client. In XML for example,
  namespaces are just identifiers. There's no expectation that you can go
  

Re: representing hypermedia controls in RDF

2013-11-22 Thread mike amundsen
sigh... copying to the list this time.

On Fri, Nov 22, 2013 at 1:10 PM, mike amundsen mam...@yahoo.com wrote:

 yep. In past writing/speaking I've drawn a line from James Gibson through
 Donald Norman and up to Roy Fielding[1]


 [1] http://amundsen.com/blog/archives/1109

 mamund
 +1.859.757.1449
 skype: mca.amundsen
 http://amundsen.com/blog/
 http://twitter.com/mamund
 https://github.com/mamund
 http://www.linkedin.com/in/mamund


 On Fri, Nov 22, 2013 at 12:40 PM, Pat Hayes pha...@ihmc.us wrote:


 On Nov 22, 2013, at 9:42 AM, mike amundsen mam...@yahoo.com wrote:

  snip
  A browser for example doesn't render the string
 http://example.com/343-224122 as a clickable link unless you mark it up
 as one using the a tag.
  /snip
 
  Yep, the A element is the thing that _affords_ clicking. it is the A
 element which is the affordance.

 Just out of interest, as you using affordance in the same sense that it
 is used in ecological pyschology? (
 http://en.wikipedia.org/wiki/Affordance)

 Pat Hayes

 
  Affordances don't just supply addresses, they supply information about
 what you can _do_ with that address (navigate, transclude, send arguments,
 write data, remove data, etc.). The appearance of a URL alone provides very
 little affordance.
 
  For example:
  - http://example.com/x
  - http://example.com/y
  one of the two URLs points to a blog page to which the user can
 navigate, the other points to a logo which should be displayed inline.
 which is which?
 
  Now this:
  - a href=...blog/a
  - img href=...  /
  one of the two URLs points to a blog page, the other points to a logo.
 which is which?
 
  Note it is not the URL that provides the information (which is for
 navigation, which is for transclusion), but the element in which the URL
 appears. The element is the affordance. These are HTML affordances. There
 are a couple more hypermedia affordances in HTML. Other message models
 (media types) contain their own affordances.
 
  It is the appearance of affordances within the response representation
 that is a key characteristic of hypermedia messages.
 
 
 
  mamund
  +1.859.757.1449
  skype: mca.amundsen
  http://amundsen.com/blog/
  http://twitter.com/mamund
  https://github.com/mamund
  http://www.linkedin.com/in/mamund
 
 
  On Fri, Nov 22, 2013 at 10:13 AM, Markus Lanthaler 
 markus.lantha...@gmx.net wrote:
  Hi Martynas,
 
  On Friday, November 22, 2013 3:12 PM, Martynas Jusevičius wrote:
   Markus,
  
   in the Linked Data context, what is the difference between
   identifier and hyperlink? Last time I checked, URIs were opaque
   and there was no such distinction.
 
  These things quickly turn into philosophical discussions but simply
 speaking
  the difference lies in the expectations of a client. In XML for example,
  namespaces are just identifiers. There's no expectation that you can go
 and
  dereference that namespace identifier (even though in most cases they
 use
  HTTP URIs). The same is true about RDF. All URIs are just identifiers.
 From
  an RDF point of view, there's no difference between isbn:343-224122 and
  http://example.com/343-224122. As you say, they are opaque.
 
  But if you build applications, it is important to distinguish between
  identifiers and hyperlinks. A browser for example doesn't render the
 string
  http://example.com/343-224122 as a clickable link unless you mark it
 up as
  one using the a tag.
 
  Linked Data advocates that all URIs are dereferenceable. But that's
  communicated out of band. Apart from JSON-LD, which states that URIs
 SHOULD
  be dereferenceable, no other RDF media type makes such a statement.
 Thus you
  need to use constructs such as hydra:Link and hydra:Resource to make the
  distinction explicit.
 
  Hope this helps. If not, let me know.
 
 
  --
  Markus Lanthaler
  @markuslanthaler
 
 
 

 
 IHMC (850)434 8903 home
 40 South Alcaniz St.(850)202 4416   office
 Pensacola(850)202 4440   fax
 FL 32502  (850)291 0667   mobile (preferred)
 pha...@ihmc.us   http://www.ihmc.us/users/phayes










Re: representing hypermedia controls in RDF

2013-11-22 Thread Kingsley Idehen

On 11/22/13 3:10 PM, mike amundsen wrote:

sigh... copying to the list this time.

On Fri, Nov 22, 2013 at 1:10 PM, mike amundsen mam...@yahoo.com 
mailto:mam...@yahoo.com wrote:


yep. In past writing/speaking I've drawn a line from James Gibson
through Donald Norman and up to Roy Fielding[1]


[1] http://amundsen.com/blog/archives/1109

Are words such as enables , facilitates etc.. so bad that we can no 
longer make statements like:


a/ enables name to address indirection in HTML via URIs? Basically, 
that it enables exploitation URI serve dually as a document name and a 
content access address i.e., a hyperlink.


Would REST be less useful if the word affordance wasn't engrained in 
its narrative?


[1] http://bit.ly/15tk1Au -- hash based URIs that denote things 
unambiguously while also making full use of HTTP URI duality
[2] http://bit.ly/17RQQXX -- name resolution, data source names, and 
networks.


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen






smime.p7s
Description: S/MIME Cryptographic Signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
Hi Ruben,

You probably already expected me asking this :-) Why not Hydra [1]?

On Wed, 20 Nov 2013 11:23:08 +, Ruben Verborgh wrote:
 Do we have other approaches besides RDF Forms [1] to represent
  hypermedia controls in RDF?

 Basically, I'm looking for any of the following:
 - representing hyperlinks in RDF (in addition to subject/object URLs)

hydra:Resource along with hydra:Link covers that: http://bit.ly/1b9IK32


 - representing URI templates [2]

It's covered by hydra:IriTemplate: http://bit.ly/1e2z2NW


 - representing forms (in the HTML sense)

In Hydra this is done by a combination of hydra:Operation, hydra:expects and
hydra:supportedProperties, see http://bit.ly/17t9ecB


Btw. for those who don't know, there's a W3C Community Group working on
Hydra [2]. Feel free to join at any time if you are interested in this
stuff.


Cheers,
Markus


[1] http://www.markus-lanthaler.com/hydra/
[2] http://www.w3.org/community/hydra/


--
Markus Lanthaler
@markuslanthaler




Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 6:14 AM, Markus Lanthaler wrote:

Hi Ruben,

You probably already expected me asking this :-) Why not Hydra [1]?

On Wed, 20 Nov 2013 11:23:08 +, Ruben Verborgh wrote:

Do we have other approaches besides RDF Forms [1] to represent
  hypermedia controls in RDF?

Basically, I'm looking for any of the following:
- representing hyperlinks in RDF (in addition to subject/object URLs)

hydra:Resource along with hydra:Link covers that: http://bit.ly/1b9IK32



- representing URI templates [2]

It's covered by hydra:IriTemplate: http://bit.ly/1e2z2NW



- representing forms (in the HTML sense)

In Hydra this is done by a combination of hydra:Operation, hydra:expects and
hydra:supportedProperties, see http://bit.ly/17t9ecB


Btw. for those who don't know, there's a W3C Community Group working on
Hydra [2]. Feel free to join at any time if you are interested in this
stuff.


Cheers,
Markus


[1] http://www.markus-lanthaler.com/hydra/
[2] http://www.w3.org/community/hydra/


--
Markus Lanthaler
@markuslanthaler





Markus,

Is there a JSON-LD or Turtle version of this vocabulary?

--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
On Thursday, November 21, 2013 5:06 PM, Kingsley Idehen wrote:
 On 11/21/13 7:33 AM, Markus Lanthaler wrote:
  Sure.. it's included at the end of the spec [1 above] and also available
   as standalone JSON-LD file:
 
http://purl.org/hydra/core

 Note, there's a content negotiation problem here, as shown by:

 curl -ILH Accept: text/turtle  http://purl.org/hydra/core
 HTTP/1.1 302 Moved Temporarily
 Date: Thu, 21 Nov 2013 16:04:32 GMT
 Server: 1060 NetKernel v3.3 - Powered by Jetty
 Location: http://www.markus-lanthaler.com/hydra/core
 Content-Type: text/html; charset=iso-8859-1

Yeah I don't have control over purl so it will return text/html by default
to render the redirect message

 X-Purl: 2.0; http://localhost:8080
 Expires: Thu, 01 Jan 1970 00:00:00 GMT
 Content-Length: 275

 HTTP/1.1 200 OK
 Server: cloudflare-nginx
 Date: Thu, 21 Nov 2013 16:04:33 GMT
 Content-Type: application/ld+json

All fine at my end though so everything should work. Or did I miss
something? Please note that there's no turtle serialization available atm so
I return JSON-LD instead.



--
Markus Lanthaler
@markuslanthaler


smime.p7s
Description: S/MIME cryptographic signature


Re: representing hypermedia controls in RDF

2013-11-21 Thread Ruben Verborgh
Hi Markus,

 You probably already expected me asking this :-) Why not Hydra [1]?

Ah, there you are! Welcome ;-)

 - representing hyperlinks in RDF (in addition to subject/object URLs)
 hydra:Resource along with hydra:Link covers that: http://bit.ly/1b9IK32

And it does it the way I like: resource-oriented!

Yet, the semantic gap I need to bridge is on the level of predicates.
None of the Hydra properties [1] have hydra:Link as range or domain.
So how to connect a link to a resource?

More or less like:
a 
href=http://en.wikipedia.org/wiki/Daft_Punk;http://dbpedia.org/resource/Daft_Punk/a
On the human Web, we do this all the time:
a href=http://en.wikipedia.org/wiki/Daft_Punk;Daft Punk/a
The difference of course with the Semantic Web is that the identifiers need to 
be URIs, not labels.

I guess a seeAlso would do, (but then again, seeAlso probably applies to 
anything):
dbpedia:Daft_Punk rdfs:seeAlso wikipedia:Daft_Punk.

However, I really want something stronger here.
But perhaps usual hyperlinks are not interesting enough,
as they can actually be represented as predicates (= typed links):

dbpedia:Daft_Punk :hasArticle wikipedia:Daft_Punk.

 - representing URI templates [2]
 It's covered by hydra:IriTemplate: http://bit.ly/1e2z2NW

Now this case is much more interesting than simple links :-)

Same semantic problem for me though:
what predicates do I use to connect them to my resource?
For instance:

/users :membersHaveTemplate :UsersTemplate.
:UsersTemplate a hydra:IriTemplate;
 hydra:template /users/{userid}.

So what I actually need is the equivalent of hydra:members,
but then with a template as range.
Should we discuss take this to the Hydra list? I'd be interested!
(Also, have you considered hydra:template's range as something more specific 
than xsd:string?)

 - representing forms (in the HTML sense)
 In Hydra this is done by a combination of hydra:Operation, hydra:expects and
 hydra:supportedProperties, see http://bit.ly/17t9ecB

I like example 10 in that regard, but I'm stuck at predicates again:
how to connect the Link to the resource it applies to?

 Btw. for those who don't know, there's a W3C Community Group working on Hydra 
 [2].

I should be more active there. Perhaps this is a starting point!

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-21 Thread Ruben Verborgh
 Server: cloudflare-nginx
 All fine at my end though so everything should work.

Not sure if it's of any help, but CloudFlare doesn't do content negotiation;
i.e., as soon as one representation is cached, it always serves that one,
regardless of any Accept headers sent by subsequent clients.
(And I'd be happy if somebody knew a free cache service that does it right.)

Ruben



Re: representing hypermedia controls in RDF

2013-11-21 Thread Mark Baker
On Thu, Nov 21, 2013 at 6:14 AM, Markus Lanthaler
markus.lantha...@gmx.net wrote:
 Hi Ruben,

 You probably already expected me asking this :-) Why not Hydra [1]?

Cool. Very similar to RDF Forms in important ways, though I think RDF
Forms internalizes some useful features that Hydra could benefit from;
stripping out information that isn't required (or isn't an
optimization) for a state transition, e.g. DeleteResourceOperation.
PUT should also be usable without any required parameterization,
though declaring an accepted media type (something that seems to be
missing from hydra) can be considered an optimization. And POST can be
used for much more than creation, so I think CreateResourceOperation
is a misnomer (or else overly specific).

Also, the next version of RDF Forms has been sitting in my head for a
few years after collecting a little bit of experience with the current
version. One of the big changes I would make is to go fully predicate
based rather than class based simply because I expect it would be more
flexible and also fit better into, e.g. HTML or the Link header. So if
I had a POST-accepting resource, instead of this:

http://example.org/res1 a hydra:CreateResourceOperation .

I'd go with;

 hydra:sink http://example.org/res1 .

(yah, that example represents at least 3 improvements I'd suggest for
the language - sorry if it's too dense)

I have some other thought similar to Ruben's too. But I've gone ahead
and joined the group, and once I'm caught up on the discussion to
date, we can discuss this further over there.



RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
On Thursday, November 21, 2013 9:22 PM, Kingsley Idehen wrote:
 On 11/21/13 2:00 PM, Markus Lanthaler wrote:
  On Thursday, November 21, 2013 7:34 PM, Kingsley Idehen wrote:
  But I am looking for Turtle, hence:
 
  curl -ILH Accept: text/turtlehttp://purl.org/hydra/core
 
  :-)
  Sure.. but the server is still free to return an alternative media type
if
  it is unable to obey to the Accept header.
 
 Well it has an HTTP 406 for communicating that back to the client i.e.,
 being a little more helpful :-)

Not sure this is more helpful.. it introduces an additional RTT in the best
case. In the worst case the interaction stops there.

 Anyway, do you have a URL for a Turtle doc?

No, as I said, at the moment I don't serve a Turtle version. Of course you
can use a translator to turn the JSON-LD into Turtle (but you know that)..
here's a link

   http://bit.ly/hydra-core-ttl

just in case.


--
Markus Lanthaler
@markuslanthaler


smime.p7s
Description: S/MIME cryptographic signature


Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 1:01 PM, Markus Lanthaler wrote:

Awesome! Welcome on board:-)


[1]https://github.com/HydraCG/Specifications/issues/5


SeeAlso: 
http://linkeddata.uriburner.com/about/id/entity/https/github.com/HydraCG/Specifications/issues 
-- Linked Data URI for Hydra Issues on Github.


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
+public-hydra since there are a couple of things which we should look at
there as well

On Thursday, November 21, 2013 3:03 PM, Ruben Verborgh wrote:
  - representing hyperlinks in RDF (in addition to subject/object
URLs)
 
  hydra:Resource along with hydra:Link covers that:
  http://bit.ly/1b9IK32
 
 And it does it the way I like: resource-oriented!
 
 Yet, the semantic gap I need to bridge is on the level of predicates.
 None of the Hydra properties [1] have hydra:Link as range or domain.
 So how to connect a link to a resource?

Right, nothing has hydra:Link as range because it's a specialization of
rdf:Property. The range would need to be hydra:Resource.

Typically you would define your link relations, aka predicates, to express
the semantic relationship between the two resources. If you want such a
predicate to become a hypermedia affordance, you type it as hydra:Link
instead of rdf:Property:

  vocab:homepage a hydra:Link .

  a vocab:homepage b

That way even clients that know nothing about vocab:homepage will be able to
find out that it is a link relation and that b is expected to be
dereferenceable. The spec doesn't include any entailments yet (to not scare
too many people away at this stage) but they would be

  xxx a hydra:Link .
  aaa xxx bbb .

  == bbb a hydra:Resource .


 More or less like:
 a
 href=http://en.wikipedia.org/wiki/Daft_Punk;http://dbpedia.org/resour
 ce/Daft_Punk/a
 On the human Web, we do this all the time:
 a href=http://en.wikipedia.org/wiki/Daft_Punk;Daft Punk/a
 The difference of course with the Semantic Web is that the identifiers
 need to be URIs, not labels.

Right. Hydra provides a framework to define such things. It (currently)
doesn't define a predicate for untyped hyperlinks because I believe they
generally don't make much sense in a m2m context. Nevertheless, it may make
sense to define something for very simple use case (crawlers) or to be able
to express, e.g., links extracted from a HTML page.

I raised ISSUE-15 [1] to keep track of this.


 I guess a seeAlso would do, (but then again, seeAlso probably applies
 to anything):
 dbpedia:Daft_Punk rdfs:seeAlso wikipedia:Daft_Punk.
 
 However, I really want something stronger here.
 But perhaps usual hyperlinks are not interesting enough,
 as they can actually be represented as predicates (= typed links):
 
 dbpedia:Daft_Punk :hasArticle wikipedia:Daft_Punk.

Right, but nothing here tell's you whether wikipedia:Daft_Punk is just an
identifier or a hyperlink. If you type wikipedia:Daft_Punk as hydra:Resource
or :hasArticle as hydra:Link it becomes explicit.



  - representing URI templates [2]
  It's covered by hydra:IriTemplate: http://bit.ly/1e2z2NW
 
 Now this case is much more interesting than simple links :-)
 
 Same semantic problem for me though:
 what predicates do I use to connect them to my resource?
 For instance:
 
 /users :membersHaveTemplate :UsersTemplate.
 :UsersTemplate a hydra:IriTemplate;
  hydra:template /users/{userid}.

Well, same thing in principle

  :membersHaveTemplate a hydra:TemplatedLink .

Of course Hydra can't know what :membersHaveTemplate really *means*, i.e.,
in which relationship the two resource stand. It just allows you to tell a
client that it's values are link templates and that you can use them to
construct URLs which lead you to things that are of type hydra:Resource


 So what I actually need is the equivalent of hydra:members,
 but then with a template as range.
 Should we discuss take this to the Hydra list? I'd be interested!

Definitely.. I already CCed public-hydra. We should move the discussion
there as it is quite specific to hydra.


 (Also, have you considered hydra:template's range as something more
 specific than xsd:string?)

No, I'm not aware of any type representing RFC6570 IRI templates and didn't
see the need to complicate Hydra by defining one :-)


  - representing forms (in the HTML sense)
  In Hydra this is done by a combination of hydra:Operation,
 hydra:expects and
  hydra:supportedProperties, see http://bit.ly/17t9ecB
 
 I like example 10 in that regard, but I'm stuck at predicates again:
 how to connect the Link to the resource it applies to?

I'm not sure I understand your question. Example 10 defines the property
http://api.example.com/doc/#comments You can then simply use it in your data

  @prefix api: http://api.example.com/doc/# .

  / api:comments /comments/ .

The client can lookup what api:comments is. It will find out that it is a
hydra:Link, so it represents a hyperlink. Furthermore, it will see that it
can create new comments by POSTing a api:Comment to /comments/.

Have you seen the issue tracker demo on my homepage?

  http://bit.ly/15i8rpp

If you go to the entrypoint there's a JSON property issues. If you move
the mouse over it you'll see that it expands to vocab:EntryPoint/issues if
you dereference that URL [2] you'll get its definition:

{
  @id: vocab:EntryPoint/issues,
  @type: hydra:Link,
  label: 

Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 4:18 PM, Markus Lanthaler wrote:

Anyway, do you have a URL for a Turtle doc?

No, as I said, at the moment I don't serve a Turtle version. Of course you
can use a translator to turn the JSON-LD into Turtle (but you know that)..
here's a link

http://bit.ly/hydra-core-ttl

just in case.


As I said, in a related post, let's not inadvertently introduce problems 
for existing Linked Data tools. JSON-LD and TURTLE is much better than 
JSON-LD only. Thus, all you have to do is incorporate the URL above into 
the doc that's currently missing said reference :-)


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 7:33 AM, Markus Lanthaler wrote:

[1]http://www.markus-lanthaler.com/hydra/
 [2]http://www.w3.org/community/hydra/


Markus,

Is there a JSON-LD or Turtle version of this vocabulary?

Sure.. it's included at the end of the spec [1 above] and also available as
standalone JSON-LD file:

   http://purl.org/hydra/core


Awesome!

--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
Hi Kingsley,

On Thursday, November 21, 2013 1:16 PM, Kingsley Idehen wrote:
 On 11/21/13 6:14 AM, Markus Lanthaler wrote:
  Hi Ruben,
 
  You probably already expected me asking this :-) Why not Hydra [1]?
[...]
 
  [1] http://www.markus-lanthaler.com/hydra/
  [2] http://www.w3.org/community/hydra/

 Markus,
 
 Is there a JSON-LD or Turtle version of this vocabulary?

Sure.. it's included at the end of the spec [1 above] and also available as
standalone JSON-LD file:

  http://purl.org/hydra/core



--
Markus Lanthaler
@markuslanthaler


smime.p7s
Description: S/MIME cryptographic signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
+public-hydra

On Thursday, November 21, 2013 5:11 PM, Mark Baker wrote:
 Cool. Very similar to RDF Forms in important ways, though I think RDF
 Forms internalizes some useful features that Hydra could benefit from;
 stripping out information that isn't required (or isn't an
 optimization) for a state transition, e.g. DeleteResourceOperation.

Right, we already discussed removing all those prefided *ResourceOperations.
The only reason I included them in the first place was to bootstrap the
system so that developers could build simple CRUD-based systems without
having to define these things themselves. This is ISSUE-5 [1] btw. :-)


 PUT should also be usable without any required parameterization,

Not so convinced about that..


 though declaring an accepted media type (something that seems to be
 missing from hydra)

Right.. Hydra currently assumes the client uses the media type it used to
retrieve the API documentation or the entry point for its requests. This
leaves binaries out, I know. It isn't currently specified but I think that
could be handled by specific classes together with hydra:expects as well.


 can be considered an optimization. And POST can be
 used for much more than creation, so I think CreateResourceOperation
 is a misnomer (or else overly specific).

Of course.. that's the whole reason that Operations thing exists in the
first place. But it isn't Hydra's job to define them. Concrete APIs will
create their own by subclassing Operation (or one of the three others unless
we remove it).


 Also, the next version of RDF Forms has been sitting in my head for a
 few years after collecting a little bit of experience with the current
 version. One of the big changes I would make is to go fully predicate
 based rather than class based simply because I expect it would be more
 flexible and also fit better into, e.g. HTML or the Link header. So if
 I had a POST-accepting resource, instead of this:
 
 http://example.org/res1 a hydra:CreateResourceOperation .
 
 I'd go with;
 
  hydra:sink http://example.org/res1 .
 
 (yah, that example represents at least 3 improvements I'd suggest for
 the language - sorry if it's too dense)

Indeed. I don't understand that example at all. Could you explain it a bit
more in detail?


 I have some other thought similar to Ruben's too. But I've gone ahead
 and joined the group, and once I'm caught up on the discussion to
 date, we can discuss this further over there.

Awesome! Welcome on board :-)


[1] https://github.com/HydraCG/Specifications/issues/5



--
Markus Lanthaler
@markuslanthaler




Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 2:00 PM, Markus Lanthaler wrote:

On Thursday, November 21, 2013 7:34 PM, Kingsley Idehen wrote:

On 11/21/13 12:46 PM, Markus Lanthaler wrote:

HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Thu, 21 Nov 2013 16:04:33 GMT
Content-Type: application/ld+json

All fine at my end though so everything should work. Or did I miss
something? Please note that there's no turtle serialization available

atm so

I return JSON-LD instead.

But I am looking for Turtle, hence:

curl -ILH Accept: text/turtlehttp://purl.org/hydra/core

:-)

Sure.. but the server is still free to return an alternative media type if
it is unable to obey to the Accept header.


Well it has an HTTP 406 for communicating that back to the client i.e., 
being a little more helpful :-) Anyway, do you have a URL for a Turtle doc?


Kingsley



--
Markus Lanthaler
@markuslanthaler




--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 12:46 PM, Markus Lanthaler wrote:

HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Thu, 21 Nov 2013 16:04:33 GMT
Content-Type: application/ld+json

All fine at my end though so everything should work. Or did I miss
something? Please note that there's no turtle serialization available atm so
I return JSON-LD instead.


But I am looking for Turtle, hence:

curl -ILH Accept: text/turtlehttp://purl.org/hydra/core

:-)



--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen







smime.p7s
Description: S/MIME Cryptographic Signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
On Thursday, November 21, 2013 7:37 PM, Kingsley Idehen wrote:
 On 11/21/13 1:01 PM, Markus Lanthaler wrote:
  Awesome! Welcome on board:-)
 
 
  [1]https://github.com/HydraCG/Specifications/issues/5
 
 SeeAlso:
 http://linkeddata.uriburner.com/about/id/entity/https/github.com/HydraC
 G/Specifications/issues
 -- Linked Data URI for Hydra Issues on Github.

Cool, thanks Kingsley!


--
Markus Lanthaler
@markuslanthaler


smime.p7s
Description: S/MIME cryptographic signature


RE: representing hypermedia controls in RDF

2013-11-21 Thread Markus Lanthaler
On Thursday, November 21, 2013 7:34 PM, Kingsley Idehen wrote:
 On 11/21/13 12:46 PM, Markus Lanthaler wrote:
  HTTP/1.1 200 OK
  Server: cloudflare-nginx
  Date: Thu, 21 Nov 2013 16:04:33 GMT
  Content-Type: application/ld+json
  All fine at my end though so everything should work. Or did I miss
  something? Please note that there's no turtle serialization available
 atm so
  I return JSON-LD instead.
 
 But I am looking for Turtle, hence:
 
 curl -ILH Accept: text/turtlehttp://purl.org/hydra/core
 
 :-)

Sure.. but the server is still free to return an alternative media type if
it is unable to obey to the Accept header.


--
Markus Lanthaler
@markuslanthaler



smime.p7s
Description: S/MIME cryptographic signature


Re: representing hypermedia controls in RDF

2013-11-21 Thread Kingsley Idehen

On 11/21/13 7:33 AM, Markus Lanthaler wrote:

Sure.. it's included at the end of the spec [1 above] and also available as
standalone JSON-LD file:

   http://purl.org/hydra/core


Note, there's a content negotiation problem here, as shown by:

curl -ILH Accept: text/turtle  http://purl.org/hydra/core
HTTP/1.1 302 Moved Temporarily
Date: Thu, 21 Nov 2013 16:04:32 GMT
Server: 1060 NetKernel v3.3 - Powered by Jetty
*Location: http://www.markus-lanthaler.com/hydra/core*
Content-Type: text/html; charset=iso-8859-1
X-Purl: 2.0; http://localhost:8080
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 275

HTTP/1.1 200 OK
Server: cloudflare-nginx
Date: Thu, 21 Nov 2013 16:04:33 GMT
*Content-Type: application/ld+json*
Content-Length: 15979
Connection: keep-alive
Set-Cookie: __cfduid=dc93830208e521a057d2be9b1c4bb62021385049873045; 
expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; 
domain=.markus-lanthaler.com; HttpOnly

Access-Control-Allow-Origin: *
Last-Modified: Thu, 14 Nov 2013 17:30:58 GMT
ETag: 5ddb676-3e6b-4eb2671e2a309
Accept-Ranges: bytes
Vary: User-Agent
CF-RAY: d0e9dca8b59040c


--

Regards,

Kingsley Idehen 
Founder  CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter Profile: https://twitter.com/kidehen
Google+ Profile: https://plus.google.com/+KingsleyIdehen/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen






smime.p7s
Description: S/MIME Cryptographic Signature


representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Dear all,

Do we have other approaches besides RDF Forms [1] to represent hypermedia 
controls in RDF?

Basically, I’m looking for any of the following:
- representing hyperlinks in RDF (in addition to subject/object URLs)
- representing URI templates [2]
- representing forms (in the HTML sense)

I’m aware of CoIN, which describes URI construction [2]. Is it used?

Pointers to vocabularies or examples would be very much appreciated!

Thanks,

Ruben

[1] http://www.markbaker.ca/2003/05/RDF-Forms/
[2] http://tools.ietf.org/html/rfc6570
[2] http://court.googlecode.com/hg/resources/docs/coin/spec.html


Re: representing hypermedia controls in RDF

2013-11-20 Thread Phil Archer
I'm interested in the answers you get to the first and last of your 
questions but the middle one I can do. The under used POWDER 
Recommendation allows you to make statements about resources based on 
URI patterns (with due semantic integrity [1]) - which may or may not be 
useful to you. See http://www.w3.org/TR/powder-grouping/


HTH

Phil.

[1] http://www.w3.org/TR/powder-formal/

On 20/11/2013 11:23, Ruben Verborgh wrote:

Dear all,

Do we have other approaches besides RDF Forms [1] to represent hypermedia 
controls in RDF?

Basically, I’m looking for any of the following:
- representing hyperlinks in RDF (in addition to subject/object URLs)
- representing URI templates [2]
- representing forms (in the HTML sense)

I’m aware of CoIN, which describes URI construction [2]. Is it used?

Pointers to vocabularies or examples would be very much appreciated!

Thanks,

Ruben

[1] http://www.markbaker.ca/2003/05/RDF-Forms/
[2] http://tools.ietf.org/html/rfc6570
[2] http://court.googlecode.com/hg/resources/docs/coin/spec.html



--

Phil Archer
W3C eGovernment

http://philarcher.org
+44 (0)7887 767755
@philarcher1



Re: representing hypermedia controls in RDF

2013-11-20 Thread Martynas Jusevičius
Ruben,

2 things I'm aware of and have implemented:

- URI templates: Linked Data API vocabulary
https://code.google.com/p/linked-data-api/wiki/API_Vocabulary
Graphity reuses api:uriTemplate and api:itemTemplate to match request
URIs against ontology classes. The actual template syntax is reused
from JAX-RS:
http://docs.oracle.com/cd/E19798-01/821-1841/ginpw/

- HTML forms: RDF/POST encoding http://www.lsrn.org/semweb/rdfpost.html
Graphity includes a Jena-based RDF/POST parser:
https://github.com/Graphity/graphity-browser/blob/master/src/main/java/org/graphity/client/reader/RDFPostReader.java

Hope that helps.

Martynas
graphityhq.com

On Wed, Nov 20, 2013 at 12:23 PM, Ruben Verborgh
ruben.verbo...@ugent.be wrote:
 Dear all,

 Do we have other approaches besides RDF Forms [1] to represent hypermedia 
 controls in RDF?

 Basically, I’m looking for any of the following:
 - representing hyperlinks in RDF (in addition to subject/object URLs)
 - representing URI templates [2]
 - representing forms (in the HTML sense)

 I’m aware of CoIN, which describes URI construction [2]. Is it used?

 Pointers to vocabularies or examples would be very much appreciated!

 Thanks,

 Ruben

 [1] http://www.markbaker.ca/2003/05/RDF-Forms/
 [2] http://tools.ietf.org/html/rfc6570
 [2] http://court.googlecode.com/hg/resources/docs/coin/spec.html



Re: representing hypermedia controls in RDF

2013-11-20 Thread Edward Summers
Hi Ruben,

I haven’t used it (or really read the spec) but you might be interested in 
taking a look at the Linked Data Platform 1,2], which provides some patterns 
for expressing create/update/delete hypermedia controls in RDF.

I’d be interested to hear what your specific use case is.

//Ed

[1] http://www.w3.org/TR/ldp/
[2] http://www.w3.org/TR/ldp-ucr/

On Nov 20, 2013, at 6:23 AM, Ruben Verborgh ruben.verbo...@ugent.be wrote:

 Dear all,
 
 Do we have other approaches besides RDF Forms [1] to represent hypermedia 
 controls in RDF?
 
 Basically, I’m looking for any of the following:
 - representing hyperlinks in RDF (in addition to subject/object URLs)
 - representing URI templates [2]
 - representing forms (in the HTML sense)
 
 I’m aware of CoIN, which describes URI construction [2]. Is it used?
 
 Pointers to vocabularies or examples would be very much appreciated!
 
 Thanks,
 
 Ruben
 
 [1] http://www.markbaker.ca/2003/05/RDF-Forms/
 [2] http://tools.ietf.org/html/rfc6570
 [2] http://court.googlecode.com/hg/resources/docs/coin/spec.html




Re: representing hypermedia controls in RDF

2013-11-20 Thread Norman Gray

Ruben, greetings.

On 2013 Nov 20, at 11:23, Ruben Verborgh wrote:

 Do we have other approaches besides RDF Forms [1] to represent hypermedia 
 controls in RDF?

You _might_ find it interesting to read about HyTime (the Wikipedia page has 
reasonable starting links https://en.wikipedia.org/wiki/HyTime).  HyTime 
defines a set of hypertext-oriented element types that [let] document authors 
to build hypertext and multimedia presentations in a standardized way.

The elided words in that sentence indicate that it was linked to SGML, but 
don't let that put you off.  Speaking for myself, it was HyTime that let me see 
that the really big deal about SGML, and later XML, is that it's about abstract 
semantic structures rather than pointy brackets.

Unfortunately the HyTime spec is bizarrely -- perversely -- opaque (for reasons 
which I semi-understand), which ruined its chances of significant adoption.  
Its current legacy rests on the core ideas rather than the actual 'hypermedia' 
stuff it was apparently focused on, but the hypermedia modeling is the result 
of good work by smart people, and it would make a very interesting project to 
see if HyTime's time (ahem!) has finally come.

All the best,

Norman


-- 
Norman Gray  :  http://nxg.me.uk
SUPA School of Physics and Astronomy, University of Glasgow, UK




Re: representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Hi Phil,

Thanks for the pointer. POWDER is definitely interesting and relevant,
but I’m a bit hesitant to apply regexing.

In general, I’m quite a fan of opaque URLs; that is, let the server maintain 
full control.
While HTML GET forms are a level-breaker in that regard, I like the strictness 
about them:
there’s only one way to get from the form to a URL, and the server is still in 
control because it created the form.

What are your thoughts about this?

Best,

Ruben

On 20 Nov 2013, at 11:37, Phil Archer ph...@w3.org wrote:

 I'm interested in the answers you get to the first and last of your questions 
 but the middle one I can do. The under used POWDER Recommendation allows you 
 to make statements about resources based on URI patterns (with due semantic 
 integrity [1]) - which may or may not be useful to you. See 
 http://www.w3.org/TR/powder-grouping/
 
 HTH
 
 Phil.
 
 [1] http://www.w3.org/TR/powder-formal/




Re: representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Hi Martynas,

 - URI templates: Linked Data API vocabulary
 https://code.google.com/p/linked-data-api/wiki/API_Vocabulary

Cool, I do like that. Have you thought about extending to RFC6570?
Do you know about usage of this vocabulary?

The one thing that I like less is the notion of endpoints.
While this is perfect for SPARQL, which is indeed an endpoint
or “data-handling process” that expects a “block of data” [1],
it does not work well in resource-oriented environments.

I’m looking for predicates that work with groups of resource, such as:
/topics/Global_Warming :belongsTo /topics.
/topics a :ResourceList;
  api:itemTemplate /topics/{topicID}.
That is, I don't consider there to be a topics endpoint;
instead, there is a topics resource which lists several topics,
and individual topics can be accessed by ID.
The reason I would still need the template is because /topics/ is not 
exhaustive,
and new elements can be created by following the template.
This would be equivalent to a HTML GET form.

 - HTML forms: RDF/POST encoding http://www.lsrn.org/semweb/rdfpost.html

Interesting, thanks!

Best,

Ruben

[1] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5


Re: representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Hi Ed,
CC: Mark Baker,

I've actually been part of the LDP group;
I fully agreed with Mark's concern on the lack of hypermedia controls [1].
LDP is based on a set of agreements, not on a set of dynamic affordances.
Would have loved to see a proposal such as this one [2] make it,
but it was then clarified that the goal of LDP was to make one API [3].

Best,

Ruben

[1] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0007.html
[2] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0018.html
[3] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0029.html

On 20 Nov 2013, at 12:49, Edward Summers e...@pobox.com wrote:

 Hi Ruben,
 
 I haven’t used it (or really read the spec) but you might be interested in 
 taking a look at the Linked Data Platform 1,2], which provides some patterns 
 for expressing create/update/delete hypermedia controls in RDF.
 
 I’d be interested to hear what your specific use case is.
 
 //Ed




Re: representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Hi Norman,

Interesting pointer, thanks, I'm amazed to see this existed for so long!

 HyTime defines a set of hypertext-oriented element types that [let] document 
 authors to build hypertext and multimedia presentations in a standardized 
 way.

The issue is probably to integrate this on the RDF level,
e.g., those semantics but written as RDF.
While I like the conceptual level of abstraction,
at some point, you have to serialize it, and this is where I'm at.

Best,

Ruben


Re: representing hypermedia controls in RDF

2013-11-20 Thread Edward Summers
Ahh, I see you are (at least) two steps ahead of me. Thanks for sending along 
those references to previous conversation.

I’m still curious about your use case :-)

//Ed

On Nov 20, 2013, at 10:58 AM, Ruben Verborgh ruben.verbo...@ugent.be wrote:

 Hi Ed,
 CC: Mark Baker,
 
 I've actually been part of the LDP group;
 I fully agreed with Mark's concern on the lack of hypermedia controls [1].
 LDP is based on a set of agreements, not on a set of dynamic affordances.
 Would have loved to see a proposal such as this one [2] make it,
 but it was then clarified that the goal of LDP was to make one API [3].
 
 Best,
 
 Ruben
 
 [1] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0007.html
 [2] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0018.html
 [3] http://lists.w3.org/Archives/Public/public-ldp/2012Nov/0029.html
 
 On 20 Nov 2013, at 12:49, Edward Summers e...@pobox.com wrote:
 
 Hi Ruben,
 
 I haven’t used it (or really read the spec) but you might be interested in 
 taking a look at the Linked Data Platform 1,2], which provides some patterns 
 for expressing create/update/delete hypermedia controls in RDF.
 
 I’d be interested to hear what your specific use case is.
 
 //Ed
 




Re: representing hypermedia controls in RDF

2013-11-20 Thread Ruben Verborgh
Hi Ed,

Forgot to answer this part:

 I’d be interested to hear what your specific use case is.

In my research [1], I'm looking at giving machines the same affordances as 
people.
Many things on today's Web cannot be done by machines due to a lack of 
affordances.
While RDF allows to interpret data and facts, it does not help to interpret 
actions.

So use cases I'm looking at are:
- how to represent a HTML page with a form in RDF, so automated clients can use 
it?
- how to make such clients search?
- how to make them execute state-changing actions?

Giving them access to hypermedia controls is a crucial part in that [2].

Best,

Ruben

[1] http://ruben.verborgh.org/publications/
[2] http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven