New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace interactionCount with interaction #137

Closed
elf-pavlik opened this Issue Sep 20, 2014 · 18 comments

Comments

Projects
None yet
5 participants
@elf-pavlik
Contributor

elf-pavlik commented Sep 20, 2014

In one of last emails about differences between potential and active/compleated Action, I suggested introducing new property interaction which would supersede interactionCount - http://lists.w3.org/Archives/Public/public-vocabs/2014Sep/0174.html

{
  "@type": "WebPage",
  "@id": "http://example.net/",
  "interaction": [
    {
      "@type": "ViewAction",
      "@id": "http://mypds.net/joe/ew0r98a0ga",
      "actionStatus": "CompletedActionStatus",
      "object": "http://example.net/",
      "endTime": "2017-01-04T10:32:15+01:00"
    },
    {
      "@type": "ReadAction",
      "@id": "http://mypds.net/joe/0a9fd80gh7",
      "actionStatus": "CompletedActionStatus",
      "object": "http://example.net/",
      "startTime": "2017-01-04T10:32:15+01:00",
      "endTime": "2017-01-04T10:37:04+01:00"
    }
  ]
}

While on it, I would like to bring attention (for the 4th time in last 2
years) to: http://schema.org/interactionCount

And propose to replace it with interaction which would accompany
potentialAction on Thing.

  • Thing --{potentialAction}--> Action --{actionStatus}-->
    PotentialActionStatus
  • Thing --{interaction}--> Action --{actionStatus}--> ActiveActionStatus
    || CompletedActionStatus
@elf-pavlik

This comment has been minimized.

Show comment
Hide comment
@gkellogg

This comment has been minimized.

Show comment
Hide comment
@gkellogg

gkellogg Sep 20, 2014

Contributor

While I think having a schema:interaction property, it probably can't be comprehensive, and sites with large number of interactions may not want to represent all 10,000 likes, shares and so-forth. A summary is useful.

An alternative would be with something like Hydra collections, where the interaction property is put in a separate collection having its own summary information (totalItems). ItemList could do this, if it was externalizer and pagination.

Contributor

gkellogg commented Sep 20, 2014

While I think having a schema:interaction property, it probably can't be comprehensive, and sites with large number of interactions may not want to represent all 10,000 likes, shares and so-forth. A summary is useful.

An alternative would be with something like Hydra collections, where the interaction property is put in a separate collection having its own summary information (totalItems). ItemList could do this, if it was externalizer and pagination.

@elf-pavlik elf-pavlik changed the title from replace legacy property interactionCount with new interaction to replace interactionCount with interaction Sep 20, 2014

@elf-pavlik

This comment has been minimized.

Show comment
Hide comment
@elf-pavlik

elf-pavlik Sep 20, 2014

Contributor

@gkellogg good point! maybe then something in lines

{ "@id": "http://bigbuckbunny.org",
  "@type": "Movie",
  "interaction": [ {
    "@id": "http://bigbuckbunny.org/stats/liked",
    "@type": "hydra:Collection",
    "manages": {
      "property": "LikeAction"
    },
    "totalItems": 642
  }, {
    "@id": "http://bigbuckbunny.org/stats/watched",
    "@type": "hydra:Collection",
    "manages": {
      "property": "WatchAction"
    },
    "totalItems": 1250
  }, {
    "@id": "http://bigbuckbunny.org/stats/shared",
    "@type": "hydra:Collection",
    "manages": {
      "property": "ShareAction"
    },
    "totalItems": 148
  } ]
}

which would still allow both

Thing --{interaction}--> Action
                     --> hydra:Collection

@lanthaler

Contributor

elf-pavlik commented Sep 20, 2014

@gkellogg good point! maybe then something in lines

{ "@id": "http://bigbuckbunny.org",
  "@type": "Movie",
  "interaction": [ {
    "@id": "http://bigbuckbunny.org/stats/liked",
    "@type": "hydra:Collection",
    "manages": {
      "property": "LikeAction"
    },
    "totalItems": 642
  }, {
    "@id": "http://bigbuckbunny.org/stats/watched",
    "@type": "hydra:Collection",
    "manages": {
      "property": "WatchAction"
    },
    "totalItems": 1250
  }, {
    "@id": "http://bigbuckbunny.org/stats/shared",
    "@type": "hydra:Collection",
    "manages": {
      "property": "ShareAction"
    },
    "totalItems": 148
  } ]
}

which would still allow both

Thing --{interaction}--> Action
                     --> hydra:Collection

@lanthaler

@gkellogg

This comment has been minimized.

Show comment
Hide comment
@gkellogg

gkellogg Sep 20, 2014

Contributor

Except, of course that WatchAction, et.al. are not properties, but classes. Really, there would be a single collection managing schema:interaction, with different types values. In this case, it would make sense to have sub-properties of schema:interaction. In hydra, subset collections could also be returned using search "operations."

Contributor

gkellogg commented Sep 20, 2014

Except, of course that WatchAction, et.al. are not properties, but classes. Really, there would be a single collection managing schema:interaction, with different types values. In this case, it would make sense to have sub-properties of schema:interaction. In hydra, subset collections could also be returned using search "operations."

@elf-pavlik

This comment has been minimized.

Show comment
Hide comment
@elf-pavlik

elf-pavlik Sep 20, 2014

Contributor

Of course I wrote nonsense using classes as properties 😒 Having an interaction sub property for each Action subtype doesn't sound that exciting. Taking step back from hydra:Collection, maybe introducing interactionStatistic which could take some kind of InteractionCounter would solve it?

{ "@id": "http://bigbuckbunny.org",
  "@type": "Movie",
  "interactionStatistic": [ {
    "@type": "InteractionCounter",
    "interactionType": "LikeAction",
    "interactionCount": 642
  }, {
    "@type": "InteractionCounter",
    "interactionType": "WatchAction",
    "interactionCount": 1250
  }, {
    "@type": "InteractionCounter",
    "interactionType": "ShareAction",
    "interactionCount": 148
  } ]
}
Contributor

elf-pavlik commented Sep 20, 2014

Of course I wrote nonsense using classes as properties 😒 Having an interaction sub property for each Action subtype doesn't sound that exciting. Taking step back from hydra:Collection, maybe introducing interactionStatistic which could take some kind of InteractionCounter would solve it?

{ "@id": "http://bigbuckbunny.org",
  "@type": "Movie",
  "interactionStatistic": [ {
    "@type": "InteractionCounter",
    "interactionType": "LikeAction",
    "interactionCount": 642
  }, {
    "@type": "InteractionCounter",
    "interactionType": "WatchAction",
    "interactionCount": 1250
  }, {
    "@type": "InteractionCounter",
    "interactionType": "ShareAction",
    "interactionCount": 148
  } ]
}
@zazi

This comment has been minimized.

Show comment
Hide comment
@zazi

zazi commented Sep 24, 2014

+1 for counter class, cf. http://purl.org/ontology/co/core#

@elf-pavlik

This comment has been minimized.

Show comment
Hide comment
@elf-pavlik

elf-pavlik Sep 24, 2014

Contributor

@zazi would you change anything in my example? maybe introducing generic schema:count instead reusing existing but very specific schema:interactionCount ?

Contributor

elf-pavlik commented Sep 24, 2014

@zazi would you change anything in my example? maybe introducing generic schema:count instead reusing existing but very specific schema:interactionCount ?

@zazi

This comment has been minimized.

Show comment
Hide comment
@zazi

zazi Sep 25, 2014

@elf-pavlik yes, this might be a good option. I would prefer schema:count instead of schema:interactionCount

zazi commented Sep 25, 2014

@elf-pavlik yes, this might be a good option. I would prefer schema:count instead of schema:interactionCount

@danbri danbri added this to the 2015 Q1 milestone Jan 21, 2015

@danbri danbri self-assigned this Jan 21, 2015

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Jan 21, 2015

Contributor

Thanks for the detailed proposal. This clearly needs some attention now that Actions has shipped...

Contributor

danbri commented Jan 21, 2015

Thanks for the detailed proposal. This clearly needs some attention now that Actions has shipped...

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Apr 17, 2015

Contributor

/cc @vholland

Contributor

danbri commented Apr 17, 2015

/cc @vholland

@vholland

This comment has been minimized.

Show comment
Hide comment
@vholland

vholland Apr 17, 2015

Contributor

For issue #170, we were going to deprecate all of UserInteraction, which makes interactionCount useless.

It would be useful to have some sort of AggregateInteractionCount class so pages could mention how many times something has been liked or tweeted, which I think was the original intent of UserInteraction, but that is for another release.

Contributor

vholland commented Apr 17, 2015

For issue #170, we were going to deprecate all of UserInteraction, which makes interactionCount useless.

It would be useful to have some sort of AggregateInteractionCount class so pages could mention how many times something has been liked or tweeted, which I think was the original intent of UserInteraction, but that is for another release.

@danbri danbri assigned vholland and unassigned danbri Apr 29, 2015

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Apr 29, 2015

Contributor

I've generously assigned this to Vicki, since she is handling the UserInteraction area (and which looks likely to go away and take interactionCount with it).

Since the issue here is also forward looking, once interactionCount goes away, I'm moving it out from sdo-gozer into sometime-in-Q2.

Contributor

danbri commented Apr 29, 2015

I've generously assigned this to Vicki, since she is handling the UserInteraction area (and which looks likely to go away and take interactionCount with it).

Since the issue here is also forward looking, once interactionCount goes away, I'm moving it out from sdo-gozer into sometime-in-Q2.

@danbri danbri modified the milestones: 2015 Q2, sdo-gozer release Apr 29, 2015

@danbri danbri referenced this issue Apr 29, 2015

Closed

Clean up Comment vs UserComments vs CommentAction #170

1 of 4 tasks complete

vholland added a commit to vholland/schemaorg that referenced this issue May 19, 2015

@vholland

This comment has been minimized.

Show comment
Hide comment
@vholland

vholland May 19, 2015

Contributor

In the spirit of @elf-pavlik's proposal, I put together vholland@a8c3e6c

The major difference is I did not leverage Action, for two reasons:

  1. We would need to modify VoteAction or (create UpVoteAction and DownVoteAction) to make the up vote/down vote use cases work.
  2. Other than the specific verbs chosen by various services, the semantic difference of "up voting", "liking", "plus'ing", etc are ambiguous. I would like to future-proof for the next big social media site that supports "hurrays".

To that end, I added the ability to say which site/app is used for the interaction so one can separate out Facebook likes from Youtube up votes.

Contributor

vholland commented May 19, 2015

In the spirit of @elf-pavlik's proposal, I put together vholland@a8c3e6c

The major difference is I did not leverage Action, for two reasons:

  1. We would need to modify VoteAction or (create UpVoteAction and DownVoteAction) to make the up vote/down vote use cases work.
  2. Other than the specific verbs chosen by various services, the semantic difference of "up voting", "liking", "plus'ing", etc are ambiguous. I would like to future-proof for the next big social media site that supports "hurrays".

To that end, I added the ability to say which site/app is used for the interaction so one can separate out Facebook likes from Youtube up votes.

@vholland

This comment has been minimized.

Show comment
Hide comment
@vholland

vholland May 19, 2015

Contributor

Actually, the more I think about it, @elf-pavlik had the right idea. If I stop thinking in terms of up/down vote and in terms of http://schema.org/LikeAction and http://schema.org/DislikeAction, it works. It ties in Actions and doesn't require a bunch of new types.

I'll make that change tomorrow.

Contributor

vholland commented May 19, 2015

Actually, the more I think about it, @elf-pavlik had the right idea. If I stop thinking in terms of up/down vote and in terms of http://schema.org/LikeAction and http://schema.org/DislikeAction, it works. It ties in Actions and doesn't require a bunch of new types.

I'll make that change tomorrow.

vholland added a commit to vholland/schemaorg that referenced this issue May 20, 2015

@vholland

This comment has been minimized.

Show comment
Hide comment
@vholland

vholland May 20, 2015

Contributor

Please see pull request #514 for an implementation that uses Actions. I still need to update the examples, but pull requests are easier to diff against sdo-ganymede than individual commits.

Contributor

vholland commented May 20, 2015

Please see pull request #514 for an implementation that uses Actions. I still need to update the examples, but pull requests are easier to diff against sdo-ganymede than individual commits.

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri

danbri Jun 10, 2015

Contributor

@chaals - did you reach an opinion on this and the corresponding pull request, #514 ? /cc @tilid @ajax-als ... I believe everyone else is signed off. I will go ahead and merge it into the work-in-progress next release branch sdo-ganymede but do take a look...

Contributor

danbri commented Jun 10, 2015

@chaals - did you reach an opinion on this and the corresponding pull request, #514 ? /cc @tilid @ajax-als ... I believe everyone else is signed off. I will go ahead and merge it into the work-in-progress next release branch sdo-ganymede but do take a look...

@danbri

This comment has been minimized.

Show comment
Hide comment
@danbri
Contributor

danbri commented Jul 30, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment