Date: 2011-04-26 10:59:40
From: v.tablan@sheffield.ac.uk
Hi all,
I was trying to create a local repository containing some DBPedia data.
To do this I dropped BigOWLIM (version 3.5.3430) in a Sesame
installation (version 2.3.3) and created a new repository following the
steps described in the OWLIM user guide, the "Step by Step (Vanilla)"
section. I did not change any of the default options.
In the new repository I uploaded (using the sesame workbench) the data
files obtained from the DBPedia download page
(http://wiki.dbpedia.org/Downloads36):
- the DBPedia Ontology
- the Ontology Infobox Types
- the Ontology Infobox Properties
(i.e. the first 3 files listed).
After the upload succeed, I tried interrogating my new repository. The
results I got back were somewhat puzzling.
My Query was looking for Person names:
================
PREFIX dbp: <http://dbpedia.org/ontology/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?label ?inst
WHERE {
?inst foaf:name ?label .
FILTER (lang(?label) = "en")
?inst a dbp:Person .
}
================
The second hit I got was the "State of Alabama", which, to my knowledge,
is not correct...
Clicking on the instance URI for Alabama, I got a listing of known
properties, some of which are shown in the attached screenshot. As you
can see, according to the "onto:implicit" context, [the State of]
Alabama is a City, Person, Organization, School, Country.
I repeated the same experiment on a different computer and I got exactly
the same results.
The next experiment was to load the exact same data files in a
repository backed by Sesame's default "Native Java Store" SAIL. While
this was much slower, it had the advantage that Alabama was put back in
its place and did not get personified. The query above returned the
expected results (i.e. names of people). This indicates that the problem
is not with the data files.
I assume this is caused by some misconfiguration (or missing
customisation from the default config). Can anyone suggest how to fix it?
Adding a "FROM <http://www.ontotext.com/explicit>" clause seems to
remove the spurious matches. Is that the right way to go, or will that
lead to useful things being missed?
Thanks,
Valentin
-- 
Valentin Tablan

asked 03 Apr '13, 06:16

Discussion-Board-Archive's gravatar image

Discussion-B...
6.1k138156214
accept rate: 30%


Date: 2011-04-26 13:39:19
From: Fabian.Cretton@hevs.ch
Hi Valentin,
I am no specialist of bigOWLIM as you can see from my posts..
However, it seems pretty easy to create a repository with no rule-set, using the "empty" value as specified in the documentation.
What I haven't managed yet, is to change an existing repository which was using a rule-set, to using no rule-set
- I did delete its graph from the SYSTEM repository
- then I did load, in the SYSTEM repository a .ttl configuration file with the same repositoryID
- but then, I tried to udpate the inferences through the 'gettingStarted' java exemple, so using the 'infer' predicate taking as exemple the 'flush() method
...but I still have all of my inferences in the triple store so far (I added the triple inside that repository)
public void updateInferences() throws Exception {
System.out.println("===== Updating inferences ====================");
// Add a statement directly to the SAIL
// first, create the RDF nodes for the statement
URI subj = repository.getValueFactory().createURI("http://example.org/owlim#Pilot");
//URI pred = repository.getValueFactory().createURI("http://www.ontotext.com/owlim/system#reinfer");
URI pred = repository.getValueFactory().createURI("http://www.ontotext.com/reinfer");
URI obj = repository.getValueFactory().createURI("http://example.org/owlim#Human");
repositoryConnection.add(subj, pred, obj);
repositoryConnection.commit();
System.out.println("===== Inferences updated ====================");
}
Fabian
Thanks Barry, 
That makes sense (or doesn't, depending on your binding of 'that' ;) ).
Is there a way to tell OWLIM not to create the inferred triples at load time (thus avoiding having to tell it not use them at search time)? I'm guessing that can be achieved by changing the value of owlim:ruleset. If that's the case, what value would disable inferencing?
thanks,
Valenrtin
On 26/04/11 12:06, Barry Bishop wrote: 
Hello Valentin,
Welcome to the wonderful world of reasoning with badly modelled data. It is a challenging place to be!
I am pretty sure that when you use the Sesame native store you are not using any reasoning. This is why you don't get the 'spurious' inferences that BigOWLIM gives you, unless you ignore them for query answering by adding FROM <http://www.ontotext.com/explicit> ( http://www.ontotext.com/explicit )
For FactForge, we do a lot of cleaning up of the data, but there is still a lot of stuff that this incorrect. A common reason for this, is that properties are often used incorrectly when describing entities.
e.g.  if 'plays' is defined as having a domain of musician and range of musical instrument then if someone uses it incorrectly like this:
VCR plays VHS-cassette
then this looks fine without reasoning, but with reasoning (that understands the meaning of domain and range) then the the following incorrect inferences are drawn:
VCR rdf:type Musician
VHS-cassette rdf:type MusicalInstrument
There are many other ways to model things badly, so that unexpected inferences pop out, but hopefully this example gives you an idea how easily it can happen.
I'm afraid there is no easy solution, but I'm am sure it is nothing to do with your OWLIM configuration.
I hope this helps,
barry
--
Barry Bishop
link

answered 03 Apr '13, 06:16

Discussion-Board-Archive's gravatar image

Discussion-B...
6.1k138156214
accept rate: 30%

Date: 2011-04-26 13:06:30
From: barry.bishop@ontotext.com
Hello Valentin,
Welcome to the wonderful world of reasoning with badly modelled data. It 
is a challenging place to be!
I am pretty sure that when you use the Sesame native store you are not 
using any reasoning. This is why you don't get the 'spurious' inferences 
that BigOWLIM gives you, unless you ignore them for query answering by 
adding FROM <http://www.ontotext.com/explicit>
For FactForge, we do a lot of cleaning up of the data, but there is 
still a lot of stuff that this incorrect. A common reason for this, is 
that properties are often used incorrectly when describing entities.
e.g.  if 'plays' is defined as having a domain of musician and range of 
musical instrument then if someone uses it incorrectly like this:
VCR plays VHS-cassette
then this looks fine without reasoning, but with reasoning (that 
understands the meaning of domain and range) then the the following 
incorrect inferences are drawn:
VCR rdf:type Musician
VHS-cassette rdf:type MusicalInstrument
There are many other ways to model things badly, so that unexpected 
inferences pop out, but hopefully this example gives you an idea how 
easily it can happen.
I'm afraid there is no easy solution, but I'm am sure it is nothing to 
do with your OWLIM configuration.
I hope this helps,
barry
link

answered 03 Apr '13, 06:16

Discussion-Board-Archive's gravatar image

Discussion-B...
6.1k138156214
accept rate: 30%

Date: 2011-04-26 12:19:50
From: v.tablan@sheffield.ac.uk
Thanks Barry,
That makes sense (or doesn't, depending on your binding of 'that' ;) ).
Is there a way to tell OWLIM not to create the inferred triples at load
time (thus avoiding having to tell it not use them at search time)? I'm
guessing that can be achieved by changing the value of owlim:ruleset. If
that's the case, what value would disable inferencing?
thanks,
Valenrtin
link

answered 03 Apr '13, 06:16

Discussion-Board-Archive's gravatar image

Discussion-B...
6.1k138156214
accept rate: 30%

Date: 2011-04-26 15:58:42
From: danica.damljanovic@gmail.com
Hi Valy
I think ruleset=empty should disable inference.
Cheers
Danica
link

answered 03 Apr '13, 06:16

Discussion-Board-Archive's gravatar image

Discussion-B...
6.1k138156214
accept rate: 30%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Tags:

×261
×242

Asked: 03 Apr '13, 06:16

Seen: 1,417 times

Last updated: 17 Oct '16, 02:14

powered by BitNami OSQA