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.
Martin Hepp (UniBW)
martin.hepp at ebusiness-unibw.org
Tue Mar 9 10:33:47 CET 2010
Dear all:
If you are developing any kind of GoodRelations-related applications in
Python, I can recommend very much the combination of the two libraries
- RDFlib [1] for handling RDF in Python and
- SuRF [2] as an object mapper for RDF/OWL entities.
RDFlib provides a nice, "pythonic" framework for parsing, querying, or
generating RDF data, including support for RDF/XML, RDFa, and Turtle syntax.
SuRF turns RDF nodes and properties into Python classes and instances so
that you can access them in a clean, straightforward fashion.
See below for an example of loading two company profiles using rdflib
and SuRF and printing a few key facts to the screen.
SuRF has just added support for the GoodRelations vocabulary, i.e. you
can now access any GoodRelations element using shortcuts as shown below:
# Define a Python class for the OWL Classes gr:Offering and
gr:BusinessEntity
Offering = session.get_class(ns.GR['Offering'])
BusinessEntity = session.get_class(ns.GR['BusinessEntity '])
# Get an iterator for all instances of gr:Offering in the graph
all_offers = Offering.all()
# Get an iterator for all instances of gr:Offering in the graph
all_companies = BusinessEntity.all()
for company in all_companies:
print "Business Entity found: %s " % company.subject
print "Legal Name: %s" % company.gr_legalName.first
Thanks to Cosmin Basca for adding GoodRelations support so quickly, and
to Daniel Krech and all the other RDFlib contributors.
Best wishes
Martin Hepp
[1] http://www.rdflib.net/
[2] http://code.google.com/p/surfrdf/
Complete Example:
--------------------------------
from surf import *
store = Store( reader='rdflib',
writer='rdflib',
rdflib_store = 'IOMemory')
session = Session(store)
# Good Relations Namespace is now predefined in SuRF :-)
# ns.register(gr='http://purl.org/goodrelations/v1#')
print 'Load RDF data'
store.load_triples(source='http://purl.org/goodrelations/v1.owl')
store.load_triples(source='http://www.collibra.com/semanticweb.rdf')
store.load_triples(source='http://www.jarltech.de/semanticweb.rdf')
# Define a Python class for the OWL Classes gr:Offering and
gr:BusinessEntity
Offering = session.get_class(ns.GR['Offering'])
BusinessEntity = session.get_class(ns.GR['BusinessEntity '])
# Get an iterator for all instances of gr:Offering in the graph
all_offers = Offering.all()
print 'Found %d offers '%(len(all_offers))
for offer in all_offers :
print "Text: %s" % offer.rdfs_comment.first
print "URI: %s" % offer.rdfs_seeAlso.first
print "Eligible regions: ",
regions = offer.gr_eligibleRegions
if len(regions) == 0:
print "None specified"
else:
for region in regions:
print region,
print
print
# Get an iterator for all instances of gr:Offering in the graph
all_companies = BusinessEntity.all()
for company in all_companies:
print "Business Entity found: %s " % company.subject
print "Legal Name: %s" % company.gr_legalName.first
--
--------------------------------------------------------------
martin hepp
e-business & web science research group
universitaet der bundeswehr muenchen
e-mail: hepp at ebusiness-unibw.org
phone: +49-(0)89-6004-4217
fax: +49-(0)89-6004-4620
www: http://www.unibw.de/ebusiness/ (group)
http://www.heppnetz.de/ (personal)
skype: mfhepp
twitter: mfhepp
Check out GoodRelations for E-Commerce on the Web of Linked Data!
=================================================================
Project page:
http://purl.org/goodrelations/
Resources for developers:
http://www.ebusiness-unibw.org/wiki/GoodRelations
Webcasts:
Overview - http://www.heppnetz.de/projects/goodrelations/webcast/
How-to - http://vimeo.com/7583816
Recipe for Yahoo SearchMonkey:
http://www.ebusiness-unibw.org/wiki/GoodRelations_and_Yahoo_SearchMonkey
Talk at the Semantic Technology Conference 2009:
"Semantic Web-based E-Commerce: The GoodRelations Ontology"
http://www.slideshare.net/mhepp/semantic-webbased-ecommerce-the-goodrelations-ontology-1535287
Overview article on Semantic Universe:
http://www.semanticuniverse.com/articles-semantic-web-based-e-commerce-webmasters-get-ready.html
Tutorial materials:
ISWC 2009 Tutorial: The Web of Data for E-Commerce in Brief: A Hands-on Introduction to the GoodRelations Ontology, RDFa, and Yahoo! SearchMonkey
http://www.ebusiness-unibw.org/wiki/Web_of_Data_for_E-Commerce_Tutorial_ISWC2009