If you’re like me then you want to provide the most accurate description of webpages as possible. Schema.org provides hundreds of class types for you to choose from, and yet sometimes you can’t find a good class. Fortunately, Schema.org has the property additionalType that allows for further classification.
The design choices behind additionalType provide us a way to overcome the limitations of microdata. From an ontology design perspective, its a bit of a hack since its equivalent to the rdf:type property. However, the benefits and use in SEO provides a way to better signal to search engines the specific content of your webpages.
One of the nice things that additionalType provides for is a way for you to reference product or services types from external vocabularies. Much of the work of Martin Hepp of the Good Relations has been used in the expansions of Schema.org, and the product ontology is one such vocabulary for use in additionalType.
The product ontology is a service providing more than 300,000 precise definitions for types of product or services to extend Schema.org for e-commerce markup. Using wikipedia as its base vocabulary, you can lookup a product or service in wikipedia, then use the URL pattern to lookup the type in the product ontology. This gives it both breadth of term coverage, social grounding (wikipedia editing, revisions) as well as an easy method to link to dbpedia.org data.
When you want to use the product ontology, they’ve provided access with a RDF/XML dump that responds with 1000 classes per request. We created a process to loop through the data by incrementally requesting 1000 classes until no more are available. Load the data into your database and you can then call it with a webservice to populate.
One of client’s is an Architect and the closest type in the Schema.org vocabulary is http://schema.org/HomeAndConstructionBusiness. Ok, so we pick that type for the definition, but where semantic search marketing is concerned, we shouldn’t settle for that loosely correlated type. Enter, the product ontology.
To manually lookup Architecture (we chose this as its the service, rather than Architect) in wikipedia to arrive at http://en.wikipedia.org/wiki/Architecture. Take the id (suffix) of Architecture and append it http://www.productontology.org/id/ to get http://www.productontology.org/id/Architecture identifier.
Loading that in browser redirects you to the documentation http://www.productontology.org/doc/Architecture because of the [lack of] header variables used to access the data. If you add Accept: application/rdf+xml in the HTTP Request Header then you can get the raw data.
If you’ve gone the automation route and loaded the classes to a database, we can perform lookup using the english labels in a combobox and return the identifier.
The form returns the URI of the class so that we can produce the JSON-LD, RDFa or microdata with the additionalType.