- From: Martin Hepp <martin.hepp@ebusiness-unibw.org>
- Date: Fri, 4 Nov 2011 09:25:28 +0100
- To: Adrian Giurca <giurca@tu-cottbus.de>
- Cc: Aaron Bradley <aaranged@yahoo.com>, "public-vocabs@w3.org" <public-vocabs@w3.org>
Adrian: In my example, I wanted to show how the principle of modeling enumerations works. You are right that currently, the property "ingredients" has the range of text/URL. But it could be changed to the type that I suggested. Maybe I should have used a new property name to avoid confusion, e.g. "includesSpice". Martin On Nov 3, 2011, at 6:51 PM, Adrian Giurca wrote: > Dear Aaron, > > According with the definition of http://schema.org/Recipe the property "ingredients" has Text (including URL) as an expected type. Therefore I would say, a schema.org processor will not process an instance value as described in Example 2a. Text is a datatype and is not derived from Thing therefore I would say that "ingredients" does not expect an "object" (i.e., itemscope). > > On my knowledge <link> can be used only inside HTML5 <head> and is an empty element. As such I would say that a markup as below will extract a Text from the ingredients property. Looks like iIt is the responsibility of each schema.org processor what to do with the extracted value. > > <div itemscope itemtype="http://schema.org/Recipe" > > > <span itemprop="name">Oregano Bread</span> > <span itemprop="ingredients">1 cup water</span> > <span itemprop="ingredients">2 1/2 tablespoons olive oil, 1 1/4 teaspoons salt > 2 1/2 tablespoons grated parmesan cheese > </span> > ... > </div> > > How to relate "oregano" to URI http://dbpedia.org/resource/Oregano looks not easy. According with their suggestions with respect of missing/implicit information: "use the meta tag with content." (see see http://schema.org/docs/gs.html#advanced_missing ) I would point on the below markup: > <div itemscope itemtype="http://schema.org/Recipe" > > > <span itemprop="name">Oregano Bread</span> > <meta itemprop="ingredients" content= > "http://dbpedia.org/resource/Oregano" > />oregano > <span itemprop="ingredients">1 cup water</span> > <span itemprop="ingredients">2 1/2 tablespoons olive oil, 1 1/4 teaspoons salt > 2 1/2 tablespoons grated parmesan cheese > </span> > ... > </div> > > The schema.org processor should relate the URI http://dbpedia.org/resource/Oregano to text "oregano". The final collected value for the property "itemprop" would be: > > "http://dbpedia.org/resource/Oregano"+"1 cup water"+"2 1/2 tablespoons olive oil, 1 1/4 teaspoons salt 2 1/2 tablespoons grated parmesan cheese" > A specific schema.org processor will decide what to do with this text. > > > -Adrian Giurca > > On 11/3/2011 5:33 PM, Aaron Bradley wrote: >> Hi Martin (et al.) >> >> Thanks for your detailed response. I love the first example you cited ("Oregano" - below as "Example 1"), so much so that I'd like to blog it as an example of using DBPedia as a method of extending schema.org. Though I wonder how one would handle a linked instance of oregano: >> <link itemprop="ingredients" href= >> "http://dbpedia.org/resource/Oregano" >> /><a href="[SomeURL]">Oregano</a> ? >> >> The additional examples (below as "Example 2") are, well, additional, and as a result I wouldn't know which one to select (2b. seems seems somewhat complicated to me, and 2c. doesn't seem to jibe with the schema.org instructions for extending a property - am I misinterpreting something?). >> >> One way or another, to both your and Bernard's point that one can't have an ontology of everything - of course. And so Bernard's suggestion is well-taken: >> >> >>> So maybe schema.org could indeed set some pragmatic limits to its expansion, in terms of >>> >> size, depth, number of concepts, keeping it to the scope and depth of a >> "middle" ontology, and entrust both crowsourced vocabularies (Freebase, >> DBpedia) and technical public vocabularies (Music Ontology, Legal >> Ontology ...) URIs for more specialized extensions. >> >> I would modify this to say not only pragmatic limits, and pragmatic instructions about what to do when one requires a type, class or property not already listed in schema.org. There's absolutely no mention on the extension page of using other vocabularies or ontologies, and indeed says that "you can always create new schemas that are not at all tied to those on schema.org" - which seems at odd with the standard suggested practice of reusing existing vocabularies as much as possible. >> >> Having said all of this, webmasters are most likely to incorporate schema.org microdata when the vocabulary is sufficient for their needs, and to use extensions where those extensions are accessibly warehoused (as per Roy's original point). >> >> The stated purpose of schema.org is not to describe everything, but to provide "a collection of schemas, i.e., html tags, that >> webmasters can use to markup their pages in ways recognized by major >> search providers." And I think it's important to focus on this when discussing schema.org from an "ordinary" webmaster perspective. That there are other vocabularies available doesn't really matter to webmasters that are contemplating using schema.org to improve their search visibility. >> >> Example 1: >> >>> What I mean by that is pretty simple and straighforward: >>> >>> For a certain Microdata property with the defined range "URL" or >>> "DBPedia URL" (tbd), >>> >>> 1. Search the English Wikipedia for the best matching page >>> >>> Example: >>> >>> Oregano --> >>> http://en.wikipedia.org/wiki/Oregano >>> >>> >>> 2. Strip off >>> http://en.wikipedia.org/wiki >>> >>> >>> --> /Oregano >>> >>> 3. Attach the DBPedia base URI >>> http://dbpedia.org/resource/ >>> >>> >>> --> >>> http://dbpedia.org/resource/Oregano >>> >>> >>> 4. Use this with the respective property >>> >>> <div itemscope itemtype= >>> "http://schema.org/Recipe" >>> > >>> <span itemprop="name">Oregano Bread</span> >>> <link itemprop="ingredients" >>> href= >>> "http://dbpedia.org/resource/Oregano" >>> /> Oregano >>> ... >>> </div> >>> >> Example 2: >> a. >> >>> # With locally defined value >>> <div itemscope itemtype= >>> "http://schema.org/Recipe" >>> > >>> <span itemprop="name">Oregano Bread</span> >>> <div itemprop="ingredients" itemscope >>> itemtype= >>> "http://schema.org/Enumeration/Herb" >>> > >>> <span itemprop="name">Oregano</span> >>> </div> >>> ... >>> </div> >>> >> b. >> >>> # With DBPedia URI as a valuevalue >>> <div itemscope itemtype= >>> "http://schema.org/Recipe" >>> > >>> <span itemprop="name">Oregano Bread</span> >>> <link itemprop="ingredients" >>> href= >>> "http://dbpedia.org/resource/Oregano" >>> /> Oregano >>> ... >>> </div> >>> >> c. >> >>> # With predefined schema.org value >>> <div itemscope itemtype= >>> "http://schema.org/Recipe" >>> > >>> <span itemprop="name">Oregano Bread</span> >>> <link itemprop="ingredients" >>> href= >>> "http://schema.org/Oregano" >>> /> Oregano >>> ... >>> </div> >>> >>> >> >> >> >
Received on Friday, 4 November 2011 08:26:06 UTC