[Owlim-discussion] inferring data from data with owlim

2011-01-21 Thread Rob Styles
Hi folks,

I wonder if anyone can help me with inference support in Owlim.

I have a dataset that I want to infer stuff about at the data, rather
than schema, level. The example is as follows. Ice Dancing is a sport
that requires you to where skates, that is in the data I have. I want
to infer that because Ice Dancing uses skates it require that you to
be skilled in skating. Here in RDF:

Existing Data:

  #ice_dancing a ex:Sport ;
ex:equipment #skates .

  #skating a ex:Skill .

Inferred Data:

  #ice_dancing ex:requires #skating .

How would I go about describing this in Owl such that Owlim could
infer this? I can see how to make Ice Dancing into a skating sport:

#SkatingSport
a owl:Class ;

owl:equivalentClass [
a owl:Class ;
owl:intersectionOf ( ex:Sport
[
a owl:Restriction ;
owl:hasValue #skates ;
owl:onProperty ex:equipment
]
)
] .

or something like that - but what I want to do is infer an additional
property not a class.

Anyone able to help with an example?


-- 
rob

Rob Styles
tel: +44 (0)870 400 5000
fax: +44 (0)870 400 5001
mobile: +44 (0)7971 475 257
irc: irc.freenode.net/mrob,isnick
web: http://www.talis.com/
blog: http://www.dynamicorange.com/blog/
blog: http://blogs.talis.com/nodalities/
blog: http://blogs.talis.com/n2/
___
OWLIM-discussion mailing list
OWLIM-discussion@ontotext.com
http://ontotext.com/mailman/listinfo/owlim-discussion


Re: [Owlim-discussion] inferring data from data with owlim

2011-01-21 Thread Damyan Ognyanoff

Hi Rob,

the kind of conclusions on which you are after could be derived easily. You 
have two possible approaches.


The first one is to make use of the so called 'propertyChains' the support 
of which is part of the owl2-rl ruleset.
and the second one is to make use of the protons:transitiveOver property 
which is a kind of special case of a property chain that could be used to 
relate two properties in a simmilar manner as rdf:type and rdfs:subClassOf 
are related inbetween.


Id: proton_TransitiveOver
p  protons:transitiveOver  q
x  p  y
y  q  z
   ---
x  p  z

But for both approaches you'll need somehow to relate each particular 
instance of an equiplemnt to some required skill it's usage implies 
e.g.something like:


data:skates ex:implySkill data:skating

then you need to state that requires is transitiveOver ex:implySkill .
but for the above inference to be derived  you'll need also a requires 
relation between the ice_dancing and the skates
that could be infererd by making equipment a subPropertyOf requires. 
Yes, I know that it is not a clear solution because you will end up with 
requires asserted between sport instances and the equipments and betwee 
nthe equipments and the skills bu hope you could distinguish based on the 
type the entities related with it.


Here is an example of how to exploit protons:transitiveOver in your case so 
to derive such inferences:

the data:
@prefix ex: http://example.com/ex# .
@prefix data: http://example.com/ex# .
@prefix rdfs: http://www.w3.org/2000/01/rdf-schema# .
@prefix onto: http://proton.semanticweb.org/2005/04/protons# .

ex:equipment rdfs:subPropertyOf ex:requires .
ex:requires onto:transitiveOver ex:implySkill .

data:ice_dancing a ex:Sport  ;
   ex:equipment data:skates .
data:skating a ex:Skill .
data:skates a ex:Equiplment ;
   ex:implySkill data:skating .


Then you'll get such inferences.

The first proposed approach, by using owl2-rl ruleset, should'nt need such 
'hack' with the subPropertyOf,  but will require a more carefull schema to 
be defined so to exploit it properly.



HTH
Damyan Ognyanov
Ontotext AD.

- Original Message - 
From: Rob Styles rob.sty...@talis.com

To: owlim-discussion@ontotext.com
Sent: Friday, January 21, 2011 1:09 PM
Subject: [Owlim-discussion] inferring data from data with owlim



Hi folks,

I wonder if anyone can help me with inference support in Owlim.

I have a dataset that I want to infer stuff about at the data, rather
than schema, level. The example is as follows. Ice Dancing is a sport
that requires you to where skates, that is in the data I have. I want
to infer that because Ice Dancing uses skates it require that you to
be skilled in skating. Here in RDF:

Existing Data:

 #ice_dancing a ex:Sport ;
   ex:equipment #skates .

 #skating a ex:Skill .

Inferred Data:

 #ice_dancing ex:requires #skating .

How would I go about describing this in Owl such that Owlim could
infer this? I can see how to make Ice Dancing into a skating sport:

#SkatingSport
   a owl:Class ;

   owl:equivalentClass [
   a owl:Class ;
   owl:intersectionOf ( ex:Sport
   [
   a owl:Restriction ;
   owl:hasValue #skates ;
   owl:onProperty ex:equipment
   ]
   )
   ] .

or something like that - but what I want to do is infer an additional
property not a class.

Anyone able to help with an example?


--
rob

Rob Styles
tel: +44 (0)870 400 5000
fax: +44 (0)870 400 5001
mobile: +44 (0)7971 475 257
irc: irc.freenode.net/mrob,isnick
web: http://www.talis.com/
blog: http://www.dynamicorange.com/blog/
blog: http://blogs.talis.com/nodalities/
blog: http://blogs.talis.com/n2/
___
OWLIM-discussion mailing list
OWLIM-discussion@ontotext.com
http://ontotext.com/mailman/listinfo/owlim-discussion 


___
OWLIM-discussion mailing list
OWLIM-discussion@ontotext.com
http://ontotext.com/mailman/listinfo/owlim-discussion