On this page, we explain how you can use GoodRelations to add rich meta-data about coomodity services (e.g. haircutting) to your Web pages so that state-of-the art search engines, matchmaking services, and recommender systems will find your company.
GoodRelations is a standardized vocabulary for product, price, and company data that can (1) be embedded into existing static and dynamic Web pages and that (2) can be processed by other computers. This increases the visibility of your products and services in the latest generation of search engines, recommender systems, and other novel applications.
If you are looking for recipes for tangible products or other types of businesses, please check the GoodRelations Cookbook.
Resources:
This recipe is intended for a Web developer maintaining the Web page for a store providing commodity services.
For our example, we take the Web page http://plushbeautybar.com/services.html.
On that page, various individual services are being offered, including price information, e.g.
The basic company information for that business, including store locations and opening hours is already included in their main page http://plushbeautybar.com/, so we do not repeat that in here.
Let's assume we want to encode these individual services specification into that Web page.
This recipe refines and complements the following generic GoodRelations recipes:
Additionally, the following more specific recipes may be relevant:
GoodRelations uses one common class for products and services, enen though there can be substantial differences in modeling tangible products vs. intangible services. The main reason is that in the commercial representation, there are a lot of similarities, and, most important, most shop owners with large databases of offer data are unable to automatically separate the products from the services in their catalogs.
In GoodRelations, you always have the following main entities
The price and payment options etc. are attached to the gr:Offering.
In the case of a service, you simply create a placeholder for all services actions that you are promising to execute. The fact that this is a service is being expressed by attaching the business function "ProvideService" to the gr:Offering node.
So basically you describe services the very same way as commodity products, with the difference that you use the gr:hasBusinessFunction property with the gr:ProvideService value.
Remark: There are also two more important types, but they are not relevant for this recipe:
The class gr:ProductsAndServices and its subclasses combine objects of two different kinds - basically,
Products are basically all objects on which property rights can be obtained and transferred, while Services are basically happenings that take place in the favor of someone. So the natural modeling would be a class gr:Product and a class gr:Service.
GoodRelations, however, defines the common class gr:ProductOrService, which is union of those two classes, because with many important data sources, it is difficult to distinguish the products from the services automatically and reliably. Keep in mind that we often have shop systems with several 100k items, and very often a few percent of the entries are services.
It is basically a trade-off decision between the ease of populating the ontology vs. maximizing the reuse of the data. Another reason is that from the commercial perspective, there are many properties that are to be attached to both products and services, so we need the superclass anyway.
Please note that GoodRelations aims at services only insofar as "commodity services", like hairdressing, waste disposal, cleaning, etc. is concerned.
Insert the following additional mark-up directly before the closing '''
''' element in the source code of your Web page that contains the detailed services descriptions as shown below. In our example, the page would be
http://plushbeautybar.com/services.html
Hepp's Bagels are the tastiest you can find on campus.
<div ns="http://www.w3.org/1999/xhtml"
xmlns:rdf="
http://www.w3.org/1999/02/22-rdf-syntax-ns#
"
xmlns:rdfs="
http://www.w3.org/2000/01/rdf-schema#
"
... SNIPPET FROM BELOW ...