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

Re: Semantically marking up a "checklist" or process

From: Martin Hepp <martin.hepp@ebusiness-unibw.org>
Date: Fri, 13 Sep 2013 12:11:46 +0200
Cc: "public-vocabs@w3.org Vocabs" <public-vocabs@w3.org>, Guha Guha <guha@google.com>
Message-Id: <F3ACF9E1-BC48-433A-9A49-25138C5227AA@ebusiness-unibw.org>
To: phil.barker@hw.ac.uk, Dan Brickley <danbri@google.com>
Hi Phil,
all:

> Hello
> There have been some discussions on the LRMI mail list[1] about educational courses that have some parallels with this. If you think of a generic educational course as a structured collection of learning resources, and consider that one way of structuring that collections is to say first you read this, then you attend event A, then event B, then you sit this test you'll perhaps see the commonality (nb other course structures exist!)
> 
> My feeling is that it would be hard to do ordering with schema since A only comes before B in certain contexts yet schema has a global scope; on the other hand it is very easy to do ordering with other related technologies, e.g.  <ol><li>A</li><li>B</li></ol>
> 
> Phil
> 
> 1. "Raising the issue of collections..." https://groups.google.com/forum/#!forum/lrmi
> 

Thanks for the input. Attached, please find my third, improved proposal for representing ordered lists if items. It should now also suit your need for representing the order of courses in a collection of learning resources. The problem with order being relative to a particular context has been already supported by the previous proposal, by the way, since you can simply define two ItemList entities with differing orders for the same or an overlapping set of items.

Here is what I changed:

- renamed the property "reference" to "item" for brevity
- added "Thing" explicitly to the list of allowed types for the range
- added "previous" and "next" properties for cases where chaining is more appropriate than integer values

I attach the proposal in the RDFa syntax accepted by Google tooling for schema.org.

After checking https://groups.google.com/forum/#!forum/lrmi briefly, I would recommend not going down the type hierarchy of WebPage for the purposes, since ordered lists are a pattern of generic value. There is no need to root them in describing a Web page structure.

I am busy theses days, but maybe someone else could create an official proposal in the W3C Wiki and add a few examples / use cases. I will be happy to take a look on respective examples once available.

Best

Martin

<!-- ========================== -->
<!-- CHANGES TO EXISTING ELEMENTS -->
<!-- ========================== -->

<!-- New range
<div typeof="rdf:Property" about="http://schema.org/itemListElement">
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ItemList">ItemList</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Text">Text</a></span>	
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
<!-- The following statement is semantically redundant, but should trigger a more useful list of allowed types "Text, ListItem, or Thing" -->	
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Thing">Thing</a></span>
	ItemList
</div>

<!-- ========================== -->
<!-- ADDITIONAL ELEMENTS -->
<!-- ========================== -->

<div typeof="rdfs:Class" about="http://schema.org/ListItem">
	<span class="h" property="rdfs:label">ListItem</span>
	<span property="rdfs:comment">An list item, e.g. a step in a checklist or how-to description.</span>
	<span>Subclass of: <a property="rdfs:subClassOf" href="http://schema.org/StructuredValue">StructuredValue</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/itemPosition">
	<span class="h" property="rdfs:label">itemPosition</span>
	<span property="rdfs:comment">The position of the item in an ordered list (1 = first, 2 = second, ...).</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Number">Number</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/item">
	<span class="h" property="rdfs:label">item</span>
	<span property="rdfs:comment">The entity represented by the entry in the list (e.g. the artist, song, ...).</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Thing">Thing</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/previous">
	<span class="h" property="rdfs:label">previous</span>
	<span property="rdfs:comment">A link to the ListItem that preceeds the current one.</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Domain: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/next">
	<span class="h" property="rdfs:label">next</span>
	<span property="rdfs:comment">A link to the ListItem that follows the current one.</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Domain: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
</div>



<!-- ========================== -->
<!-- CHANGES TO EXISTING ELEMENTS -->
<!-- ========================== -->

<!-- New range
<div typeof="rdf:Property" about="http://schema.org/itemListElement">
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ItemList">ItemList</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Text">Text</a></span>	
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
<!-- The following statement is semantically redundant, but should trigger a more useful list of allowed types "Text, ListItem, or Thing" -->	
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Thing">Thing</a></span>
	ItemList
</div>

<!-- ========================== -->
<!-- ADDITIONAL ELEMENTS -->
<!-- ========================== -->

<div typeof="rdfs:Class" about="http://schema.org/ListItem">
	<span class="h" property="rdfs:label">ListItem</span>
	<span property="rdfs:comment">An list item, e.g. a step in a checklist or how-to description.</span>
	<span>Subclass of: <a property="rdfs:subClassOf" href="http://schema.org/StructuredValue">StructuredValue</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/itemPosition">
	<span class="h" property="rdfs:label">itemPosition</span>
	<span property="rdfs:comment">The position of the item in an ordered list (1 = first, 2 = second, ...).</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Number">Number</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/item">
	<span class="h" property="rdfs:label">item</span>
	<span property="rdfs:comment">The entity represented by the entry in the list (e.g. the artist, song, ...).</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Range: <a property="http://schema.org/range" href="http://schema.org/Thing">Thing</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/previous">
	<span class="h" property="rdfs:label">previous</span>
	<span property="rdfs:comment">A link to the ListItem that preceeds the current one.</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Domain: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
</div>

<div typeof="rdf:Property" about="http://schema.org/next">
	<span class="h" property="rdfs:label">next</span>
	<span property="rdfs:comment">A link to the ListItem that follows the current one.</span>
	<span>Domain: <a property="http://schema.org/domain" href="http://schema.org/ListItem">ListItem</a></span>
	<span>Domain: <a property="http://schema.org/range" href="http://schema.org/ListItem">ListItem</a></span>
</div>

On Sep 13, 2013, at 10:39 AM, Phil Barker wrote:

> 
> On 12/09/2013 17:03, TallyFy wrote:
>> I presume this is not in scope, but it's nice to have. The markup that encapsulates a list, could that have comesAfter or comesBefore or relatedTo - or equivalents? Kept simple, this is a set of declared instances, not too far from a set of hyperlinks - since we should be free to link lists like we link anchor text in HTML.
>> 
>> The aggregation problem of parsing, indexing and ranking is unrelated here, but FYI - we intend to record the time and number of list executions on Tallyfy i.e. "How to get a Chile visa for British citizens" took on average 8 days, has 5 steps, 600 people have "done it" and step 4 took the longest average time of 4 days.  For us, it will provide inputs to rank and evaluate lists. 
>> 
>> Amit
>> http://tallyfy.com
>> On Wednesday, 11 September 2013 at 18:49, Justin Boyan wrote:
>> 
>>> I think we're basically in agreement - broaden the range of itemListElement to Thing, and document on that property that ListItem should be used when explicit ordering or numbering is required.  On ListItem, I prefer the property name "item" to "represents" -- the latter seems confusable with "sameAs".                 
>>> 
>>> jb
>>> 
>>> 
>>> On Wed, Sep 11, 2013 at 12:57 PM, Martin Hepp <martin.hepp@ebusiness-unibw.org> wrote:
>>>> Hi Justin:
>>>> On Sep 11, 2013, at 5:51 PM, Justin Boyan wrote:
>>>> 
>>>> > The current proposal is ambiguous about whether the ListItem is the item itself, or whether the ListItem.represents is the item.
>>>> > Here are two options which I think would be clearer:
>>>> 
>>>> > Option 1. Make the range of itemListElement be Thing.  Create a new StructuredValue called NumberedItem which pairs a Number and a Thing.
>>>> 
>>>> The ListItem is the ListItem ;-) Actually, it is the same as the NumberedItem type you propose below. If you want to model an entity linked to the list item (i.e. a song, artist, place, ...), then you can define that externally or within the list.
>>>> 
>>>> We could broaden the range of itemListElement to Thing so that a list can contain three types of entries:
>>>> 
>>>> a) untyped, pure text entries (as it is in the current version)
>>>> b) a structured value that holds a position and a link to another entity (my original proposal) or
>>>> c) any other entity without an order (basically your proposal; but then it becomes a unordered list).
>>>> 
>>>> > With this schema, representing a list without numbers can be done with a flat model:
>>>> >
>>>> > { "@context" : "http://schema.org",
>>>> >   "@type" : "ItemList",
>>>> >   "itemListElement" : [ {"@type" : "Movie", "name" : "Jaws"}, {"@type" : "Movie", "name" : "Bulworth"} ] }
>>>> >
>>>> Note that this list has not deterministic order. While JSON-LD and Microdata carry an order of the elements in the syntax, the order can be lost when the data is translated by RDF tooling.
>>>> 
>>>> > And the extra hierarchy only comes into play when numbers are required:
>>>> >
>>>> > { "@context" : "http://schema.org",
>>>> >   "@type" : "ItemList",
>>>> >   "itemListElement" : [ {"@type" : "NumberedItem", "number" : 1, "item" : {"@type" : "Movie", "name" : "Jaws"}},
>>>> >                         {"@type" : "NumberedItem", "number" : 2, "item" : {"@type" : "Movie", "name" : Bulworth"}} ] }
>>>> >
>>>> >
>>>> This does not work, because you assign the number to the item instead of assigning it to the item in the context of the list.
>>>> 
>>>> > Option 2. Add a new property for the item position directly to schema.org/Thing. Call it, say, "rank" -- maybe it finds some other general applications besides item lists.
>>>> >
>>>> > { "@context" : "http://schema.org",
>>>> >   "@type" : "ItemList",
>>>> >   "itemListElement" : [{"@type" : "Movie", "rank" : 1, "name" : "Jaws"}, {"@type" : "Movie", "rank": 2, "name" : "Bulworth"}] }
>>>> >
>>>> >
>>>> > What do you think? I think I prefer Option 1.
>>>> >
>>>> This has the same problem.
>>>> 
>>>> In fact, as far as I can see, the original proposal caters for all of these cases, except for the case where you want an unordered list.
>>>> 
>>>> Martin
>>>> 
>>>> > Justin
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > On Wed, Sep 11, 2013 at 11:34 AM, Martin Hepp <martin.hepp@ebusiness-unibw.org> wrote:
>>>> > >
>>>> > > My question was about *numbered* unstructured steps... which I think is actually the use case that started the thread.
>>>> > >
>>>> > Then I ListItem.name should do the trick.
>>>> >
>>>> > >
>>>> > >
>>>> > > Martin
>>>> > >
>>>> > >
>>>> > > --------------------------------------------------------
>>>> > > martin hepp
>>>> > > e-business & web science research group
>>>> > > universitaet der bundeswehr muenchen
>>>> > >
>>>> > > e-mail:  hepp@ebusiness-unibw.org
>>>> > > phone:   +49-(0)89-6004-4217
>>>> > > fax:     +49-(0)89-6004-4620
>>>> > > www:     http://www.unibw.de/ebusiness/ (group)
>>>> > >          http://www.heppnetz.de/ (personal)
>>>> > > skype:   mfhepp
>>>> > > twitter: mfhepp
>>>> > >
>>>> > > Check out GoodRelations for E-Commerce on the Web of Linked Data!
>>>> > > =================================================================
>>>> > > * Project Main Page: http://purl.org/goodrelations/
>>>> > >
>>>> > >
>>>> > >
>>>> > >
>>>> >
>>>> > --------------------------------------------------------
>>>> > martin hepp
>>>> > e-business & web science research group
>>>> > universitaet der bundeswehr muenchen
>>>> >
>>>> > e-mail:  hepp@ebusiness-unibw.org
>>>> > phone:   +49-(0)89-6004-4217
>>>> > fax:     +49-(0)89-6004-4620
>>>> > www:     http://www.unibw.de/ebusiness/ (group)
>>>> >          http://www.heppnetz.de/ (personal)
>>>> > skype:   mfhepp
>>>> > twitter: mfhepp
>>>> >
>>>> > Check out GoodRelations for E-Commerce on the Web of Linked Data!
>>>> > =================================================================
>>>> > * Project Main Page: http://purl.org/goodrelations/
>>>> >
>>>> >
>>>> >
>>>> >
>>>> 
>>>> --------------------------------------------------------
>>>> martin hepp
>>>> e-business & web science research group
>>>> universitaet der bundeswehr muenchen
>>>> 
>>>> e-mail:  hepp@ebusiness-unibw.org
>>>> phone:   +49-(0)89-6004-4217
>>>> fax:     +49-(0)89-6004-4620
>>>> www:     http://www.unibw.de/ebusiness/ (group)
>>>>          http://www.heppnetz.de/ (personal)
>>>> skype:   mfhepp
>>>> twitter: mfhepp
>>>> 
>>>> Check out GoodRelations for E-Commerce on the Web of Linked Data!
>>>> =================================================================
>>>> * Project Main Page: http://purl.org/goodrelations/
>>>> 
>>>> 
>>>> 
>>> 
>> 
> 
> 
> -- 
> 
> <http://www.icbl.hw.ac.uk/~philb/>
> 
> 
> Sunday Times Scottish University of the Year 2011-2013
> Top in the UK for student experience
> Fourth university in the UK and top in Scotland (National Student Survey 2012) 
> 
> We invite research leaders and ambitious early career researchers to join us in leading and driving research in key inter-disciplinary themes. Please see www.hw.ac.uk/researchleaders for further information and how to apply. 
> 
> Heriot-Watt University is a Scottish charity registered under charity number SC000278. 

--------------------------------------------------------
martin hepp
e-business & web science research group
universitaet der bundeswehr muenchen

e-mail:  hepp@ebusiness-unibw.org
phone:   +49-(0)89-6004-4217
fax:     +49-(0)89-6004-4620
www:     http://www.unibw.de/ebusiness/ (group)
         http://www.heppnetz.de/ (personal)
skype:   mfhepp 
twitter: mfhepp

Check out GoodRelations for E-Commerce on the Web of Linked Data!
=================================================================
* Project Main Page: http://purl.org/goodrelations/
Received on Friday, 13 September 2013 10:12:23 UTC

This archive was generated by hypermail 2.3.1 : Friday, 13 September 2013 10:12:23 UTC