[Pellet-users] Nominals in DL-safe Rules

Evren Sirin evren at clarkparsia.com
Mon Mar 5 15:03:05 UTC 2007


On 3/2/07 4:58 AM, Paolo Bussotti wrote:
> Hi everybody,
> I've tried to use dl-safe rules with nominals, but it seems it doesn't 
> work (it enters an infinite loop until I got an out-of-memory 
> exception). However, when I substitute the enumeration class with a 
> simple class which  has  the same instances, then it works.
> Is it correct?. For example if  I define a rule (here in datalog):
>
>      hasStandardTitle(?u,?title) :- User(?u), Education(?edu), 
> Title(?title), hasEducation(?u,?edu), standardTitle(?edu, ?title).
>
> where the intermediate class Education is used to allow multivalued 
> properties (it is also the domain of a DatatypeProperty: "other-titles", 
> with xs:string as range),
> then IF I MODEL the class Title as an enumeration of individuals, e.g., 
> Title={ PhD HighSchool.....} , and assert:
>
> <User rdf:ID="usr1">
>      <hasEducation>
>        <Education rdf:ID="usr1_edu">
>           <standardTitle rdf:resource="#PhD"/>
>        </Education>
>      </hasEducation>
> </User>  
>
> Then the (SPARQL) query:              ..................
>                                                         ?title a ex:Title .
>                                                          ex:usr1 
> ex:hasStandardTitle ?title .
>                                                         ....................
>
> doesn't returns:              ?title=ex:PhD.
>
> INSTEAD IF I MODEL the class Title as a simple class with  the same 
> individuals as its instances, 
Note that you have changed the modeling here. owl:oneOf was saying 
something stronger than simple instance relation (it is like 
equivalentClass compared to subClassOf). So it might be just that this 
difference makes an impact on the performance of DL-safe rules 
implementation (which is in a preliminary stage and not very efficient 
as you know).


> then the rule works properly, and the 
> query gives me the expected result. Might you explain me the reason of 
> this behaviour?
>   
You might be getting the same results because maybe you probably did not 
need the stronger statement for this example. You will lose some 
inferences on other places which may or may not be a problem depending 
on what you expect from your modeling.

Cheers,
Evren
>     
> Many thanks in advance
> Paolo Bussotti
>
>
>
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
> _______________________________________________
>
> Sponsored by Clark & Parsia, LLC http://clarkparsia.com/
>   



More information about the Pellet-users mailing list