W3C home > Mailing lists > Public > public-vocabs@w3.org > May 2013

Re: Actions in Schema.org

From: Jim Klo <jim.klo@sri.com>
Date: Wed, 15 May 2013 03:25:27 +0000
To: Dan Brickley <danbri@google.com>
CC: Yaar Schnitman <yaar@google.com>, Steve Macbeth <Steve.Macbeth@microsoft.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>
Message-ID: <8A122E4D-FFEA-4014-8422-8D839FE87FF5@sri.com>

On May 14, 2013, at 6:28 PM, Dan Brickley <danbri@google.com>
 wrote:

> +Cc: Yaar, Steve
> 
> On 11 May 2013 23:45, Jim Klo <jim.klo@sri.com> wrote:
>> Hi,
>> 
>> I've been looking over the Actions proposal and find it welcoming.
>> 
>> A few of us on the Learning Registry team have been considering harmonizing
>> our LR Paradata 1.0 spec (1) with Schema.org and the Actions proposal really
>> is a great step. The Paradata spec is an enhancement of ActivityStrea.ms (2)
>> primarily directed towards Educational Activities.
> 
> Great! Sometime I'd love to understand better how your work fits with LRMI too.
> 

Absolutely. The short of it is, LR has been concerned with being a network of sharing metadata and paradata announcements about various learning resources. Our thesis is that traditional metadata becomes old and crufty and outdated, making it less valuable to those trying to discover learning resources and that crowdsource, usage or activity data about learning resources , which we've coined as paradata, is more valuable as that it can contain how a learning resource was used, matched to alignments, commented, etc in a crowdsourced manner.  The initial version was comm_Para 1.0 [1] which was succeed by LR Paradata 1.0 as a less rigorous, JSON friendly variant, from which we modeled a bit after activitystrea.ms.  The important pieces of this work is the notion of Activity, where there's an actor (for building WOT/credibility/demographics), object acted upon (a learning resource), and some action (rate, comment, use, align, etc) within some context  (rubric, grade level, state curricular standard, etc). Where LR Paradata currently has holes IMO are that actors and objects and contexts are very loosely defined making machine readability tough and in some cases impossible. So a few of us want to use the vocabulary within Schema and LRMI to fill that gap as the LRMI additions to CreativeWork, Audience, and AlignmentObject fill that void well. However, the means to effectively model activity (actor, verb, object, references, context) as a well defined data model have been lacking, and until I was the proposal for Action - we were considering defining a proposal as well.

[1] https://wiki.ucar.edu/display/nsdldocs/comm_para

Maybe not short enough… With Schema as it stands (say including proposed Action), it almost fits the use cases we need (and after further reflection on ViewAction, which I missed the first few times through, gets even closer).  At this point I'd rather argue about how to represent the contexts of actions and fine tune differences between actions available vs executed.

Below are some of our use case examples that I've tried to make more human readable via brevity vs correct form:

This one would be hard to distinguish if this a learning resource definition or an action performed… action property has to be fully inspected before figuring out how to treat the data.
{
	type: "CreativeWork",
        name: "Mars Rover video",
	url: "http://www.pbs.org/mars/rover/video",
	action: { type: "Action",  name: "match", performedBy: [ PersonOrOrganization ] } 
	educationalAlignment: {  type: "AlignmentObject", targetUrl: "http://example.com/some/state/standard/x.y.z" }
}


{
	type: "CreativeWork",
        name: "Mars Rover video",
	url: "http://www.pbs.org/mars/rover/video",
	action: [{ name: "subscribe" }, { name: "bookmark" }, { name: "favorite" }]
	educationalAlignment: {  targetUrl: "http://example.com/some/state/standard/x.y.z" }
}

Granted status, startTime, endTime, and performedBy are all possible properties too, but you still have to 'duck type' the model to figure out the intent.


// This seems to work, but not sure if ViewAction == "ranking" is a natural fit, I'd rather just see "item" absorbed into "Action"

{	
	type: "ViewAction",
	name: "ranked",
	performedBy: [ PersonOrOrganization ]
	item: {
		type: "CreativeWork",
		name: "Mars Rover video",
		url: "http://www.pbs.org/mars/rover/video"
		aggregateRating: {
			type: "AggregateRating",
			ratingCount: 1,
			bestRating: 5,
			worstRating: 1,
			ratingValue: "3"
		}
	}
}


// Better or worse… could be expressed this way too

{
	type: "ViewAction",
	name: "ranked",
	performedBy: [ PersonOrOrganization ]
	item: {
		type: "AggregateRating",
		itemReviewed: { 
			type: "CreativeWork",
			name: "Mars Rover video",
			url: "http://www.pbs.org/mars/rover/video"
		},
		ratingCount: 1,
		bestRating: 5,
		worstRating: 1,
		ratingValue: "3"
	}
}

Both of these are okay, but in none any of these I'm not quite sure how to express context what was done… like a I rated this resource a 4 on a scale of 1 - 5 using rubric ABC… possibly in this case an extension to AggregateRating is required, but same could be said for the other examples, context could be that the resource is embedded on an aggregator (Learnist, Pinterest, Gooru, etc).

And FWIW - I'll acknowledge much modeling needs to be determined though communities of practice.


>> However there are two properties I feel are missing from Action. One to
>> specify the object receiving the action,
> 
> That one is in there: we have an 'action' property on the Thing type
> (whose value is Action).
> 
> Hmm, I see you mention 'action' property below, so now I'm not sure.
> The definition of 'thing' is given as 'Action that apply to the
> thing.'; how does that differ from your 'object receiving the action'?
> 

I think the key distinction to note is the a) "record of an action that has occurred" versus b) "an action that is available to execute".

	ie: 
		for a) "Dan bought the widget" - here Dan performed an action bought.

		for b) "The widget can be purchased via the Buy button" - here Buy is an available action for the widget 

This is a real key semantic detail when machine processing; especially if the vocabulary for the "verb" is not well controlled.  If you're mining for analytical data to figure out what the context is, one must evaluate the context of all the properties of the Action to figure out how to discover which are available actions versus actions that have been performed.

I'm not sure I have a good proposal for making a better distinction other than via specialization of class names PerformedAction vs AvailableAction.

Much of the proposal so far only shows use cases around "available actions" - and not too many around "performed actions".   Possibly James Snell can help flush out more performed actions use cases, I can certainly provide many of those as well.


> (I'm not crazy about properties and types which differ only in
> capitalization, but that's the strawman for now)
> 

Agreed… it's like referring to schema vs Schema in conversation. :-)


>>      and possibly a target (which I
>> think may be a generalization on the location property)
>> 
>>         Dan (actor) posted (verb)  an article (object) to his blog (target)
> 
> I'm not sure how that idea would be handled; Yaar/Steve, can you comment?
> 
> Dan
> 
> 
>> Use cases relevant to Learning Registry (and I would suspect LRMI and
>> ActivityStrea.ms as well):
>> 
>>         An Organization (actor) aligned (verb) a CreativeWork (object) to
>> an AlignmentObject (target)
>> 
>> I'd envision mapping:
>>        actor: performedBy
>>        verb: name
>> 
>> But not sure how to map object and target properties.
>> 
>> I recognize that there are 2 potential solutions to this via the proposal:
>> 
>>       A. Thing has an action property, but that seems more appropriate to
>> mark actions that can be performed vs ones that have been executed.
>> 
>>            LR use case: CreativeWork has properties action and
>> alignmentObject.
>> 
>>       B. Extend Action to be more specific; TargetedAction that includes
>> extended properties, which seems like a good way to fragment the vocabulary
>> though unknown/unexpected properties, unless formally adopted.
>> 
>>            LR use case: TargetedAction has properties sourceObject and
>> targetObject both of type Thing.
>> 
>> Thus I'd like to propose two possible directions:
>>     A. an additional property to indicate the receiving object (not quite
>> sure of the name yet) and possibly a relaxation of the currently proposed
>> location property on Action to one that might accept a Thing to accommodate
>> a target.
>>     B. an extended class TargetedAction with the additional properties as
>> described above
>> 
>> Thoughts?
>> 
>> Jim Klo
>> 
>> (1)
>> https://docs.google.com/document/d/1IrOYXd3S0FUwNozaEG5tM7Ki4_AZPrBn-pbyVUz-Bh0/mobilebasic?pli=1
>> (2) http://activitystrea.ms/specs/json/1.0/
>> Sent from my iPad
>> 
>> On May 11, 2013, at 4:43 PM, "Dan Brickley" <danbri@google.com> wrote:
>> 
>> New additions to WebSchemas Wiki from schema.org team
>> 
>> I've just been updating the WebSchemas Wiki to share some drafts that
>> the schema.org team are considering adding to schema.org, as well as
>> making a pass over the Wiki to bring it closer to being up-to-date
>> w.r.t. schema.org.
>> 
>> As always http://www.w3.org/wiki/WebSchemas is the front page, with
>> proposals listed at
>> http://www.w3.org/wiki/WebSchemas/SchemaDotOrgProposals
>> 
>> Please comment here or in the Wiki; if you reply in email, do change
>> the Subject: line to a more specific topic, to help people keep track
>> of the discussion.
>> 
>> There are also a number of longstanding proposals from the wider
>> community that are ready to move forward. Working through the backlog,
>> I'll next address TV/Radio, and then historical-data. I have also been
>> revisiting the issues list hence the WorkersUnion thread. The next
>> step you can expect to see is more formal RDFS/RDFa schemas for the
>> various proposals, and some experimental test builds of the site so we
>> can see how various of these drafts look when integrated together.
>> 
>> The new and updated materials from schema.org team:
>> 
>> 1. The most technically complex is "Actions in Schema.org". This is an
>> initiative to bring a notion of "verb" to schema.org. It has a lot of
>> potential; please take a  look. The page at
>> http://www.w3.org/wiki/WebSchemas/ActivityActions links to the earlier
>> design proposals, and to the proposal in PDF form:
>> http://www.w3.org/wiki/images/3/38/ActionsinSchema.org2013-05-11.pdf
>> 
>> This new draft takes a slightly different approach than the "Minimal
>> draft" circulated late last year; in particular it is a lot more
>> explicit in talking about usage scenarios. This should make it less
>> cryptic to read! In particular, it is interesting as it explores uses
>> of schema.org that go beyond simple public Web pages.
>> 
>> 




Received on Wednesday, 15 May 2013 03:25:56 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:29:27 UTC