GoodRelations4ShopSoftware
|
| GoodRelations is a standardized vocabulary for product, price, and company data that can be embedded into existing static and dynamic Web pages. |
|---|
|
Project Main Page |
Contents |
Recipe
Company Page
HTML/RDFa Template for Snippet
<!-- in RDFa 1.1, you can replace the next long div element by the abbreviation: <div profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" > <span about="#company" typeof="gr:BusinessEntity"> <span property="gr:legalName" content="{{company_name}}"></span> <span property="vcard:fn" content="{{company_name}}"></span> <span rel="vcard:adr"> <span typeof="vcard:Address"> <span property="vcard:country-name" content="{{country}}" xml:lang="{{language}}"></span> <span property="vcard:locality" content="{{city}}" xml:lang="{{language}}"></span> <span property="vcard:postal-code" content="{{zip}}"></span> <span property="vcard:street-address" content="{{street}}"></span> </span> </span> <span property="vcard:tel" content="{{phone}}"></span> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="{{logo_uri}}"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page vcard:url" resource=""></span> <!-- the following four lines are optional; omit if you do not have values for the respective properties --> {% if duns %} <span property="gr:hasDUNS" content="{{duns}}" datatype="xsd:string"></span> {% endif %} {% if gln %} <span property="gr:hasGlobalLocationNumber" content="{{gln}}" datatype="xsd:string"></span> {% endif %} {% if isic %} <span property="gr:hasISICv4" content="{{isic}}" datatype="xsd:string"></span> {% endif %} {% if naics %} <span property="gr:hasNAICS" content="{{naics}}" datatype="xsd:string"></span> {% endif %} </span> </div>
RDFa Example for Snippet
<!-- in RDFa 1.1, you can replace the next long div element by the abbreviation: <div profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" > <span about="#company" typeof="gr:BusinessEntity"> <span property="gr:legalName" content="Best Purchase Electronics Shop Ltd."></span> <span property="vcard:fn" content="Best Purchase Electronics Shop Ltd."></span> <span rel="vcard:adr"> <span typeof="vcard:Address"> <span property="vcard:country-name" content="Germany" xml:lang="en"></span> <span property="vcard:locality" content="Munich" xml:lang="en"></span> <span property="vcard:postal-code" content="12345"></span> <span property="vcard:street-address" content="Example Street 123"></span> </span> </span> <span property="vcard:tel" content="+49-89-6004-4217"></span> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="http:/www.heppnetz.de/gr4shops/logo.jpg"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page vcard:url" resource=""></span> <!-- the following four lines are optional; omit if you do not have values for the respective properties --> <span property="gr:hasDUNS" content="012345678" datatype="xsd:string"></span> <span property="gr:hasGlobalLocationNumber" content="1234567890123" datatype="xsd:string"></span> <span property="gr:hasISICv4" content="5610" datatype="xsd:string"></span> <span property="gr:hasNAICS" content="722110" datatype="xsd:string"></span> </span> </div>
Product Item Page: Minimal
HTML/RDFa Template for Snippet
<!-- in RDFa 1.1, you can use the abbreviation: <span profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:product="http://search.yahoo.com/searchmonkey/product/"> <!-- Offer --> <span about="#offering" typeof="gr:Offering"> <span property="rdfs:label" content="{{product_short}}" xml:lang="{{language}}"></span> <span property="rdfs:comment" content="{{product_long}}" xml:lang="{{language}}"></span> {% if ean %} <span property="gr:hasEAN_UCC-13" content="{{ean}}"></span>{% endif %} <!-- Product Image --> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="{{product_image_uri}}"></span> <!-- Semantic link from the company --> <span rev="gr:offers" resource="{{company_uri}}"></span> <!-- Business Function - could also be repair, dispose,... --> <span rel="gr:hasBusinessFunction" resource="{{business_function}}"></span> <!-- Item Price --> <span rel="gr:hasPriceSpecification"> <span typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="{{currency}}" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="{{price}}" datatype="xsd:float"></span> <span property="gr:valueAddedTaxIncluded" content="{{vat}}" datatype="xsd:boolean"></span> </span> </span> <!-- Validity of the Offer --> <span property="gr:validFrom" datatype="xsd:dateTime" content="{{valid_from}}"></span> <span property="gr:validThrough" datatype="xsd:dateTime" content="{{valid_through}}"></span> <!-- Delivery Methods --> {% for delivery_option in delivery_options %} <span rel="gr:availableDeliveryMethods" resource="{{delivery_option.method_uri}}"></span>{% endfor %} <!-- Payment Methods--> {% for payment_method in payment_methods %} <span rel="gr:acceptedPaymentMethods" resource="{{payment_method}}"></span>{% endfor %} <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> </span> </div>
RDFa Example for Snippet
<!-- in RDFa 1.1, you can use the abbreviation: <span profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:product="http://search.yahoo.com/searchmonkey/product/"> <!-- Offer --> <span about="#offering" typeof="gr:Offering"> <span property="rdfs:label" content="Canon Rebel T2i (EOS 550D)" xml:lang="en"></span> <span property="rdfs:comment" content="The Rebel T2i EOS 550D is Canon's top-of-the-line consumer digital SLR camera. It can shoot up to 18 megapixel resolution photos and features an ISO range of 100-6400." xml:lang="en"></span> <span property="gr:hasEAN_UCC-13" content="013803123784"></span> <!-- Product Image --> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="http:/www.heppnetz.de/gr4shops/eos550d.jpg"></span> <!-- Semantic link from the company --> <span rev="gr:offers" resource="http:/www.heppnetz.de/gr4shops/index.html#company"></span> <!-- Business Function - could also be repair, dispose,... --> <span rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></span> <!-- Item Price --> <span rel="gr:hasPriceSpecification"> <span typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="EUR" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="899.00" datatype="xsd:float"></span> <span property="gr:valueAddedTaxIncluded" content="true" datatype="xsd:boolean"></span> </span> </span> <!-- Validity of the Offer --> <span property="gr:validFrom" datatype="xsd:dateTime" content="2010-05-01T00:00:00Z"></span> <span property="gr:validThrough" datatype="xsd:dateTime" content="2010-05-07T23:59:59Z"></span> <!-- Delivery Methods --> <span rel="gr:availableDeliveryMethods" resource="http://purl.org/goodrelations/v1#FederalExpress"></span> <!-- Payment Methods--> <span rel="gr:acceptedPaymentMethods" resource="http://purl.org/goodrelations/v1#PayPal"></span> <span rel="gr:acceptedPaymentMethods" resource="http://purl.org/goodrelations/v1#MasterCard"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> </span> </div>
Product Item Page: Full
HTML/RDFa Template for Snippet
<!-- in RDFa 1.1, you can use the abbreviation: <span profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:product="http://search.yahoo.com/searchmonkey/product/"> <!-- Offer --> <span about="#offering" typeof="gr:Offering"> <span property="rdfs:label" content="{{product_short}}" xml:lang="{{language}}"></span> <span property="rdfs:comment" content="{{product_long}}" xml:lang="{{language}}"></span> <!-- Semantic link from the company --> <span rev="gr:offers" resource="{{company_uri}}"></span> <span rel="gr:includes" resource="#product"></span> <!-- Business Function - could also be repair, dispose,... --> <span rel="gr:hasBusinessFunction" resource="{{business_function}}"></span> <!-- Item Price --> <span rel="gr:hasPriceSpecification"> <span typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="{{currency}}" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="{{price}}" datatype="xsd:float"></span> <span property="gr:valueAddedTaxIncluded" content="{{vat}}" datatype="xsd:boolean"></span> </span> </span> <!-- Shipping Charges --> {% for delivery_option in delivery_options %} <span rel="gr:hasPriceSpecification"> <span typeof="gr:DeliveryChargeSpecification"> <span property="gr:hasCurrency" content="{{delivery_option.currency}}" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="{{delivery_option.charge}}" datatype="xsd:float"></span> <span rel="gr:appliesToDeliveryMethod" resource="{{delivery_option.method_uri}}"></span> <span property="gr:eligibleRegions" content="{{delivery_option.region}}" datatype="xsd:string"></span> <span property="gr:valueAddedTaxIncluded" content="{{delivery_option.vat}}" datatype="xsd:boolean"></span> </span> </span> {% endfor %} <!-- Validity of the Offer --> <span property="gr:validFrom" datatype="xsd:dateTime" content="{{valid_from}}"></span> <span property="gr:validThrough" datatype="xsd:dateTime" content="{{valid_through}}"></span> <!-- Delivery Methods --> {% for delivery_option in delivery_options %} <span rel="gr:availableDeliveryMethods" resource="{{delivery_option.method_uri}}"></span> {% endfor %} <!-- Payment Methods--> {% for payment_method in payment_methods %} <span rel="gr:acceptedPaymentMethods" resource="{{payment_method}}"></span> {% endfor %} <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> </span> <!-- Product --> <span about="#product" typeof="gr:ProductOrServicesSomeInstancesPlaceholder product:Product"> <span property="rdfs:label" content="{{product_short}}" xml:lang="{{language}}"></span> <span property="rdfs:comment" content="{{product_long}}" xml:lang="{{language}}"></span> <!-- Product Image --> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="{{product_image_uri}}"></span> <!-- Product Thumbnail --> <span rel="foaf:thumbnail" resource="{{product_thumbnail_uri}}"></span> <!-- Product Model Identifiers --> {% if ean %} <span property="gr:hasEAN_UCC-13" content="{{ean}}"></span> {% endif %} {% if gtin14 %} <span property="gr:hasGTIN-14" content="{{gtin14}}"></span> {% endif %} {% if sku %} <span property="gr:hasStockKeepingUnit" content="{{sku}}"></span> {% endif %} {% if manufacturer_uri %} <!-- Semantic Link to manufacturer --> <span rel="gr:hasManufacturer" resource="{{manufacturer_uri}}"></span> {% endif %} <!-- Semantic link to consumables --> {% for consumable_uri in consumable_uris %} <span rev="gr:isConsumableFor" resource="{{consumable_uri}}"></span> {% endfor %} <!-- Semantic link to accessories --> {% for accessory_uri in accessory_uris %} <span rev="gr:isAccessoryOrSparePartFor" resource="{{accessory_uri}}"></span> {% endfor %} <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> <!-- Inventory Level --> <span rel="gr:hasInventoryLevel"> <span typeof="gr:QuantitativeValueFloat"> <span property="gr:hasUnitOfMeasurement" content="{{stock_unit}}" datatype="xsd:string"></span> <span property="gr:hasMinValueFloat" content="{{stock_level}}" datatype="xsd:float"></span> </span> </span> </span> </div>
RDFa Example for Snippet
<!-- in RDFa 1.1, you can use the abbreviation: <span profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:product="http://search.yahoo.com/searchmonkey/product/"> <!-- Offer --> <span about="#offering" typeof="gr:Offering"> <span property="rdfs:label" content="Canon Rebel T2i (EOS 550D)" xml:lang="en"></span> <span property="rdfs:comment" content="The Rebel T2i EOS 550D is Canon's top-of-the-line consumer digital SLR camera. It can shoot up to 18 megapixel resolution photos and features an ISO range of 100-6400." xml:lang="en"></span> <!-- Semantic link from the company --> <span rev="gr:offers" resource="http:/www.heppnetz.de/gr4shops/index.html#company"></span> <span rel="gr:includes" resource="#product"></span> <!-- Business Function - could also be repair, dispose,... --> <span rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></span> <!-- Item Price --> <span rel="gr:hasPriceSpecification"> <span typeof="gr:UnitPriceSpecification"> <span property="gr:hasCurrency" content="EUR" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="899.00" datatype="xsd:float"></span> <span property="gr:valueAddedTaxIncluded" content="true" datatype="xsd:boolean"></span> </span> </span> <!-- Shipping Charges --> <span rel="gr:hasPriceSpecification"> <span typeof="gr:DeliveryChargeSpecification"> <span property="gr:hasCurrency" content="EUR" datatype="xsd:string"></span> <span property="gr:hasCurrencyValue" content="10.00" datatype="xsd:float"></span> <span rel="gr:appliesToDeliveryMethod" resource="http://purl.org/goodrelations/v1#FederalExpress"></span> <span property="gr:eligibleRegions" content="de" datatype="xsd:string"></span> <span property="gr:valueAddedTaxIncluded" content="true" datatype="xsd:boolean"></span> </span> </span> <!-- Validity of the Offer --> <span property="gr:validFrom" datatype="xsd:dateTime" content="2010-05-01T00:00:00Z"></span> <span property="gr:validThrough" datatype="xsd:dateTime" content="2010-05-07T23:59:59Z"></span> <!-- Delivery Methods --> <span rel="gr:availableDeliveryMethods" resource="http://purl.org/goodrelations/v1#FederalExpress"></span> <!-- Payment Methods--> <span rel="gr:acceptedPaymentMethods" resource="http://purl.org/goodrelations/v1#PayPal"></span> <span rel="gr:acceptedPaymentMethods" resource="http://purl.org/goodrelations/v1#MasterCard"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> </span> <!-- Product --> <span about="#product" typeof="gr:ProductOrServicesSomeInstancesPlaceholder product:Product"> <span property="rdfs:label" content="Canon Rebel T2i (EOS 550D)" xml:lang="en"></span> <span property="rdfs:comment" content="The Rebel T2i EOS 550D is Canon's top-of-the-line consumer digital SLR camera. It can shoot up to 18 megapixel resolution photos and features an ISO range of 100-6400." xml:lang="en"></span> <!-- Product Image --> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="http:/www.heppnetz.de/gr4shops/eos550d.jpg"></span> <!-- Product Thumbnail --> <span rel="foaf:thumbnail" resource="http:/www.heppnetz.de/gr4shops/eos550d_small.jpg"></span> <!-- Product Model Identifiers --> <span property="gr:hasEAN_UCC-13" content="013803123784"></span> <span property="gr:hasGTIN-14" content="0013803123784"></span> <span property="gr:hasStockKeepingUnit" content="CANON_EOS550D-KIT"></span> <!-- Semantic Link to manufacturer --> <span rel="gr:hasManufacturer" resource="http:/www.heppnetz.de/gr4shops/brands.html#canon"></span> <!-- Semantic link to consumables --> <span rev="gr:isConsumableFor" resource="http:/www.heppnetz.de/gr4shops/product_canon_battery.html#product"></span> <!-- Semantic link to accessories --> <span rev="gr:isAccessoryOrSparePartFor" resource="http:/www.heppnetz.de/gr4shops/product_canon_bag.html#product"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> <!-- Inventory Level --> <span rel="gr:hasInventoryLevel"> <span typeof="gr:QuantitativeValueFloat"> <span property="gr:hasUnitOfMeasurement" content="C62" datatype="xsd:string"></span> <span property="gr:hasMinValueFloat" content="9" datatype="xsd:float"></span> </span> </span> </span> </div>
Brands Page
HTML/RDFa Template for Snippet
<!-- in RDFa 1.1, you can replace the next long div element by the abbreviation: <div profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" > {% for brand in brands %} <span about="#{{brand.name}}" typeof="gr:BusinessEntity"> <span property="gr:legalName" content="{{brand.company_name}}"></span> <span property="vcard:fn" content="{{brand.company_name}}"></span> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="{{brand.logo_uri}}"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> <span rel="foaf:page vcard:url" resource="{{brand.uri}}"></span> </span> {% endfor %} </div>
RDFa Example for Snippet
<!-- in RDFa 1.1, you can replace the next long div element by the abbreviation: <div profile="http://www.heppnetz.de/grprofile/"> --> <div xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://www.w3.org/1999/xhtml" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" > <span about="#canon" typeof="gr:BusinessEntity"> <span property="gr:legalName" content="Canon Europe Ltd."></span> <span property="vcard:fn" content="Canon Europe Ltd."></span> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="http:/www.heppnetz.de/gr4shops/canon.jpg"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> <span rel="foaf:page vcard:url" resource="http://www.canon.com/"></span> </span> <span about="#ibm" typeof="gr:BusinessEntity"> <span property="gr:legalName" content="International Business Machines Inc."></span> <span property="vcard:fn" content="International Business Machines Inc."></span> <span rel="foaf:depiction media:image rdfs:seeAlso" resource="http:/www.heppnetz.de/gr4shops/ibm.jpg"></span> <!-- the following line is very important, for it links between the data and the page that contains the data --> <span rel="foaf:page" resource=""></span> <span rel="foaf:page vcard:url" resource="http://www.ibm.com/"></span> </span> </div>
RDF/XML Data Dump
Template
<?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:product="http://search.yahoo.com/searchmonkey/product/" > <!-- ================ --> <!-- COMPANY Template --> <!-- ================ --> <gr:BusinessEntity rdf:about="{{company_page}}#company"> <gr:legalName>{{company_data.company_name}}</gr:legalName> <vcard:fn>{{company_data.company_name}}</vcard:fn> <foaf:page rdf:resource="{{company_page}}"/> <vcard:url rdf:resource="{{company_page}}"/> <foaf:page rdf:resource="{{company_page}}"/> <vcard:adr> <vcard:Address> <vcard:locality xml:lang="{{company_data.language}}">{{company_data.city}}</vcard:locality> <vcard:postal-code>{{company_data.zip}}</vcard:postal-code> <vcard:country-name xml:lang="{{company_data.language}}">{{company_data.country}}</vcard:country-name> <vcard:street-address>{{company_data.street}}</vcard:street-address> </vcard:Address> </vcard:adr> <vcard:tel>{{company_data.phone}}</vcard:tel> <foaf:depiction rdf:resource="{{company_data.logo_uri}}"/> <media:image rdf:resource="{{company_data.logo_uri}}"/> {% if company_data.duns %} <gr:hasDUNS rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{company_data.duns}}</gr:hasDUNS> {% endif %} {% if company_data.isic %} <gr:hasISICv4 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{company_data.isic}}</gr:hasISICv4> {% endif %} {% if company_data.naics %} <gr:hasNAICS rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{company_data.naics}}</gr:hasNAICS> {% endif %} {% if company_data.gln %} <gr:hasGlobalLocationNumber rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{company_data.gln}}</gr:hasGlobalLocationNumber> {% endif %} </gr:BusinessEntity> <!-- ======================== --> <!-- OFFER & PRODUCT Template --> <!-- ======================== --> {% for product in product_data %} <rdf:Description rdf:about="{{company_page}}#company"> <gr:offers rdf:resource="{{product.product_uri}}#offering"/> </rdf:Description> <gr:Offering rdf:about="{{product.product_uri}}#offering"> <rdfs:label xml:lang="en">{{product.product_short}}</rdfs:label> <rdfs:comment xml:lang="{{product.language}}">{{product.product_long}}</rdfs:comment> <gr:hasBusinessFunction rdf:resource="{{product.business_function}}"/> <gr:validFrom rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">{{product.valid_from}}</gr:validFrom> <gr:validThrough rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">{{product.valid_through}}</gr:validThrough> <foaf:page rdf:resource="{{product.product_uri}}"/> <gr:hasPriceSpecification> <gr:UnitPriceSpecification> <gr:hasCurrency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{product.currency}}</gr:hasCurrency> <gr:valueAddedTaxIncluded rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">{{product.vat}}</gr:valueAddedTaxIncluded> <gr:hasCurrencyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">{{product.price}}</gr:hasCurrencyValue> </gr:UnitPriceSpecification> </gr:hasPriceSpecification> {% for delivery_option in product.delivery_options %} <gr:availableDeliveryMethods rdf:resource="{{delivery_option.method_uri}}"/> <gr:hasPriceSpecification> <gr:DeliveryChargeSpecification> <gr:eligibleRegions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{delivery_option.region}}</gr:eligibleRegions> <gr:hasCurrency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{delivery_option.currency}}</gr:hasCurrency> <gr:valueAddedTaxIncluded rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">{{delivery_option.vat}}</gr:valueAddedTaxIncluded> <gr:hasCurrencyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">{{delivery_option.charge}}</gr:hasCurrencyValue> <gr:appliesToDeliveryMethod rdf:resource="{{delivery_option.method_uri}}"/> </gr:DeliveryChargeSpecification> </gr:hasPriceSpecification> {% endfor %} {% for payment_method in product.payment_methods %} <gr:acceptedPaymentMethods rdf:resource="{{payment_method}}"/> {% endfor %} <gr:includes> <gr:ProductOrServicesSomeInstancesPlaceholder rdf:about="{{product.product_uri}}#product"> <foaf:page rdf:resource="{{product.product_uri}}"/> <rdf:type rdf:resource="http://search.yahoo.com/searchmonkey/product/Product"/> <rdfs:label xml:lang="en">{{product.product_short}}</rdfs:label> <rdfs:comment xml:lang="en">{{product.product_long}}</rdfs:comment> <foaf:depiction rdf:resource="{{product.product_image_uri}}"/> <media:image rdf:resource="{{product.product_image_uri}}"/> <rdfs:seeAlso rdf:resource="{{product.product_image_uri}}"/> <foaf:thumbnail rdf:resource="{{product.product_thumbnail_uri}}"/> <gr:hasEAN_UCC-13>{{product.ean}}</gr:hasEAN_UCC-13> <gr:hasStockKeepingUnit>{{product.sku}}</gr:hasStockKeepingUnit> <gr:hasGTIN-14>{{product.gtin14}}</gr:hasGTIN-14> <gr:hasManufacturer rdf:resource="{{product.manufacturer_uri}}"/> <gr:hasInventoryLevel> <gr:QuantitativeValueFloat> <gr:hasUnitOfMeasurement rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{product.stock_unit}}</gr:hasUnitOfMeasurement> <gr:hasMinValueFloat rdf:datatype="http://www.w3.org/2001/XMLSchema#float">{{product.stock_level}}</gr:hasMinValueFloat> </gr:QuantitativeValueFloat> </gr:hasInventoryLevel> </gr:ProductOrServicesSomeInstancesPlaceholder> </gr:includes> </gr:Offering> {% for consumable_uri in product.consumable_uris %} <rdf:Description rdf:about="{{consumable_uri}}"> <gr:isConsumableFor rdf:resource="{{product.product_uri}}#product"/> </rdf:Description> {% endfor %} {% for accessory_uri in product.accessory_uris %} <rdf:Description rdf:about="{{accessory_uri}}"> <gr:isAccessoryOrSparePartFor rdf:resource="{{product.product_uri}}#product"/> </rdf:Description> {% endfor %} {% endfor %} <!-- =============== --> <!-- BRANDS template --> <!-- =============== --> {% for brand in brand_data.brands %} <gr:BusinessEntity rdf:about="{{brands_page}}#{{brand.name}}"> <foaf:page rdf:resource="{{brand.uri}}"/> <media:image rdf:resource="{{brand.logo_uri}}"/> <foaf:page rdf:resource="{{brand.uri}}"/> <foaf:page rdf:resource="{{brands_page}}"/> <foaf:depiction rdf:resource="{{brand.logo_uri}}"/> <gr:legalName>{{brand.company_name}}</gr:legalName> <vcard:url rdf:resource="http://www.ibm.com/"/> <vcard:fn>{{brand.company_name}}</vcard:fn> </gr:BusinessEntity> {% endfor %} </rdf:RDF>
Example
<?xml version="1.0" encoding="utf-8"?> <rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:product="http://search.yahoo.com/searchmonkey/product/" > <!-- ================ --> <!-- COMPANY Template --> <!-- ================ --> <gr:BusinessEntity rdf:about="http:/www.heppnetz.de/gr4shops/index.html#company"> <gr:legalName>Best Purchase Electronics Shop Ltd.</gr:legalName> <vcard:fn>Best Purchase Electronics Shop Ltd.</vcard:fn> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/index.html"/> <vcard:url rdf:resource="http:/www.heppnetz.de/gr4shops/index.html"/> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/index.html"/> <vcard:adr> <vcard:Address> <vcard:locality xml:lang="en">Munich</vcard:locality> <vcard:postal-code>12345</vcard:postal-code> <vcard:country-name xml:lang="en">Germany</vcard:country-name> <vcard:street-address>Example Street 123</vcard:street-address> </vcard:Address> </vcard:adr> <vcard:tel>+49-89-6004-4217</vcard:tel> <foaf:depiction rdf:resource="http:/www.heppnetz.de/gr4shops/logo.jpg"/> <media:image rdf:resource="http:/www.heppnetz.de/gr4shops/logo.jpg"/> <gr:hasDUNS rdf:datatype="http://www.w3.org/2001/XMLSchema#string">012345678</gr:hasDUNS> <gr:hasISICv4 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">5610</gr:hasISICv4> <gr:hasNAICS rdf:datatype="http://www.w3.org/2001/XMLSchema#string">722110</gr:hasNAICS> <gr:hasGlobalLocationNumber rdf:datatype="http://www.w3.org/2001/XMLSchema#string">1234567890123</gr:hasGlobalLocationNumber> </gr:BusinessEntity> <!-- ======================== --> <!-- OFFER & PRODUCT Template --> <!-- ======================== --> <rdf:Description rdf:about="http:/www.heppnetz.de/gr4shops/index.html#company"> <gr:offers rdf:resource="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html#offering"/> </rdf:Description> <gr:Offering rdf:about="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html#offering"> <rdfs:label xml:lang="en">Canon Rebel T2i (EOS 550D)</rdfs:label> <rdfs:comment xml:lang="en">The Rebel T2i EOS 550D is Canon's top-of-the-line consumer digital SLR camera. It can shoot up to 18 megapixel resolution photos and features an ISO range of 100-6400.</rdfs:comment> <gr:hasBusinessFunction rdf:resource="http://purl.org/goodrelations/v1#Sell"/> <gr:validFrom rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-05-01T00:00:00Z</gr:validFrom> <gr:validThrough rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-05-07T23:59:59Z</gr:validThrough> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html"/> <gr:hasPriceSpecification> <gr:UnitPriceSpecification> <gr:hasCurrency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">EUR</gr:hasCurrency> <gr:valueAddedTaxIncluded rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</gr:valueAddedTaxIncluded> <gr:hasCurrencyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">899.00</gr:hasCurrencyValue> </gr:UnitPriceSpecification> </gr:hasPriceSpecification> <gr:availableDeliveryMethods rdf:resource="http://purl.org/goodrelations/v1#FederalExpress"/> <gr:hasPriceSpecification> <gr:DeliveryChargeSpecification> <gr:eligibleRegions rdf:datatype="http://www.w3.org/2001/XMLSchema#string">de</gr:eligibleRegions> <gr:hasCurrency rdf:datatype="http://www.w3.org/2001/XMLSchema#string">EUR</gr:hasCurrency> <gr:valueAddedTaxIncluded rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</gr:valueAddedTaxIncluded> <gr:hasCurrencyValue rdf:datatype="http://www.w3.org/2001/XMLSchema#float">10.00</gr:hasCurrencyValue> <gr:appliesToDeliveryMethod rdf:resource="http://purl.org/goodrelations/v1#FederalExpress"/> </gr:DeliveryChargeSpecification> </gr:hasPriceSpecification> <gr:acceptedPaymentMethods rdf:resource="http://purl.org/goodrelations/v1#PayPal"/> <gr:acceptedPaymentMethods rdf:resource="http://purl.org/goodrelations/v1#MasterCard"/> <gr:includes> <gr:ProductOrServicesSomeInstancesPlaceholder rdf:about="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html#product"> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html"/> <rdf:type rdf:resource="http://search.yahoo.com/searchmonkey/product/Product"/> <rdfs:label xml:lang="en">Canon Rebel T2i (EOS 550D)</rdfs:label> <rdfs:comment xml:lang="en">The Rebel T2i EOS 550D is Canon's top-of-the-line consumer digital SLR camera. It can shoot up to 18 megapixel resolution photos and features an ISO range of 100-6400.</rdfs:comment> <foaf:depiction rdf:resource="http:/www.heppnetz.de/gr4shops/eos550d.jpg"/> <media:image rdf:resource="http:/www.heppnetz.de/gr4shops/eos550d.jpg"/> <rdfs:seeAlso rdf:resource="http:/www.heppnetz.de/gr4shops/eos550d.jpg"/> <foaf:thumbnail rdf:resource="http:/www.heppnetz.de/gr4shops/eos550d_small.jpg"/> <gr:hasEAN_UCC-13>013803123784</gr:hasEAN_UCC-13> <gr:hasStockKeepingUnit>CANON_EOS550D-KIT</gr:hasStockKeepingUnit> <gr:hasGTIN-14>0013803123784</gr:hasGTIN-14> <gr:hasManufacturer rdf:resource="http:/www.heppnetz.de/gr4shops/brands.html#canon"/> <gr:hasInventoryLevel> <gr:QuantitativeValueFloat> <gr:hasUnitOfMeasurement rdf:datatype="http://www.w3.org/2001/XMLSchema#string">C62</gr:hasUnitOfMeasurement> <gr:hasMinValueFloat rdf:datatype="http://www.w3.org/2001/XMLSchema#float">9</gr:hasMinValueFloat> </gr:QuantitativeValueFloat> </gr:hasInventoryLevel> </gr:ProductOrServicesSomeInstancesPlaceholder> </gr:includes> </gr:Offering> <rdf:Description rdf:about="http:/www.heppnetz.de/gr4shops/product_canon_battery.html#product"> <gr:isConsumableFor rdf:resource="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html#product"/> </rdf:Description> <rdf:Description rdf:about="http:/www.heppnetz.de/gr4shops/product_canon_bag.html#product"> <gr:isAccessoryOrSparePartFor rdf:resource="http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html#product"/> </rdf:Description> <!-- =============== --> <!-- BRANDS template --> <!-- =============== --> <gr:BusinessEntity rdf:about="http:/www.heppnetz.de/gr4shops/brands.html#canon"> <foaf:page rdf:resource="http://www.canon.com/"/> <media:image rdf:resource="http:/www.heppnetz.de/gr4shops/canon.jpg"/> <foaf:page rdf:resource="http://www.canon.com/"/> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/brands.html"/> <foaf:depiction rdf:resource="http:/www.heppnetz.de/gr4shops/canon.jpg"/> <gr:legalName>Canon Europe Ltd.</gr:legalName> <vcard:url rdf:resource="http://www.ibm.com/"/> <vcard:fn>Canon Europe Ltd.</vcard:fn> </gr:BusinessEntity> <gr:BusinessEntity rdf:about="http:/www.heppnetz.de/gr4shops/brands.html#ibm"> <foaf:page rdf:resource="http://www.ibm.com/"/> <media:image rdf:resource="http:/www.heppnetz.de/gr4shops/ibm.jpg"/> <foaf:page rdf:resource="http://www.ibm.com/"/> <foaf:page rdf:resource="http:/www.heppnetz.de/gr4shops/brands.html"/> <foaf:depiction rdf:resource="http:/www.heppnetz.de/gr4shops/ibm.jpg"/> <gr:legalName>International Business Machines Inc.</gr:legalName> <vcard:url rdf:resource="http://www.ibm.com/"/> <vcard:fn>International Business Machines Inc.</vcard:fn> </gr:BusinessEntity> </rdf:RDF>
Sitemap with Semantic Sitemap Extension
Sitemap Template
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" mlns:sc="http://sw.deri.org/2007/07/sitemapextension/scschema.xsd"> {% for uri in uris %} <url> <loc>{{uri}}</loc> <lastmod>{{lastmod}}</lastmod> <changefreq>{{changefreq}}</changefreq> <priority>0.8</priority> </url> {% endfor %} <sc:dataset> <sc:datasetLabel>{{label}}</sc:datasetLabel> <sc:datasetURI>{{rdf_uri}}#dump</sc:datasetURI> <sc:sampleURI>{{rdf_example_product}}</sc:sampleURI> <sc:sampleURI>{{rdf_example_company}}</sc:sampleURI> <sc:sampleURI>{{rdf_example_brand}}</sc:sampleURI> <sc:dataDumpLocation>{{rdf_uri}}</sc:dataDumpLocation> <changefreq>{{rdf_changefreq}}</changefreq> </sc:dataset> </urlset>
Sitemap Example
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" mlns:sc="http://sw.deri.org/2007/07/sitemapextension/scschema.xsd"> <url> <loc>http:/www.heppnetz.de/gr4shops/index.html</loc> <lastmod>2010-05-28</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>http:/www.heppnetz.de/gr4shops/brands.html</loc> <lastmod>2010-05-28</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <url> <loc>http:/www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html</loc> <lastmod>2010-05-28</lastmod> <changefreq>daily</changefreq> <priority>0.8</priority> </url> <sc:dataset> <sc:datasetLabel>GoodRelations RDF Data Dump for http://www.heppnetz.de/gr4shops/</sc:datasetLabel> <sc:datasetURI>http://www.heppnetz.de/gr4shops/goodrelations.rdf#dump</sc:datasetURI> <sc:sampleURI>http://www.heppnetz.de/gr4shops/product_product-canon_eos550D-kit.html</sc:sampleURI> <sc:sampleURI>http://www.heppnetz.de/gr4shops/index.html</sc:sampleURI> <sc:sampleURI>http://www.heppnetz.de/gr4shops/brands.html</sc:sampleURI> <sc:dataDumpLocation>http://www.heppnetz.de/gr4shops/goodrelations.rdf</sc:dataDumpLocation> <changefreq>daily</changefreq> </sc:dataset> </urlset>
Robots.txt with Sitemap Listing
User-agent: * Disallow: Sitemap: http://www.heppnetz.de/gr4shops/sitemap.xml
Updating the Page Headers
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" version="XHTML+RDFa 1.0" xml:lang="en"> <head> <title>untitled</title> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/> <link rel="meta" type="application/rdf+xml" title="RDF/XML data for ***your company name***" href="http://www.example.org/semanticweb.rdf" /> </head> <body> <!--- Visible Page Content --> <!-- Insert GoodRelations RDFa rich snippet HERE --> </body> </html>
Old materials, to be reviewed / incorporated up
Background
(but you may already know the "why it is important") - 15 min Web cast
http://www.slideshare.net/mhepp/a-short-introduction-to-semantic-webbased-ecommerce-the-goodrelations-vocabulary-presentation
How-to
a) Overview from an RDFa perspective:
See
http://www.ebusiness-unibw.org/wiki/GoodRelations_and_Yahoo_SearchMonkey
and
http://www.ebusiness-unibw.org/wiki/Rdfa4google
You can also experiment with the GoodRelations Annotator at
http://www.ebusiness-unibw.org/tools/goodrelations-annotator/
It will return an RDFa snippet for simple-copy-and-paste.
Main resource for developers: http://www.ebusiness-unibw.org/wiki/GoodRelations
*
III. Proposed Approach
*
We should have two types of support in your software:
a) Minimal template/form-based style for basic company information including opening hours etc. This would basically mean defining a template based on the Yahoo or Google patterns from above.
That should be available in the default shop app package, because every shop owner in the world will benefit from it - the small hairdresser shop same as every restaurant.
Ideally, we would bundle a variant of the GoodRelations Annotator with Drupal. The Annotator is open-source, written in Python, but should be easily portable.
b) Comprehensive data export for individual products and prices for Ubercart
The best approach is basically as follows:
1. Make sure you have all master data about the business / store / shop - if not, create additional fields in a config file or similar.
That should hold all the data about the business itself - contact details, legal name, etc.
2. Add additional GoodRelations RDFa markup to the template for the "about" or main page in the shop. This will define the business entity etc. The markup does not have to be tightly coupled with the existing markup; you can simply add it before the closing body element. See our RDF2RDFa paper, attached.
3. Add additional markup for each individual product / item and its prices and features to the template for the "product" page.
That markup should be basically the same as
http://www.ebusiness-unibw.org/wiki/GoodRelations_and_Yahoo_SearchMonkey#Describing_Each_Product
Again, you can also move that to the end of the template and decouple it from the human-readable content. That is usually better for managing the code.
I attach the basic code you have to insert.
Important: You have to link back from each gr:Offering node to the URI of the gr:BusinessEntity using the "rev" (not rel!) attribute. When in doubt, ask.
With that, you are already almost set.
You should have clean/cool URIs - if that is the case, the RDF created this way will be nice and complete
4. A very good extension would be to also generate one large RDF/XML data dump that basically contains ALL products and the business entity definition, e.g. in the form
http://mysite.com/goodrelations.rdf
That is best created by a cron job or similar every 24 hours.
Example:
http://www.saveonvideo.com/Bosch-BDS10-8DS_p_10036.html#UnitPrice
instead of
http://www.saveonvideo.com/semanticweb.rdf#UnitPrice or
one exemption: the gr:BusinessEntity should be defined here
http://www.saveonvideo.com/semanticweb.rdf#BusinessEntity
or
http://www.saveonvideo.com/#BusinessEntity
otherwise, it would be defined 9000 times with 9000 different identifiers.
i cannot assess whether using the tool or a dedicated script is less effort in your case. basically, it would be sufficient if you define a string template from the RFD/XML extracted from each page and rund a script that replaces the data values in each element with the database content. i guess that would be less than 20 lines of python code, following this pseudocode pattern:
template = "... RDF/XML template for each product" (you can get that by extracting the RDF/XML from one product page via pyrdfa)
o = "goodrelations.rdf"
file = open (o)
for item in database:
get price, label, URI, ....
replace placeholders in template
add result to file
close (o)
Important: The URIs for all elements in that dump file should be the ones defined in the individual RDFa in the pages.
If you do that, you have the best of both worlds:
- a data dump that can be cheaply harvested by search engines
- rdfa that will be read by yahoo and maybe google
- the URIs from the data dump directly point to the Web pages and are thus resolvable
Then, you should also add a link element pointing to the dump file to the header of all pages page in the system:
<html lang="en">
<head>
<title></title>
<link rel="meta" type="application/rdf+xml" title="RDF/XML data for ***your company name***" href="
http://mysite.com/goodrelations.rdf" />
</head>
...
See also here
http://www.ebusiness-unibw.org/wiki/GoodRelations_Recipe_8
That's it!
PS: You may also want to look at how it is done in Joomla/Virtuemart,
http://code.google.com/p/goodrelations-for-joomla/
Code Examples
<div xmlns="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#" xmlns:media="http://search.yahoo.com/searchmonkey/media/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:use="http://search.yahoo.com/searchmonkey-datatype/use/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:gr="http://purl.org/goodrelations/v1#" xmlns:review="http://purl.org/stuff/rev#" xmlns:commerce="http://search.yahoo.com/searchmonkey/commerce/" xmlns:vcard="http://www.w3.org/2006/vcard/ns#" xmlns:product="http://search.yahoo.com/searchmonkey/product/" class="rdf2rdfa"> <div class="description" about="http://www.heppnetz.de/searchmonkey/company.html#business"> <div rel="gr:offers"> <div class="description" about="http://www.heppnetz.de/searchmonkey/product.html#myoffer" typeof="gr:Offering"> <div rel="gr:availableAtOrFrom" resource="http://www.heppnetz.de/searchmonkey/company.html#myshop"></div> <div rel="gr:hasBusinessFunction" resource="http://purl.org/goodrelations/v1#Sell"></div> <div rel="gr:hasPriceSpecification"> <div class="description" about="http://www.heppnetz.de/searchmonkey/product.html#UnitPriceSpecification" typeof="gr:UnitPriceSpecification"> <div property="gr:hasCurrency" content="USD" datatype="xsd:string"></div> <div property="gr:hasCurrencyValue" content="34.99" datatype="xsd:float"></div> </div> </div> <div rel="gr:includesObject"> <div class="description" about="http://www.heppnetz.de/searchmonkey/product.html#TypeAndQuantityNode" typeof="gr:TypeAndQuantityNode"> <div property="gr:amountOfThisGood" content="1.0" datatype="xsd:float"></div> <div property="gr:hasUnitOfMeasurement" content="C62" datatype="xsd:string"></div> <div rel="gr:typeOfGood"> <div class="description" about="http://www.heppnetz.de/searchmonkey/product.html#product" typeof="gr:ProductOrServicesSomeInstancesPlaceholder"> <div rel="rdf:type" resource="http://search.yahoo.com/searchmonkey/product/Product"></div> <div property="rdfs:comment" content="This low-cost, high-performance SCSI controller allows you to connect up to seven professional mass-storage devices to your computer." xml:lang="en"></div> <div rel="foaf:depiction" resource="http://www.heppnetz.de/searchmonkey/pscsi.jpg"></div> <div rel="product:faq" resource="http://www.heppnetz.de/searchmonkey/heppcomputer.html#faq"></div> <div property="gr:hasEAN_UCC-13" content="00010363780" datatype="xsd:string"></div> <div rel="gr:hasManufacturer"> <div class="description" about="http://www.heppnetz.de/searchmonkey/product.html#heppcomputer" typeof="gr:BusinessEntity"> <div rel="rdf:type" resource="http://search.yahoo.com/searchmonkey/commerce/Business"></div> <div rel="rdf:type" resource="http://www.w3.org/2006/vcard/ns#VCard"></div> <div property="vcard:organization-name" content="Hepp Computertechnik Inc." xml:lang="en"></div> <div rel="foaf:page" resource="http://www.heppnetz.de/searchmonkey/heppcomputer.html"></div> <div rel="vcard:url" resource="http://www.heppnetz.de/searchmonkey/heppcomputer.html"></div> </div> </div> <div rel="review:hasReview"> <div class="description" typeof="review:Review"> <div property="review:maxRating" content="5" datatype="xsd:integer"></div> <div property="review:minRating" content="0" datatype="xsd:integer"></div> <div property="review:rating" content="4.5" datatype="xsd:float"></div> <div property="review:totalRatings" content="45" datatype="xsd:integer"></div> </div> </div> <div property="product:identifier" content="10363780" datatype="use:sku"></div> <div rel="media:image" resource="http://www.heppnetz.de/searchmonkey/pscsi.jpg"></div> <div property="rdfs:label" content="Personal SCSI 16-bit SCSI Controller" xml:lang="en"></div> <div rel="product:manual" resource="http://www.heppnetz.de/searchmonkey/heppcomputer.html#manual"></div> <div rel="product:manufacturer" resource="http://www.heppnetz.de/searchmonkey/product.html#heppcomputer"></div> <div rel="foaf:page" resource="http://www.heppnetz.de/searchmonkey/product.html"></div> <div rel="rdfs:seeAlso" resource="http://www.heppnetz.de/searchmonkey/pscsi.jpg"></div> <div rel="product:specification" resource="http://www.heppnetz.de/searchmonkey/heppcomputer.html#spec"></div> </div> </div> </div> </div> <div rel="foaf:page" resource="http://www.heppnetz.de/searchmonkey/product.html"></div> <div property="gr:validFrom" content="2009-07-20T00:00:00Z" datatype="xsd:dateTime"></div> <div property="gr:validThrough" content="2010-07-20T00:00:00Z" datatype="xsd:dateTime"></div> </div> </div> </div> </div>
Notifying Web of Linked Data Repositories
Now, notify the key Web of Linked Data crawlers to load and use your data. To do so, simply paste the URI of the page that contains the snippet (likely http://example.org/) into the respective fields of the following submission pages:
* a) Sindice: http://sindice.com/main/submit * b) Yahoo SearchMonkey: http://siteexplorer.search.yahoo.com/submit (this requires free registration with Yahoo) * c) URIBurner: http://linkeddata.uriburner.com/
Also, you should tell the URIBurner service of your new data. To do so, simply enter the following URI into your browser once you have published your updated page:
* http://linkeddata.uriburner.com/about/html/<your page>
Example: If your augmented Web page is at http://www.mmmeeja.com/, then invoke the following URI:
* http://linkeddata.uriburner.com/about/html/http://www.mmmeeja.com/
If you have checked the respective button on the previous page, we will also try to notify additional search engines of your new description. Step 4 (Optional): Publish a pure data file
You can increase the reach of your self-description even further as follows: 1. the description as a RDF/XML rich meta-data file.
2. Save and publish the file on your Web server under the filename http://example.org/goodrelations.rdf; for details see here.
3. Notify additional search engines for the Web of Linked Data. To do so, simply paste the URI of that file (e.g. http://example.org/goodrelations.rdf) into the respective fields of the following submission pages:
* a) PingTheSemanticWeb: http://pingthesemanticweb.com/ * b) Swoogle: http://swoogle.umbc.edu/index.php?option=com_swoogle_service&service=submit
Note: You must upload your file to the target location before you notify the search engines. They will not come back if your page is not available when they try for the first time. Congratulations! You will be found on the Web of Linked Data!
The rich description of your products and services will soon appear in various search engines and matchmaking services. This will direct additional customers to your business.
If you want to go further and expose detailed product and price information on a per-item level, please see the GoodRelations CookBook for instructions or install respective extensions for your shop software.
For more information on the GoodRelations vocabulary for e-commerce, see http://www.ebusiness-unibw.org/wiki/GoodRelations.