New Verbs

50 views
Skip to first unread message

James M Snell

unread,
May 2, 2012, 5:12:47 PM5/2/12
to activity...@googlegroups.com
I'd like to add the following verbs to the collected registry... some
are similar to one another and have overlap with existing verbs (e.g.
watch, listen and read are specializations of play and consume, etc)..
but each carry their own specific semantic meaning and have been used
in real implementations.

accept................ actor accepts object
access................ actor accesses object
acknowledge........... actor acknowledges object
agree................. actor agrees with the object
append................ actor appends object to target
approve............... actor approves the object
assign................ actor assigns object to target
attend................ actor attends object
authorize............. actor authorizes object
build................. actor builds object
commit................ actor commits object to target
complete.............. actor completes object
deliver............... actor delivers object to target
deny.................. actor denies object
disagree.............. actor disagrees with object
host.................. actor hosts object (example, hosting a meeting,
hosting a service)
insert................ actor inserts object into target
listen................ actor listens to object
notify................ actor sends object as notification to target
offer................. actor offers object to target
open.................. actor opens object
present............... actor presents object (as is giving a presentation)
purchase.............. actor purchases object
read.................. actor reads object
reject................ actor rejects object
replace............... actor replaces target with object
return................ actor returns object to target
request............... actor requests object
resolve............... actor resolves object (example, resolving an issue)
review................ actor reviews object
search................ actor searches for object within target
sponsor............... actor sponsors object (example, sponsoring an
event, sponsoring a project, etc)
start................. actor starts object
submit................ actor submits object to target
terminate............. actor terminates object
use................... actor uses object
watch................. actor watches object

Thoughts?

Martin Atkins

unread,
May 2, 2012, 5:28:54 PM5/2/12
to activity...@googlegroups.com
Do you think we need to define these in any more detail than just using
them in a sentence? Most of the ones in the base schema spec include
some examples of how you might use them, suggesting the object types
that can most naturally apply and so on.

Also, the registry is built to be an aggregation of information
published inside separate specification documents, so in order to add
these within the existing framework we'll need to either add them to a
revised Activity Schema spec or publish a new "Even More Activity
Schema" spec for them to reference. IIRC we never actually "published"
the schema spec so the former is probably fine...

I do wonder though whether it would be better to try to categorize these
by logical domain so it's clearer which ones are likely to be used
together. For example, someone building an activity stream for a version
control system is probably interested in build, commit, deliver,
complete, review... maybe others, but it's hard to find the ones that
are relevant to a particular domain when they are all together in a
single list.

James M Snell

unread,
May 2, 2012, 5:42:57 PM5/2/12
to activity...@googlegroups.com
On Wed, May 2, 2012 at 2:28 PM, Martin Atkins <ma...@degeneration.co.uk> wrote:
> Do you think we need to define these in any more detail than just using them
> in a sentence? Most of the ones in the base schema spec include some
> examples of how you might use them, suggesting the object types that can
> most naturally apply and so on.
>

Yes... I intend to provide more complete documentation for each but
wanted to get things started with a basic summary first.

> Also, the registry is built to be an aggregation of information published
> inside separate specification documents, so in order to add these within the
> existing framework we'll need to either add them to a revised Activity
> Schema spec or publish a new "Even More Activity Schema" spec for them to
> reference. IIRC we never actually "published" the schema spec so the former
> is probably fine...
>

+1 to a revised schema doc.

> I do wonder though whether it would be better to try to categorize these by
> logical domain so it's clearer which ones are likely to be used together.
> For example, someone building an activity stream for a version control
> system is probably interested in build, commit, deliver, complete, review...
> maybe others, but it's hard to find the ones that are relevant to a
> particular domain when they are all together in a single list.
>

Entirely possible. I'm also thinking that we need to document some of
the high level lexical semantics of the verbs (e.g. antonyms,
synonyms, etc). I am exploring this as part of a "verb description"
mechanism per the separate tin can discussion.

- James
> --
> You received this message because you are subscribed to the Google Groups
> "Activity Streams" group.
> To post to this group, send email to activity...@googlegroups.com.
> To unsubscribe from this group, send email to
> activity-strea...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/activity-streams?hl=en.
>

Martin Atkins

unread,
May 2, 2012, 6:19:29 PM5/2/12
to activity...@googlegroups.com
On 05/02/2012 02:42 PM, James M Snell wrote:
>
> Entirely possible. I'm also thinking that we need to document some of
> the high level lexical semantics of the verbs (e.g. antonyms,
> synonyms, etc). I am exploring this as part of a "verb description"
> mechanism per the separate tin can discussion.
>

Yeah, I think that would be valuable, in a human-readable way if not a
machine-readable way.

Thinking more about the original problem I stated, of trying to find the
right verbs and object types to use for a particular common problem,
perhaps the solution is to collect broad domain use-cases like software
collaboration as in my original example, or social events, or social
sharing, and document alongside the raw taxonomy some suggested forms to
publish activities within those domains.

This maybe doesn't need to be in the spec at all but just maintained
alongside the spec as helpful information; the main goal would be to
help two implementers aiming at approximately the same problem space to
end up with compatible implementations, not to impose any hard requirements.

James M Snell

unread,
May 2, 2012, 6:41:10 PM5/2/12
to activity...@googlegroups.com
+1

On Wed, May 2, 2012 at 3:19 PM, Martin Atkins <ma...@degeneration.co.uk> wrote:
>[snip]
> Thinking more about the original problem I stated, of trying to find the
> right verbs and object types to use for a particular common problem, perhaps
> the solution is to collect broad domain use-cases like software
> collaboration as in my original example, or social events, or social
> sharing, and document alongside the raw taxonomy some suggested forms to
> publish activities within those domains.
>
> This maybe doesn't need to be in the spec at all but just maintained
> alongside the spec as helpful information; the main goal would be to help
> two implementers aiming at approximately the same problem space to end up
> with compatible implementations, not to impose any hard requirements.
>
>

Todd Barnard

unread,
May 3, 2012, 1:45:29 PM5/3/12
to activity...@googlegroups.com

Whole list is great.

I see "request", "use" and "watch", but where's "create" an object?

I make new places to check-in on Foursquare all the time, how am I gonna convince Dens to use the spec without "Todd created a new venue."?
 
T

James M Snell

unread,
May 3, 2012, 1:52:16 PM5/3/12
to activity...@googlegroups.com
"create" is covered already by the semantics of the "post" verb in the
core spec, but there's already a "create" listed in the list of verbs
in the wiki.
> --
> You received this message because you are subscribed to the Google Groups
> "Activity Streams" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/activity-streams/-/QHLllxI02dwJ.

Martin Atkins

unread,
May 3, 2012, 2:13:26 PM5/3/12
to activity...@googlegroups.com
On 05/03/2012 10:52 AM, James M Snell wrote:
> "create" is covered already by the semantics of the "post" verb in the
> core spec, but there's already a "create" listed in the list of verbs
> in the wiki.
>

...and again we encounter the challenge of using natural language words
as the identifiers for these things; people want to pick the exactly
English word they'd use in a sentence regardless of whether there's
already a verb defined that encompasses the desired meaning.

I don't know the solution, but I do feel like we should try to resist
creating "synonyms".

James M Snell

unread,
May 3, 2012, 2:17:56 PM5/3/12
to activity...@googlegroups.com
Indeed... synonyms are difficult to work with.... e.g. did I watch the
video or did I play it? in general, I think it's best to go with the
most generic verbs at a machine level, but then we need to be able to
naturally communicate about the events in a way that makes the most
sense to a human... deriving a natural language description
automatically is quite a bit of work.
> --
> You received this message because you are subscribed to the Google Groups
> "Activity Streams" group.

@garemoko

unread,
May 3, 2012, 2:30:03 PM5/3/12
to Activity Streams
Over at the Tin Can API Google group (https://groups.google.com/a/
adlnet.gov/group/TinCanAPI-adopters/topics) we are also looking at
verbs and making a list. If you're looking to add verbs, would it be
useful to be aware of these?

Here's one list:

http://tincanapi.wikispaces.com/Verb+spec+proposal

There's another list at:

http://tincanapi.wikispaces.com/Verbs+and+Activities

and another at:

http://www.adlnet.gov/tin-can-verbs-from-scratch

@garemoko

James M Snell

unread,
May 3, 2012, 9:10:48 PM5/3/12
to activity...@googlegroups.com
Thank your for the reference. Definitely very helpful. I'll have to
take a more detailed look later, but immediately I noticed that you
have the "experienced" verb defined... we already have the "play" verb
in the registry that covers the same type of activity; I'm curious why
that was redefined... also, I note that all of your verbs are
expressed in the past tense... whereas the verbs in the registry are
all represented as present tense. Not a big issue, but it would be
great to understand the reasoning and motivations.

Jeff Martin

unread,
May 4, 2012, 11:46:00 AM5/4/12
to activity...@googlegroups.com
I think its important to remember that the Verb in the verb property of the activity doesn't necessarily need to be the same as the one used in the title of the activity.

title: Jeff experienced the Rocky Horror Picture Show
verb: play

seems like that would be entirely appropriate.  The verb property lets the consumer applications have a common frame for what to do with the activity and the title gives the humans a variety or context they are looking for.


-Jeff

James M Snell

unread,
May 4, 2012, 1:10:25 PM5/4/12
to activity...@googlegroups.com
Ok, just taking some time to go through the collection of verbs
described in the links below... the basic philosophy I'm taking is
that it is better to use a more constrained set of common verbs that
fit the meaning...

On Thu, May 3, 2012 at 11:30 AM, @garemoko <mrdown...@googlemail.com> wrote:
> Over at the Tin Can API Google group (https://groups.google.com/a/
> adlnet.gov/group/TinCanAPI-adopters/topics) we are also looking at
> verbs and making a list. If you're looking to add verbs, would it be
> useful to be aware of these?
>
> Here's one list:
>
> http://tincanapi.wikispaces.com/Verb+spec+proposal

(note: the link defines the verbs in the past tense, e.g.
"experienced".. for the sake of this review, I change those to the
present...

experience........... after thinking about it, I actually like
"experience" better than the existing "play" as I think it is a much
more generically useful verb.. for instance, one would not "play" a
live event... but one can "experience" it. The existing "play" verb is
essentially a specialization of "experience" that applies only to a
fairly limited set of activities.

attempt............... In the list of verbs I posted that I would like
to introduce I have the verb "start" which is much more generic and
broadly useful than "attempt". For instance, I can start a test, or
start a server, or start a game. Using "start" achieves the same
semantic result as "attempt" for the subset of cases tin can is
looking to address.

complete.............. no issue with this one; I also propose complete
as a verb so I'm +1 on this one
pass.................. +1 on this one too
fail.................. +1 on this one too
start................. +1 on this one too
stop.................. In the new set of verbs I suggest, I have the
"terminate" verb that I think is more generically useful than "stop"
... for instance, I can terminate a process, terminate a session,
terminate a server, terminate employment, go back in time and
terminate the leader of the resistance as a young boy... you know,
useful stuff.
answer................ for this, I would recommend using post where
object is the answer to the target question.
interact.............. this one I'm not completely clear on but I do
define a "use" verb in the set of additional verbs I would like to
add... are those generally the same?
import................ this one I'm not completely clear on... could
we not also use the existing "add" verb however?
void.................. ok, I get the use case for this... it's
essentially to retract an earlier statement... perhaps the object of
the activity is the activity that is to be retracted? I'm fine with
that but I probably would have gone with "retract" as a verb rather
than "void"
enroll................ can we use the existing "join" verb for this
instead? e.g. John joined the class.
unenroll.............. can we use the existing "leave" verb for this
instead? e.g. John left the class.
obtain................ can use the existing "receive" verb for this
instead? e.g. John received the award.
review................ +1


>
> There's another list at:
>
> http://tincanapi.wikispaces.com/Verbs+and+Activities

comment............... can use "post" with comment object and target
rate.................. use "review"
unshare............... we should have thought of this one already
enjoy................. use "like"
disliked.............. +1... we have unlike which is a distinctly
different action
author................ +1... we have post to indicate creation of an
object, but the person who created the object may not be the same as
the person who authored the content
edit.................. use "update"
publish............... hmm... need to think if this is covered by "post"
recommend............. how is this different from share and like?
borrow................ +1
annotate.............. I was thinking of a more generic "attach"
verb.. e.g. to annotate something you would "attach" a note to a
target object
reference............. not sure about this one.
link.................. or this one...
return................ +1
view.................. +1
schedule.............. +1
miss.................. +1
participate........... +1
score................. I need to think this one through more
satisfy............... +1
master................ +1 but this one is definitely very domain specific...
challenge............. we need a "send" verb... where object is the
challenge sent to target
decline............... we can use the "reject" verb
initiate.............. we can use the "start" verb
achieve............... +1 but this is very domain specific
qualify............... +1
award................. we can use the "give" verb
recognize............. can we use the "acknowledge" verb
appoint............... +1 but this is very domain specific
won................... +1
lost.................. +1
tie................... +1
ranked................ can use "achieve" for this, where the object is
a description of the rank
message............... we need a generic "send" verb
submit................ +1
modify................ use "update"
bought................ use "purchase"
sold.................. +1
list.................. we have the existing "add" verb.. and"offer"
unlist................ we can use remove or "void" for this...
discover.............. perhaps a more generic "find" verb would be better?
went.................. I was thinking of a generic "at" verb.. e.g.
"{Actor} was at {Location}" we already have the "checkin" verb for
explicit checkins
grade................. Hmm, will have to think through this one, but
very domain specific
confirm............... +1.. my initial thought was that this could be
done using "approve" or "agree" but the act of confirming something
is not always the same as approving it or agreeing to it.
adjust................ can possibly use "update" for this?
teach................. this and lecture are very domain specific so no
general opinion, but it does make me wonder if we need a more generic
"lead" verb
support............... +1 but generally domain specific...
tutor................. same...
mentor................ same...
contact............... hmm.. ok, I retract what I said about
"interact" previously, having a generic "interact" verb as in "{actor}
interacted with {person object}" etc would be quite useful as a
generic form of "contact"
show.................. perhaps the same as "present"?
provide............... we have the "give" verb currently

>
> and another at:
>
> http://www.adlnet.gov/tin-can-verbs-from-scratch
>
> @garemoko

After going through all these and reviewing the various generalized
cases.. below is the amended list of verbs I would like to consider
being added to the master list... several of my original items have
been removed, and several more generalized verbs derived from the tin
can lists have been added.

accept................ actor accepts object [as part of target]
access................ actor accesses object
acknowledge........... actor acknowledges object
agree................. actor agrees with the object
append................ actor appends object to target
approve............... actor approves the object
assign................ actor assigns object to target
at.................... actor is at object (e.g. to indicate physical
location at a point in time)
attach................ actor attaches object to target
attend................ actor attends object
author................ actor authored object
authorize............. actor authorizes object
borrow................ actor borrowed object [from target]
build................. actor builds object
close................. actor closes object
commit................ actor commits object [to target]
confirm............... actor confirms object
complete.............. actor completes object
deliver............... actor delivers object [to target]
deny.................. actor denies object
disagree.............. actor disagrees with object
dislikes.............. actor dislikes the object
experience............ actor experiences the object
find.................. actor finds object
host.................. actor hosts object
insert................ actor inserts object into target
interact.............. actor interacted with object
listen................ actor listens to object
lose.................. actor loses object (e.g. object can be a game)
open.................. actor opens object
present............... actor presents object (as is giving a presentation)
purchase.............. actor purchases object
qualify............... actor qualifies for object
read.................. actor reads object
reject................ actor rejects object
replace............... actor replaces target with object
return................ actor returns object [to target]
request............... actor requests object [from target]
resolve............... actor resolves object
retract............... actor retracts object [from target]
return................ actor returns object [to target]
satisfy............... actor satisfies object (e.g. object can be a
"requirement" that the actor satisfies... e.g. passing requirements
for a class)
schedule.............. actor schedules object
search................ actor searches for object [within target]
send.................. actor sends object [to target]
sell.................. actor sells object [to target]
sponsor............... actor sponsors object
start................. actor starts object
submit................ actor submits object [to target]
terminate............. actor terminates object
tie................... actor tied object (e.g. object can be a game)
unshare............... actor unshares object [with target]
unsatisify............ actor does not satisfy object (e.g. object can
be "requirement" that the actor did not satisfy... e.g. failing
requirements for a class)
use................... actor uses object
view.................. actor views object
watch................. actor watches object
won................... actor won object (e.g. object can be a game)

- James

Evan Prodromou

unread,
May 22, 2012, 9:47:07 AM5/22/12
to activity...@googlegroups.com
So, one of the things that we've had in the past is a close matching between parts of the schema and real applications.

For example, mapping activities from Flickr, Delicious, Facebook to Activity Streams format to make sure they make sense.

I'm concerned that we've just added a much bigger set of verbs and object types without following that process.

Are we moving away from that philosophy of "paving the cowpaths"? If so, why?

-Evan

James M Snell

unread,
May 22, 2012, 12:33:22 PM5/22/12
to activity...@googlegroups.com
Definitely understand the concern. The first thing I will say is that
I'm not opposed to pulling items back out of the list. I will say that
each, with some modification, came from a real world scenario or
application that has either been deployed or is being worked on. Also,
at this point, I personally do not consider the list of verbs or
object types currently included in that document as being canonical..
it's merely documenting some patterns with the hope of fostering some
degree of consistency. My hope is that implementors will go off and do
whatever makes the most sense for their particular implementations and
that, at some point in the future we can take another look and see
exactly which paths need to be paved, if any.
> --
> You received this message because you are subscribed to the Google Groups
> "Activity Streams" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/activity-streams/-/HXe99JHXBmEJ.

Michiel de Jong

unread,
May 23, 2012, 5:59:09 AM5/23/12
to activity...@googlegroups.com
+1, assuming each app uses only a subset of verbs in interesting ways,
then with less verbs you get more cross-compatible traffic between
apps.

Michiel.
Reply all
Reply to author
Forward
0 new messages