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