- From: Martin Hepp <martin.hepp@ebusiness-unibw.org>
- Date: Thu, 23 Dec 2010 01:22:11 +0100
- To: barry.norton@aifb.uni-karlsruhe.de
- Cc: Semantic Web <semantic-web@w3.org>, Bob DuCharme <bob@snee.com>, Hugh Glaser <hg@ecs.soton.ac.uk>
Hi Barry, Quite clearly, the lexical patterns of my sample query can be improved a lot. In the case of "owl", changing it to " owl " may already help a lot. Or simply omit "owl" from the list of lexical patterns ;-) One should also restrict this to RDF literals with an "en" language tag. It would also be possible to expand the search for lexical patterns in other languages. Another approach would be to separate the problem of defining heuristics of what makes a company fall into the "semantic technology provider" from the rest by 1. defining a class: foo:SemanticTechnologyProvider a owl:Class ; rdfs:subClassOf gr:BusinessEntity . 2. implementing an annotation component / SPARQL CONSTRUCT rule that adds a triple ?c a foo:SemanticTechnologyProvider for each gr:BusinessEntity that matches the respective patterns 3. query simply for instances of this class . This would also allow using disambiguation techniques. Best Martin On 22.12.2010, at 22:33, Barry Norton wrote: > > bOWLing alleys (seriously, we have such a class in the Yelp taxonomy > we were discussing with you), and restaurants serving guinea fOWL > are semantics companies now? ;) > > Barry > > > On 22/12/2010 18:28, Martin Hepp wrote: >> 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 Thursday, 23 December 2010 00:22:46 UTC