- From: Martin Hepp <martin.hepp@ebusiness-unibw.org>
- Date: Wed, 22 Dec 2010 18:28:38 +0100
- To: Semantic Web <semantic-web@w3.org>
- Cc: Bob DuCharme <bob@snee.com>, Hugh Glaser <hg@ecs.soton.ac.uk>
Hi all: Apologies for my late reply, end of term season ;-) It is very easy to create and maintain such a directory based on GoodRelations - actually, the following should already work pretty well as of today : 1. A company describes its range of products and services using GoodRelations, e.g. using the GoodRelations Annotator http://www.ebusiness-unibw.org/tools/goodrelations-annotator/ Many SW companies have done so already, e.g. http://www.franz.com/goodrelations.rdf 2. The site informs one or more RDF repositories / crawlers of that data, e.g. sindice.com or Ping The Semantic Web so that they can crawl and collate the data. 3. Rund a query for matching companies against a suitable SPARQL endpoint See an example query below. The query may not yet be perfect, because testing them on http://loc.openlinksw.com/sparql http://lod.openlinksw.com/sparql http://uriburner.com/sparql currently yields an error message "37000 Error SQ156: Internal Optimized compiler error : dt not found based on cname in sqlo.c:1078." which I do not understand, so I cannot quickly spot whether it's the query or the endpoint. The basic pattern would be to - search for gr:BusinessEntities - that make at least one gr:Offering that is related to semantic technology. The latter can be expressed - approximately - by - checking for the words "semantic", "RDF", "ontolog", "OWL", "triplestore", or "linked data" - in the textual elements attached to the gr:Offering or - the textual elements of a product or product model linked to that offer via gr:includes, and also - considering gr:Offering nodes that include objects that are instances of subclasses of gr:ProductOrService that contain one of these words in the class name, or in its superclasses class names. Nice example for a typical hybrid SPARQL query in a real world setting ;-) Best Martin # List all companies that sell/lease/maintain etc. semantic technology SELECT ?c ?page ?legalname WHERE { ?c a gr:BusinessEntity . ?c gr:legalName ?legalname . OPTIONAL { ?c foaf:page ?page } ?c gr:offers ?o . # Now we have to check that they sell something "semantic" # Option 1: The offering contains "semantic", "RDF", "ontolog", "OWL", "triplestore", or "linked data" { { ?o ?textprop ?text . } UNION # Option 2: The product or product class contains one of those words { { { ?o gr:includes ?product. } UNION { ?o gr:includesObject ?t . ?t a gr:TypeAndQuantityNode . ?t gr:typeOfGood ?product . } # The UNION pattern above is because we cannot assume that the expansion of gr:includes is materialized in triples # See http://www.ebusiness-unibw.org/wiki/GoodRelationsOptionalAxiomsAndLinks } # Option 2a: The product contains one of those words ?product ?textprop ?text . # Option 2b: The product is an instance of a class that contains those words in their name ?product a ?class . ?class rdfs:subClassOf gr:ProductOrService . ?class ?textprop ?text . # Also consider labels of superclasses OPTIONAL { ?class rdfs:subClassOf ?superclass . ?superclass ?textprop ?text .} } } # Constrain the relevant text properties FILTER (?textprop = rdfs:label || ?textprop = rdfs:comment || ? textprop = gr:name || ?textprop = gr:description ) # Check for significant words FILTER ( bif:contains(?text, "semantic") || bif:contains(?text, "RDF") || bif:contains(?text, "ontolog") || bif:contains(?text, "OWL") || bif:contains(?text, "triplestore") || bif:contains(?text, "linked data") ) } LIMIT 10 ------------------------------------------------- martin hepp e-business & web science research group universitaet der bundeswehr muenchen e-mail: hepp@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 Main Page: http://purl.org/goodrelations/ * Quickstart Guide for Developers: http://bit.ly/quickstart4gr * Vocabulary Reference: http://purl.org/goodrelations/v1 * Developer's Wiki: http://www.ebusiness-unibw.org/wiki/GoodRelations * Examples: http://bit.ly/cookbook4gr * Presentations: http://bit.ly/grtalks * Videos: http://bit.ly/grvideos
Received on Wednesday, 22 December 2010 17:32:18 UTC