- From: Melvin Carvalho <melvincarvalho@gmail.com>
- Date: Sun, 23 Aug 2015 11:18:59 +0200
- To: Amy G <amy@rhiaro.co.uk>
- Cc: "public-socialweb@w3.org" <public-socialweb@w3.org>
- Message-ID: <CAKaEYhJ48NJck6Cm8-7RrTNQBqn9xpea5CbU=VGrXqHvg6SEzQ@mail.gmail.com>
On 23 August 2015 at 10:56, Amy G <amy@rhiaro.co.uk> wrote: > >> 1. _:like-of here implies it's a bnode, but I think it's not actually a >> bnode. It's going to be problematic for many to reuse this predicate >> without the predicate being a URL. Is this something on the horizon, do >> you know? >> > > I couldn't say. I actually store <http://vocab.amy.so/blog#like_of> at > the moment, which was only ever intended to be temporary (eg. curl -H > "Accept: text/turtle" http://blog.rhiaro.co.uk/1438621461) > Very nice! But as you say, this is temporary. It would be nice to know if something more permanent could be achieved in the lifetime of this WG. I think that would incentivize reuse. > > >> >> 2. The semantics of a post liking another post seems slightly unnatural >> to me. >> > > The semantics are *not* 'a post likes a post'. The semantics are 'this > post represents a like of this other post'. Hence *like-of*, not *likes*. > A post in this sense could be considered exactly the same as an AS2 Like > Activity. They are both objects which represent a relationship between a > person (the author/creator/actor) and another object (the post). Whether > this relationship should be made more explicit is subject for a different > thread I guess (possibly something the API can resolve, as AP starts to > specify - see 1.1 <http://w3c-social.github.io/activitypump/#Overview>). > Got it. I guess this would be phase 2 for me. So I'll come back and revisit after I have the first part working, but it's helpful to see both parts. > > >> I guess this is more for the notification in a stream once a like has >> been performed. >> > > Ah, I think you mean the notification in stream *as opposed to a list of > things a user likes*. Well, either could trigger either, I guess. > Starting from the users' perspectives: > > > I see your post I like, click 'like'. > > you see notification "Amy liked your post" > > I see in my feed "you liked Melvin's post" > > Jessica sees in her feed "Amy liked Melvin's post" > > On my profile, the list of things I like grows to include your post. > > On your post, the number of 'likes' displayed is incremented. > > All of these results can be triggered either by creation of a Like type > object / like-of post, or creation of a direct *likes *relation between > me and the post. Personally I prefer the first option (which can generate > the direct relation if need be), for reasons I've already said (metadata, > linkability). > Great, that's a useful user experience. Currently the way I do notifications is through a websocket in realtime. But a more persistent store of events is useful. We talked about a "primaryInbox" lately where I could persist such objects for a user. In Linked Data a user is not restricted to a single inbox, so one suggestion was to have a "primary" place to persist such objects. > > >> In my scenario the like object can live anywhere. That's an >> implementation detail. >> > > I'm not sure what the 'like object' is in your scenario, as you have only > indicated the direct relation between the person and the liked thing so > far. Did I miss something? My response has been on the basis that you do > not have a 'like object', just a relation. > There's two styles of relation in linked data, one is X likes Y. ie with a single predicate. The other is a more complex object. L a like ; liker X ; likee Y ; url U . for example. The 2nd part is considerably more complex than the first, e.g. for querying, for coding, to create a persistent identifier, for updates etc. For example I can have a heart button on my UI to add and remove a like, and leave notifications orthogonal. This is easy to remove and add. There's time when you want to use a simple relation, and times when you want to use a more complex container. My first use case is the simple relation, which I think is going to be needed but lots of software. The general rule is that if there are only 2 actors in the object, you can use a simple relation. "X likes Y". If there are more you a complex object e.g. "X pays Y 10 dollars" > > >> In practice I think I will go with putting the like as close to the >> liked thing as possible, as it may turn out to be easier to discover. >> > > I'd be inclined to prioritise data ownership for users, and put the like > as close to the author as possible, rather than the liked thing. > Perfectly reasonable also. Each approach has pros and cons. > > Amy > > > > >> >> >>> >>> Interestingly, I don't think any of the major centralised social >>> networks I've looked at have external URIs for likes, but I think it's a >>> safe bet they have internal ones and store data about the *like *happening. >>> Twitter doesn't even allow you to get a list of users who have favorited a >>> tweet through their API (though on an individual tweet there's a boolean >>> "favorited" property) and a quick search will reveal lots of developers >>> complaining about this inability.. >>> >> >> Well that gives us a competitive advantage then, namely, unexpected reuse. >> >> >>> >>> Amy >>> >>> On 23 August 2015 at 01:23, Melvin Carvalho <melvincarvalho@gmail.com> >>> wrote: >>> >>>> I've noticed that the concept of a user liking a post is deployed in a >>>> number of systems. >>>> >>>> But it seems there are a number of ways of doing it. >>>> >>>> I just wanted to see if there are pros and cons of different approaches. >>>> >>>> Right now I do something like: >>>> >>>> <#me> <http://ontologi.es/like#likes> <content> >>>> >>>> It seems simple, lightweight and meets my needs. >>>> >>>> Are people in general going to use AS2 for this, is there a good vocab >>>> to switch to? >>>> >>>> Thoughts appreciated ... >>>> >>> >>> >> >
Received on Sunday, 23 August 2015 09:19:30 UTC