- 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