What is the relation between Schema.org, Goodrelations-vocabulary.org and Productontology.org?
Schema.org informs, \"W3C schema.org Community Group is the main forum
Schema.org defines properties and types primarily for web/email content.
GoodRelations defines properties and types primarily for e-commerce.
The Product Types Ontology defines types (no properties) for every main thing described by an English Wikipedia article.
(Note that Schema.org integrated many parts of GoodRelations: Good Relations and Schema.org.)
Of course there are many more vocabularies, and you could create your own, too.
All these vocabularies are RDF-based, so they can be used in any RDF serialization (like JSON-LD, RDFa, RDF/XML, Turtle etc.).
They could also be used in Microdata, although it’s not a RDF serialization (but close enough).
An author of the structured data decides which vocabularies and which syntaxes to use.
Examples:
The author Stack Overflow uses two vocabularies (Open Graph Protocol, Schema.org) and two syntaxes (Microdata, RDFa) on a Q&A page.
The author Tim Berners-Lee uses 14 vocabularies (Creative Commons, FOAF, DOAP, Solid, Geo, etc.) and one syntax (RDF/XML) in his card.
A consumer (a browser add-on, a stand-alone tool, a web application/service etc.) of the structured data decides which vocabularies and which syntaxes to support.
Examples:
The consumer Google Search supports one vocabulary (Schema.org) and three syntaxes (JSON-LD, Microdata, RDFa) for their rich results.
The consumer Gmail supports one vocabulary (Schema.org) and two syntaxes (JSON-LD, Microdata) for their Gmail Actions/Highlights.
The consumer Facebook supports one vocabulary (Open Graph Protocol) and one syntax (RDFa) for their share feature.
Use the vocabulary Schema.org for everything. It’s the most used vocabulary, it’s supported/sponsored by the big search engine services, and it’s intended for all kind of content.
Use other vocabularies in addition to the types/properties from Schema.org. Schema.org doesn’t cover all areas/domains in depth. Where it is lacking, use suitable, more specific vocabularies.
Use one of these syntaxes: JSON-LD, Microdata, RDFa. See my answer about differences between JSON-LD, Microdata, and RDFa and my answer comparing Microdata and RDFa. Unless you already know one of these syntaxes, I would recommend to go with RDFa (JSON-LD can be easily generated automatically from a HTML+RDFa document, but not the other way around).
So if you provide a yacht charter service, you could use something like this:
<section typeof="schema:Service http://www.productontology.org/id/Yacht_charter">
<h2 property="schema:name">Yacht charter</h2>
</section>
It uses the Service type from Schema.org (none of its more specific types apply to a yacht charter service, so this is as specific as Schema.org currently gets), and the Yacht_charter type from the Product Types Ontology.