W3C home > Mailing lists > Public > public-vocabs@w3.org > August 2014

Re: Inverse Properties in Microdata:, was Re: schema.org update, v1.8: added WebSite type; broadened isPartOf to relate CreativeWorks

From: Thad Guidry <thadguidry@gmail.com>
Date: Sun, 3 Aug 2014 08:56:17 -0500
Message-ID: <CAChbWaORx1nnsaVtHyjUF-B4eYDMeH6Hwn1Bp9TQGLFxj=deaQ@mail.gmail.com>
To: Jarno van Driel <jarnovandriel@gmail.com>
Cc: Gregg Kellogg <gregg@greggkellogg.net>, Dan Brickley <danbri@google.com>, "martin.hepp@ebusiness-unibw.org" <martin.hepp@ebusiness-unibw.org>, "Wallis,Richard" <Richard.Wallis@oclc.org>, W3C Web Schemas Task Force <public-vocabs@w3.org>, "Jason Johnson (BING)" <jasjoh@microsoft.com>, Juraj Kabát <kabat.juraj@gmail.com>
It is for reverse relations, just as Freebase does.

However...the proposal https://www.w3.org/wiki/WebSchemas/InverseProperties
is not worded correctly in some areas... .it should use "has a", instead of
"is a" or "is the".  Someone needs to go through the proposal in more depth
and make necessary corrections that assert the appropriate reverse
relationships so that they make sense.

Example:

The line

<link itemprop-reverse="creator" href="http://www.freebase.com/m/0yq9mqd">

expresses that http://www.freebase.com/m/0yq9mqd is the schema:creator of
the person "William Shakespeare".


"Romeo and Juliet" did not create William Shakespeare.  His Mum and Dad did.




On Sun, Aug 3, 2014 at 6:45 AM, Jarno van Driel <jarnovandriel@gmail.com>
wrote:

> mmmmm, could it be there's a misunderstanding on the working of
> itemprop-reverse (and something that needs to be explained better in the
> proposal)?
>
> The way I understood it is that:
> itemprop-reverse="memberOf" equals itemprop="member", or,
> itemprop-reverse="hasPart" equals itemprop="isPartOf".
>
> Meaning itemprop-reverse is meant to express the opposite value of a
> property but not to express a reverse relation.
>
> Dan Brickley, Martin Hepp and Thad Guidry, how do you see this?
>
>
> 2014-08-02 23:56 GMT+02:00 Gregg Kellogg <gregg@greggkellogg.net>:
>
> On Aug 1, 2014, at 7:50 AM, Dan Brickley <danbri@google.com> wrote:
>>
>> > On 1 August 2014 15:35, martin.hepp@ebusiness-unibw.org
>> > <martin.hepp@ebusiness-unibw.org> wrote:
>> >> Richard, Jarno:
>> >>
>> >> Note that the itemprop-reverse proposal does not imply that there
>> should be no inverse properties in schema.org. It is just that we should
>> be able to use properties in both directions without the need to define two
>> properties, one for each direction. Inverse properties in the vocabulary
>> can make sense in some cases (like in the ongoing thread).
>> >>
>> >> So we should be clear about the fact that advancing the
>> itemprop-reverse proposal does not stop you from having both isPartOf and
>> hasPart. We should define inverses formally in the vocabulary (e.g. by
>> adding a property http://schema.org/inverseOf to the meta-model of
>> schema.org).
>> >
>> > Indeed. Personally I'm pretty supportive of hasPart, although it is
>> > hard to know where to draw the line. We didn't do it in the last
>> > revision when the focus was more on WebSite and we generalized
>> > isPartOf as a side effect. Both isPartOf and
>> > http://schema.org/containedIn have the awkward characteristic that the
>> > point from 'inner' things to 'outer', even while markup structure
>> > generally starts with containers and has their parts 'inside' in
>> > markup terms. We're taking a good look at Periodical this week so will
>> > get back to you all on that asap.
>> >
>> > BTW
>> https://www.w3.org/wiki/WebSchemas/Periodicals,_Articles_and_Multi-volume_Works
>> > would benefit from "we think this is pretty much done" -style
>> > read-throughs from other folk here. I've bounced it off a few more
>> > contacts from the library/bibliographic world and it seems to about
>> > right....
>>
>> I've updated my Microdata to RDF implementation [1] to support
>> @itemprop-reverse, and need to clarify the interaction with @itemprop.
>> Consider the following example:
>>
>>             <div itemscope itemtype="http://schema.org/Organization">
>>               <span itemprop="name">Cryptography Users</span>
>>               <div itemprop-reverse="memberOf" itemprop="member" itemscope
>>                     itemtype="http://schema.org/OrganizationRole">
>>                 <div itemprop-reverse="memberOf" itemprop="member"
>> itemscope
>>                         itemtype="http://schema.org/Person">
>>                   <span itemprop="name">Alice</span>
>>                 </div>
>>                 <span itemprop="startDate">1977</span>
>>               </div>
>>             </div>
>>
>> This doubly-links a Role, using memberOf as the inverse of member. The
>> resulting Turtle, would be:
>>
>>             @prefix schema: <http://schema.org/> .
>>             @prefix md: <http://www.w3.org/ns/md#> .
>>             <> md:item (_:a) .
>>             _:a a schema:Organization;
>>                 schema:name "Cryptography Users";
>>                 schema:member _:b .
>>             _:b a schema:OrganizationRole;
>>                 schema:startDate "1977";
>>                 schema:member _:c;
>>                 schema:memberOf _:a .
>>             _:c a schema:Person;
>>                 schema:name "Alice";
>>                 schema:memberOf _:b .
>>
>> However, it's not clear that Microdata would support having both
>> @itemprop and @itemprop-reverse on the same element. I updated the Wiki to
>> indicate no, but this needs to be clarified with WHATWG and this list.
>>
>> (I'm also considering just dropping the md:item list, as not being too
>> useful; feedback on this would be appreciated.
>>
>> You can use this live through my distiller [2] (although, not the linter
>> yet).
>>
>> Gregg
>>
>> [1] https://github.com/ruby-rdf/rdf-microdata
>> [2] http://rdf.greggkellogg.net/distiller
>>
>> > Dan
>> >
>> >> Martin
>> >>
>> >>
>> >>
>> >>
>> >> On 01 Aug 2014, at 15:56, Wallis,Richard <Richard.Wallis@oclc.org>
>> wrote:
>> >>
>> >>> Agree that pushing for reverse property capability in Microdata is a
>> good thing.
>> >>>
>> >>> However, I must harmonise with Jarno about hasPart [click, hasPart -
>> click, hasPart - click..] as proposed in several places including the
>> Periodicals, Articles, & Mult-Volume Works proposal.
>> >>>
>> >>> Describing something like a multi-volume work, for example it is
>> quite possible that the individual parts are defined elsewhere on the web,
>> without knowledge of the the multi-volume description
>> >>>
>> >>>
>> >>> ~Richard
>> >>>
>> >>>
>> >>> On 1 Aug 2014, at 09:59, Jarno van Driel <jarnovandriel@gmail.com>
>> wrote:
>> >>>
>> >>>> "as Jarno knows, for he was involved in the discussion ;-)"
>> >>>> hehe, it could well be I mentioned the existence of the proposal
>> here and there.
>> >>>>
>> >>>> "Anyway, I'll take it to the HTML folks and report back."
>> >>>> Great, that would help a lot!
>> >>>>
>> >>>> Although I have to say (running the risk I sound like a broken
>> record) that I still believe adding an 'hasPart' property would help a lot
>> as well. I see both the <link> pointing to an itemid and itemprop-reverse
>> attribute as more advanced methods for mapping relations and fear that
>> folks, who are not too familiar with either microdata, will overlook them.
>> Having 'hasPart' as well will provide an easy and straightforward solution
>> for a property I suspect will be use quite a lot. Especially if the
>> schema.org provides sufficient examples on how to use it for layout
>> entities like WebPage, WebSite, SiteNavigationElement, WebPageElement, etc.
>> >>>>
>> >>>>
>> >>>> 2014-08-01 9:10 GMT+02:00 Dan Brickley <danbri@google.com>:
>> >>>> On 1 August 2014 07:52, martin.hepp@ebusiness-unibw.org
>> >>>> <martin.hepp@ebusiness-unibw.org> wrote:
>> >>>>> There is a fully-fledged proposal to add inverse properties to
>> microdata:
>> >>>>>
>> >>>>>    https://www.w3.org/wiki/WebSchemas/InverseProperties
>> >>>>>
>> >>>>> (as Jarno knows, for he was involved in the discussion ;-)
>> >>>>
>> >>>> And I well remember too. We had also already begun a discussion on
>> the
>> >>>> WHATWG list, so the issue is well established.
>> >>>>
>> >>>>> Maybe we can ask Dan to look into this matter again? It would
>> really help to have this feature.
>> >>>>
>> >>>> I think it is indeed time to revisit. I didn't want to push for
>> >>>> @itemprop-reverse until the Role work stabilised, but now that is
>> done
>> >>>> I believe it's time. That said, there is still sometimes
>> justification
>> >>>> for adding a reverse property, and the site software now supports
>> >>>> linking such pairs where they exist (e.g. see
>> >>>> http://schema.org/alumni). Anyway, I'll take it to the HTML folks
>> and
>> >>>> report back.
>> >>>>
>> >>>> Dan
>> >>>>
>> >>>>> Best wishes / Mit freundlichen Grüßen
>> >>>>>
>> >>>>> Martin Hepp
>> >>>>>
>> >>>>>
>> >>>>> On 01 Aug 2014, at 00:40, Jarno van Driel <jarnovandriel@gmail.com>
>> wrote:
>> >>>>>
>> >>>>>> "I notice you don’t have an itemprop attribute in your first <div>
>> element.  Was that intentional?"
>> >>>>>>
>> >>>>>> That would only have been possible if 'hasPart' (which isn't part
>> of the specification) could have been used (or itemprop-reverse="isPartOf").
>> >>>>>>
>> >>>>>> Because there is no inverse property of 'isPartOf', nor a reverse
>> mechanism for microdata, Juraj is bound to chain the entities together by
>> making use of <link itemprop="isPartOf" href="[itemid-value]">.
>> >>>>>>
>> >>>>>> A cumbersome method, that now can be applied where it first
>> couldn't. All be it but one that can be improved still.
>> >>>>>>
>> >>>>>>
>> >>>>>> 2014-07-31 17:52 GMT+02:00 Jason Johnson (BING) <
>> jasjoh@microsoft.com>:
>> >>>>>> I notice you don’t have an itemprop attribute in your first <div>
>> element.  Was that intentional?
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> From: Juraj Kabát [mailto:kabat.juraj@gmail.com]
>> >>>>>> Sent: Tuesday, July 29, 2014 8:08 AM
>> >>>>>> To: public-vocabs@w3.org
>> >>>>>> Cc: W3C Web Schemas Task Force
>> >>>>>> Subject: Re: schema.org update, v1.8: added WebSite type;
>> broadened isPartOf to relate CreativeWorks
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> When Ill try to add isPartOf property to ItemList, Im getting this
>> warning:
>> >>>>>>
>> >>>>>> WARNING: isPartOf field not specified in
>> http://schema.org/ItemList
>> >>>>>>
>> >>>>>> Example snippet:
>> >>>>>> <body itemid="#WebPage" itemscope itemtype="
>> http://schema.org/CollectionPage">
>> >>>>>>    <div class="products" itemscope itemtype="
>> http://schema.org/ItemList">
>> >>>>>>        <meta content="Unordered" itemprop="itemListOrder">
>> >>>>>>        <link itemprop="isPartOf" href="#WebPage">
>> >>>>>>
>> >>>>>>        <div itemtype="http://schema.org/Product" itemscope
>> itemprop="itemListElement">
>> >>>>>>        <img src="[url]" itemprop="image">
>> >>>>>>        <a href="[url]" itemprop="url"><span
>> itemprop="name">[name]</span></a>
>> >>>>>>      <span itemtype="http://schema.org/Offer" itemscope
>> itemprop="offers">
>> >>>>>>            <span itemprop="price">[price]</span>
>> >>>>>>      </span>
>> >>>>>>        </div>
>> >>>>>>
>> >>>>>>        <div itemtype="http://schema.org/Product" itemscope
>> itemprop="itemListElement">
>> >>>>>>        <img src="[url]" itemprop="image">
>> >>>>>>        <a href="[url]" itemprop="url"><span
>> itemprop="name">[name]</span></a>
>> >>>>>>      <span itemtype="http://schema.org/Offer" itemscope
>> itemprop="offers">
>> >>>>>>            <span itemprop="price">[price]</span>
>> >>>>>>      </span>
>> >>>>>>        </div>
>> >>>>>>
>> >>>>>>    </div>
>> >>>>>> </body>
>> >>>>>>
>> >>>>>>
>> >>>>>> But when Ill add isPartOf property to each ItemListElement,
>> everything works like expected.
>> >>>>>> What am I missing here? ItemList extends CreativeWork as well...
>> >>>>>>
>> >>>>>> Why can't I chain whole ItemList to parent but instead of that I
>> have to repeat myself for every element in list?
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> On Mon, Jul 28, 2014 at 10:20 PM, Jarno van Driel <
>> jarnovandriel@gmail.com> wrote:
>> >>>>>>
>> >>>>>> Personally I most of all like the addition of WebSite (and it's
>> creative example) as well as the reworked 'isPartOf' most and I've already
>> started to implementing them.  :-)
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> But I would have been an even happier camper if 'hasPart' would
>> have been introduced as well. And even though chaining WebSite > WebPage >
>> WebPageElements > CreativeWork now can be achieved, without abusing
>> 'mentions' for this, it unfortunately is quite cumbersome in microdata
>> because one has to use itemid quite a lot, eg:
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> <body itemid="#WebPage" itemscope itemtype="
>> http://schema.org/WebPage">
>> >>>>>>
>> >>>>>> <nav itemid="#SiteNavigationElement" itemscope itemtype="
>> http://schema.org/SiteNavigationElement">
>> >>>>>>
>> >>>>>> <link itemprop="isPartOf" href="#WebPage">
>> >>>>>>
>> >>>>>> <ul>
>> >>>>>>
>> >>>>>> <li itemscope itemtype="http://schema.org/WebPage"
>> itemid="#WebPage-1">
>> >>>>>>
>> >>>>>> <link itemprop="isPartOf" href="#SiteNavigationElement">
>> >>>>>>
>> >>>>>> <a itemprop="url" href="[some-page-url]">
>> >>>>>>
>> >>>>>> <span itemprop="name">[some-page-name]</span>
>> >>>>>>
>> >>>>>> </a>
>> >>>>>>
>> >>>>>> <ul>
>> >>>>>>
>> >>>>>> <li itemscope itemtype="http://schema.org/WebPage">
>> >>>>>>
>> >>>>>> <link itemprop="isPartOf" href="#WebPage-1" />
>> >>>>>>
>> >>>>>> <a itemprop="url" href="[some-page-url]">
>> >>>>>>
>> >>>>>> <span itemprop="name">[some-page-name]</span>
>> >>>>>>
>> >>>>>> </a>
>> >>>>>>
>> >>>>>> </li>
>> >>>>>>
>> >>>>>> <li itemscope itemtype="http://schema.org/WebPage">
>> >>>>>>
>> >>>>>> <link itemprop="isPartOf" href="#WebPage-1" />
>> >>>>>>
>> >>>>>> <a itemprop="url" href="[some-page-url]">
>> >>>>>>
>> >>>>>> <span itemprop="name">[some-page-name]</span>
>> >>>>>>
>> >>>>>> </a>
>> >>>>>>
>> >>>>>> </li>
>> >>>>>>
>> >>>>>> </ul>
>> >>>>>>
>> >>>>>> </li>
>> >>>>>>
>> >>>>>> </ul>
>> >>>>>>
>> >>>>>> </nav>
>> >>>>>>
>> >>>>>> </body>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> I'm still quite pleased with the update is as though.
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> 2014-07-28 17:43 GMT+02:00 Dan Brickley <danbri@google.com>:
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> previous update (1.7),
>> >>>>>>
>> http://lists.w3.org/Archives/Public/public-vocabs/2014Jul/0012.html
>> >>>>>>
>> >>>>>> A small schema.org update just went live:
>> >>>>>>
>> >>>>>> 1. We add a new CreativeWork type, "WebSite"
>> >>>>>>
>> >>>>>> http://schema.org/WebSite
>> >>>>>>
>> >>>>>> "A WebSite is a set of related web pages and other items typically
>> >>>>>> served from a single web domain and accessible via URLs."
>> >>>>>>
>> >>>>>> The example shows the use of this with SearchAction.
>> >>>>>>
>> >>>>>> 2. We adopt the proposal made by the bibextend group and other
>> >>>>>> collaborators, to broaden isPartOf. It now relates any
>> CreativeWork to
>> >>>>>> any other CreativeWork
>> >>>>>>
>> >>>>>> http://schema.org/isPartOf
>> >>>>>>
>> >>>>>> see also
>> https://www.w3.org/wiki/WebSchemas/Periodicals,_Articles_and_Multi-volume_Works
>> >>>>>>
>> >>>>>> 3. Potential Actions documentation
>> >>>>>>
>> >>>>>> The previously PDF-only Potential Actions document is now on the
>> site in HTML:
>> >>>>>>
>> >>>>>> http://schema.org/docs/actions.html
>> >>>>>>
>> >>>>>> 4. Adopted some markup fixes from Stephane Corlosquet (thanks!)
>> >>>>>>
>> >>>>>> https://github.com/rvguha/schemaorg/pull/71
>> >>>>>>
>> >>>>>> 5. Improved consistency of encoding / associatedMedia description
>> >>>>>> (thanks Dan Scott!)
>> >>>>>>
>> >>>>>> https://github.com/rvguha/schemaorg/pull/35
>> >>>>>>
>> >>>>>> 6. Updated some out-of-date sections of the FAQ: it now mentions
>> >>>>>> Yandex appropriately, acknowledges that there's life beyond
>> Microdata
>> >>>>>> (i.e. RDFa, JSON-LD), and doesn't talk about "version 0.9 draft"
>> any
>> >>>>>> more.
>> >>>>>>
>> >>>>>> https://github.com/rvguha/schemaorg/pull/69
>> >>>>>>
>> >>>>>> Thanks all :)
>> >>>>>>
>> >>>>>> Dan
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>
>> >>
>> >
>>
>>
>


-- 
-Thad
+ThadGuidry <https://www.google.com/+ThadGuidry>
Thad on LinkedIn <http://www.linkedin.com/in/thadguidry/>
Received on Sunday, 3 August 2014 13:56:50 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:49:34 UTC