John Goodwin wrote:

Hi,

I was just curious how many OWL sceptics we have in the LOD community? Rightly or wrongly I get the impression there are a few?

I've been integrating various LOD resource for a small demo at work and have come to the realisation than a bit of relatively simple OWL goes a long way in making the integration process more complete. Not that is was a great surprise really, but you soon realise that owl:sameAs only gets you so far. IMHO we really need to get OWL into the LOD mix for linking vocabularies/ontologies as well as data at the instance level. RDFS is not enough.

A few simple examples… Say I want to integrate freebase and Dbpedia - they both use there own ontologies/vocabularies/schema etc. Obviously I can do owl:sameAs between common instances, but this doesn't fully integrate the data in the way I would want. I was trying to do a little demo around events, places and bands and soon found that Dbpedia new about different bands from freebase. A simple query like "find me information on punk rock bands playing in venues in Southampton" was incomplete if I only used owl:sameAs. To get the full information I needed to link the Dbpedia and freebase ontologies using:

PunkRockGroups = music.musical_group and music.artist.genre value en.punk_rock (Manchester OWL syntax).

This way a query for things rdf:type PunkRockGroups also selects the punk bands freebase knows about but Dbpedia doesn't…just doing owl:sameAs would merely get information about punk bands that freebase and Dbpedia share in common.

Furthermore to link information about people born in Southampton from freebase and Dbpedia I has to used:

location.location.people_born_here owl:inverseOf dbpedia:birthplace

Again a query dbpedia:birthplace Southampton now finds me people freebase knows about as well as Dbpedia.

Other simple examples of needing OWL with LOD are genealogy. I've started to convert my family tree into RDF, e.g.:

_http://www.johngoodwin.me.uk/family/I0265_
_http://www.johngoodwin.me.uk/family/I0243_

A bit of OWL e.g.:

Parent = foaf:Person and isParentOf some foaf:Person

isParentOf o isBrotherOf -> isUncleOf

Uncle = foaf:Person and isUncleOf some foaf:Person

Would save me writing long SPARQL queries for find instances of Parent, Uncle etc.

I know this isn't rocket science, but really hope a few simple examples will start to convince OWL sceptics that OWL can really spice up [1] LOD.

Thoughts, comments, flamings :) welcome..

John

[1] as Kingley would say



*Dr John Goodwin*
*Research Scientist, Research, Ordnance Survey*
C530, Romsey Road, SOUTHAMPTON, United Kingdom, SO16 4GU
Phone: +44 (0) 23 8030 5756
_www.ordnancesurvey.co.uk|_ <file://www.ordnancesurvey.co.uk%7C> [email protected] *Please consider your environmental responsibility before printing this email*

John,

I frequently state the following: Linked Data is a bowl of spaghetti, OWL gives us the sauce, and inference rules the spicing. You need all three to make a really good meal :-)

Re. LOD and OWL I really don't know what the issues are per se. I do know from experience that interest in the likes of Yago, UMBEL, and OpenCyc remains strangely lukewarm. Even worse, I still see over generalized comments like: you can't reason over huge data sets even though we've offered inference rules based on Yago, UMBEL, and OpenCyc for over a year re. DBpedia [1] and more recently the larger Virtuoso instance which stores most of the LOD cloud datasets [2].

We handle, owl:sameAs, subclass, subproperty, equivalentClass, IFPs [3].

Note: re. <http://lod.openlinksw.com> when start your query from the "Search" tab, once you have an initial results page there is an "options" link for switching on inferences rules and owl:sameAs expansion, enable these options, andsubsequent queries will run with the Virtuoso's inference pragmas for SPARQL enabled. Also, simply click the SPARQL link to see the generated query.

Example:

DEFINE input:inference "http://dbpedia.org/resource/inference/rules/yago#";
DEFINE input:same-as "yes"
SELECT ?s1c as ?c1 count (distinct (?s1)) as ?c2
WHERE { ?s1 ?s1textp ?o1 . ?o1 bif:contains '(BILL AND CLINTON)' . ?s1 a ?s1c .?s1 a <http://dbpedia.org/class/yago/Leader109623038> . }
GROUP BY ?s1c order by desc 2 limit 20 offset 0


Links:

1. http://dbpedia.org/sparql
2. http://lod.openlinksw.com/sparql
3. http://tr.im/l7HD -- a page that sheds more light on how we put inference rules to use re. <http://lod.openlinksw.com> 4. http://www.mail-archive.com/[email protected]/msg00263.html --Yago examples from the past re. DBpedia inference rules (which are always in place) 6. http://www.mail-archive.com/[email protected]/msg00870.html -- UMBEL examples variant of what exists for Yago 7. http://osdir.com/ml/web.semantic.dbpedia.general/2008-05/msg00053.html -- DBpedia subproperties examples using Yago


--


Regards,

Kingsley Idehen       Weblog: http://www.openlinksw.com/blog/~kidehen
President & CEO OpenLink Software Web: http://www.openlinksw.com





Reply via email to