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/mmmmmrob,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

Reply via email to