- From: Peter Krauss <ppkrauss@gmail.com>
- Date: Sun, 22 Feb 2015 11:48:26 -0300
- To: Melvin Carvalho <melvincarvalho@gmail.com>
- Cc: Guha <guha@google.com>, W3C Vocabularies <public-vocabs@w3.org>
- Message-ID: <CAHEREtujJ1RKEf-jq075oD5q2qPwr2CDxUpMkN+GwFU1Bs0TUQ@mail.gmail.com>
I am new at schema.org... My "fresh perception" is that schema.org do not have *methodological clarity*. This initial perception now is confirmed with this Melvin's suggestion. It seems a good suggestion, but I think that, perhaps, the first step is to put some transparency (sorry if I not see, please show it) in the schema.org site. Examples: * is there a "*curator body*" a in this community? Who decides whether a new vocabulary will be adicoinado? * is there some "*permanent commitment*" with the added external vocabularies? (ex. "on update cascating" new vocabulary versions) * the inclusion of external vocabularies use some methodological approach? There are some (automated) documentation about each external fragment included, such as using the OWL2 operators <http://www.w3.org/TR/owl2-syntax/>? * are there a formal democratic schema to vote proposals? (ex. voting to change a property name as suggested here <https://github.com/schemaorg/schemaorg/issues/350>) * ... Krauss 2015-02-22 10:05 GMT-03:00 Melvin Carvalho <melvincarvalho@gmail.com>: > > > On 13 February 2015 at 22:34, Guha <guha@google.com> wrote: > >> >> Schema.org extension mechanism >> >> >> >> Motivation >> >> As schema.org adoption has grown, a number groups with more >> specialized vocabularies have expressed interest in extending schema.org >> with their terms. The most prominent example of this is GS1 with product >> vocabularies. Other examples include real estate, medical and bibliographic >> information. Even in something as common as human names, there are groups >> interested creating the vocabulary for representing all the intricacies of >> names. >> >> Outline of solution >> >> There are two kinds of extensions: reviewed extensions and external >> extensions. Both kinds of extensions typically add subclasses and >> properties to the core. Properties may be added to existing and/or new >> classes. More generally, they are an overlay on top of the core, and so >> they may add domains/ranges, superclasses, etc. as well. Extensions have to >> be consistent with the core schema.org. Every item in the core (i.e., >> www.schema.org) is also in every extension. Extensions might overlap >> with each other in concepts (e.g., two extensions defining terms for >> financial institutions, one calling it FinancialBank and other calling it >> FinancialInstitution), but we should not have the same term being reused to >> mean something completely different (e.g., we should not have two >> extensions, one using Bank to mean river bank and the other using Bank to >> mean financial institution). >> >> Reviewed Extensions >> >> Each reviewed extension (say, e1), gets its own chunk of schema.org >> namespace: e1.schema.org. The items in that extension are created and >> maintained by the creators of that extension. Reviewed extensions are very >> different from proposals. A proposal, if accepted, with modifications could >> either go into the core or become a reviewed extension. >> >> A reviewed extension is something that has been looked at and discussed >> by the community, albeit not as much as something in the core. We also >> expect a reviewed extension to have strong community support, preferably in >> the form of a few deployments. >> >> External Extensions >> >> Sometimes there might be a need for a third party (such as an app >> developer) to create extensions specific to their application. For example, >> Pinterest might want to extend the schema.org concept of ‘Sharing’ with >> ‘Pinning’. In such a case, they can create schema.pinterest.com and put >> up their extensions, specifying how it links with core schema.org. We >> will refer to these as external extensions. >> >> >> >> How it works for webmasters >> >> All of Schema.org core and all of the reviewed extensions will be >> available from the schema.org website. Each extension will be linked to >> from each of the touch points it has with the core. So, if an extension >> (say, having to do with Legal stuff) creates legal.schema.org/LegalPerson >> which is a subclass of schema.org/Person, the Person will link to >> LegalPerson. Typically, a webpage / email will use only a single extension >> (e.g., legal), in which case, instead of ‘schema.org’ they say ‘ >> legal.schema.org’ and use all of the vocabulary in legal.schema.org and >> schema.org. >> >> As appropriate, the main schema.org site will also link to relevant >> external extensions. With external extensions, the use of multiple >> namespaces is unavoidable. >> >> What does someone creating an extension need to do >> >> We would like extension creators to not have to worry about running a >> website for their extension. Once the extension is approved, they simply >> upload a file with their extension into a certain directory on github. >> Changes are made through the same mechanism. >> >> Since the source code for schema.org is publicly available, we encourage >> creators of external extensions to use the same application. >> >> Examples >> >> Archives example in RDFa >> >> This example uses a type that makes sense for archival and bibliographic >> applications but which is not currently in the schema.org core: >> Microform, defined as "Any form, either film or paper, containing >> microreproductions of documents for transmission, storage, reading, and >> printing. (Microfilm, microfiche, microcards, etc.)" >> >> The extension type is taken from http://bibliograph.net/Microform, >> (which on this proposed model would move to bib.schema.org) which is a >> version of the opensource schema.org codebases that overlays >> bibliographic extras onto the core schema.org types. The example is >> adapted from http://schema.org/workExample. >> >> >> <div vocab="http://bib.schema.org/"> >> >> <p typeof="Book" resource="http://www.freebase.com/m/0h35m"> >> >> <em property="name">The Fellowship of the Rings</em> was written by >> >> <span property="author">J.R.R Tolkien</span> and was originally >> published >> >> in the <span property="publisher" typeof="Organization"> >> >> <span property="location">United Kingdom</span> by >> >> <span property="name">George Allen & Unwin</span> >> >> </span> in <time property="datePublished">1954</time>. >> >> The book has been republished many times, including editions by >> >> <span property="workExample" typeof="Book"> >> >> <span property="publisher" typeof="Organization"> >> >> <span property="name">HarperCollins</span> >> >> </span> in <time property="datePublished">1974</time> >> >> (ISBN: <span property="isbn">0007149212</span>) >> >> </span> and by >> >> <span property="workExample" typeof="Book Microform"> >> >> <span property="publisher" typeof="Organization"> >> >> <span property="name">Microfiche Press</span> >> >> </span> in <time property="datePublished">2016</time> >> >> (ISBN: <span property="isbn">12341234</span>). >> >> </span> >> >> </p> >> >> </div> >> >> Alternative RDFa: >> >> The example above puts all data into the extension namespace. Although >> this can be mapped back into normal schema.org it puts more work onto >> consumers. Here is how it would look using multiple vocabularies: >> >> <div vocab="http://schema.org/" prefix="bib: http://bib.schema.org/"> >> >> <p typeof="Book" resource="http://www.freebase.com/m/0h35m"> >> >> <em property="name">The Fellowship of the Rings</em> was written by >> >> <span property="author">J.R.R Tolkien</span> and was originally >> published >> >> in the <span property="publisher" typeof="Organization"> >> >> <span property="location">United Kingdom</span> by >> >> <span property="name">George Allen & Unwin</span> >> >> </span> in <time property="datePublished">1954</time>. >> >> The book has been republished many times, including editions by >> >> <span property="workExample" typeof="Book"> >> >> <span property="publisher" typeof="Organization"> >> >> <span property="name">HarperCollins</span> >> >> </span> in <time property="datePublished">1974</time> >> >> (ISBN: <span property="isbn">0007149212</span>) >> >> </span> and by >> >> <span property="workExample" typeof="Book bib:Microform"> >> >> <span property="publisher" typeof="Organization"> >> >> <span property="name">Microfiche Press</span> >> >> </span> in <time property="datePublished">2016</time> >> >> (ISBN: <span property="isbn">12341234</span>). >> >> </span> >> >> </p> >> >> </div> >> >> Here is that last approach written in JSON-LD (it works today, but would >> be even more concise if the schema.org JSON-LD context file was updated >> to declare the 'bib' extension): >> >> <script type="application/ld+json"> >> >> { >> >> "@context": [ "http://schema.org/", >> >> { "bib": "http://bib.schema.org/" } ], >> >> "@id": "http://www.freebase.com/m/0h35m", >> >> "@type": "Book", >> >> "name": "The Fellowship of the Rings", >> >> "author": "J.R.R Tolkien", >> >> "publisher": { >> >> "@type": "Organization", >> >> }, >> >> "location": "United Kingdom", >> >> "name": "George Allen & Unwin", >> >> }, >> >> "datePublished": "1954", >> >> "workExample": { >> >> "@type": "Book", >> >> "name": "Harper Collins", >> >> "datePublished": "1974", >> >> "isbn": "0007149212" >> >> }, >> >> "workExample": { >> >> "@type": ["Book", "bib:Microform"], >> >> "name": "Microfiche Press", >> >> "datePublished": "2016", >> >> "isbn": "12341234" >> >> } >> >> } >> >> </script> >> >> >> GS1 Example >> >> <script type="application/ld+json"> >> >> { >> >> "@context": "http://schema.org/", >> >> "@vocab": "http://gs1.schema.org/", >> >> "@id": "http://id.manufacturer.com/gtin/05011476100885", >> >> "gtin13": "5011476100885", >> >> "@type": "TradeItem", >> >> "tradeItemDescription": "Deliciously crunchy Os, packed with 4 whole >> grains. Say Yes to Cheerios", >> >> "healthClaimDescription": "8 Vitamins & Iron, Source of Calcium & High >> in Fibre", >> >> "hasAllergenRelatedInformation": { >> >> "@type": "gs1:AllergenRelatedInformation", >> >> "allergenStatement": "May contain nut traces" >> >> }, >> >> "hasIngredients": { >> >> "@type": "gs1:FoodAndBeverageIngredient", >> >> "hasIngredientDetail": [ >> >> { >> >> "@type": "Ingredient", >> >> "ingredientseq": "1", >> >> "ingredientname": "Cereal Grains", >> >> "ingredientpercentage": "77.5" >> >> }, >> >> { >> >> "@type": "Ingredient", >> >> "ingredientseq": "2", >> >> "ingredientname": "Whole Grain OATS", >> >> "ingredientpercentage": "38.0" >> >> } >> >> ] >> >> }, >> >> "nutrientBasisQuantity": { >> >> "@type": "Measurement", >> >> "value": "100", >> >> "unit": "GRM" >> >> }, >> >> "energyPerNutrientBasis": [ >> >> { >> >> "@type": "Measurement", >> >> "value": "1615", >> >> "unit": "KJO" >> >> }, >> >> { >> >> "@type": "Measurement", >> >> "value": "382", >> >> "unit": "E14" >> >> } >> >> ], >> >> "proteinPerNutrientBasis": { >> >> "@type": "Measurement", >> >> "value": "8.6", >> >> "unit": "GRM" >> >> } >> >> } >> >> </script> >> >> This example shows a possible encoding of the GS1 schemas overlaid onto >> schema.org. It uses JSON-LD syntax, which would support several >> variations on this approach. It is based on examples from GS1's proposal >> circulated to the schema.org community recently. >> >> (https://lists.w3.org/Archives/Public/public-vocabs/2015Jan/0069.html). >> Instead of writing >> >> "@context": "http://schema.org/", "@vocab": "http://gs1.schema.org/", >> it would be possible to simply write "@context": "http://gs1.schema.org/". >> >> > > > Thanks for going over this > > Could you way in on the legality of using extensions to schema.org before > they are formally reviewed say: > > 1. In a local development environment > 2. In a closed system with limited exposure to the outside world > 3. Pre-emptively in a production setting > > Of course this would be bleeding edge stuff. I am interested in whether > the feeling is "Do it at your own risk" or "This is nor permissible" > >
Received on Sunday, 22 February 2015 14:48:54 UTC