> OntModel model2=ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM);
>    InputStream in =FileManager.get().open("F://20-8.owl");
>             if (in==null) {
>                 throw new IllegalArgumentException( "File: " +  " not
> found");
>             }          model2.read(in,"");
>
>              String ns="
> http://www.semanticweb.org/t/ontologies/2016/7/myOWL#";;
>
>        OntProperty favcat=model2.getOntProperty(ns+ "BestCategory");
> String  name=jTextField1.getText();
> Individual indiv = user1.createIndividual(ns + name);
>               RDFNode phFav=indiv.getPropertyValue(favcat);
>              if (phFav!=null){
>               Literal l1=phFav.asLiteral();
If BestCategory is an object property, why do you cast the value as
literal?!
>
>                s1=l1.toString(); }
>              }
>     if (s1=="CatPhysics"){
>              JOptionPane.showMessageDialog(null, "Physics");
>               }
>
> The rule itself is
>
> String rule ="[rule1: ( ?x http://www.semanticweb.org/
> t/ontologies/2016/7/myOWL#Physics_Preferred_Category  ?cat1 )" +
>  "( ?x http://www.semanticweb.org/t/ontologies/2016/7/myOWL#
> Chem_Preferred_Category  ?cat2 )" +
>         "( ?x http://www.semanticweb.org/t/ontologies/2016/7/myOWL#Geo_
> Preferred_Category  ?cat3 )" +
>         "greaterThan(?cat1,?cat2), greaterThan(?cat1,?cat3)"
>          + " ->  (?x  http://www.semanticweb.org/t/
> ontologies/2016/7/myOWL#BestCategory   http://www.semanticweb.org/t/
> ontologies/2016/7/myOWL#BestCategory#Physics   )]";
>
>
> The BestCategory is object property.
>
> Regards
>
>
> On Tue, Jan 17, 2017 at 8:16 PM, Andy Seaborne <[email protected]> wrote:
>
>> A Complete, Minimal Example please.
>>
>>
>> Partial code, no data is not complete.
>> It must compile and run to be complete.
>>
>> Minimal means only what is necessary to ask the question not the whole
>> data or whole application.
>>
>>     Andy
>>
>> On 17/01/17 17:14, Sidra shah wrote:
>>
>>> I am surprise that when there is no value in BestCategory, it gives me no
>>> error and when the rule executes and value comes in BestCategory, it gives
>>> me now *"RequiredLiteralException*"
>>>
>>> The code I used here is
>>>
>>>  OntProperty favcat=model2.getOntProperty(ns+ "BestCategory");
>>>
>>> RDFNode phFav=indiv.getPropertyValue(favcat);
>>>              if (phFav!=null){
>>>               Literal l1=phFav.asLiteral();
>>>
>>>                s1=l1.toString();}
>>>
>>>     if (s1=="CatPhysics"){
>>>              JOptionPane.showMessageDialog(null, "Physics");
>>>               }
>>>
>>> Best regards
>>>
>>> On Tue, Jan 17, 2017 at 5:53 PM, Sidra shah <[email protected]>
>>> wrote:
>>>
>>> Hello Chris, thanks a lot for your suggestion.
>>>> Best regards.
>>>>
>>>> On Tue, Jan 17, 2017 at 5:37 PM, Chris Dollin <
>>>> [email protected]> wrote:
>>>>
>>>>
>>>>> On 17/01/17 13:30, Sidra shah wrote:
>>>>>
>>>>> Hi Lorenz, I am sorry but with much regards, you discussed here the
>>>>>> problem, not the solution  :) :)
>>>>>>
>>>>>> I know this if there is no value, there must be Null exception,
>>>>>>
>>>>>>
>>>>> This is not true.
>>>>>
>>>>> but can you suggest me a way where we dodge the compiler
>>>>>
>>>>>>
>>>>> No "dodging" of the compiler is required. Instead, just write
>>>>> perfectly ordinary code that tests to see if the result of
>>>>> getPropertyValue is null, and take one action if it isn't and
>>>>> a different one if it is.
>>>>>
>>>>> There's nothing special about this. You don't need to use
>>>>> break (which is for escaping from loops); just an if
>>>>> with suitable then and else parts.
>>>>>
>>>>> I know this is more a Java problem, but any help I will appreciate.
>>>>>
>>>>>>
>>>>> Find someone /local/ doing the same or similar course and talk to
>>>>> them (and have them talk to you) about programming and this
>>>>> problem. I don't mean copy each other's work; I mean use each
>>>>> other to understand what the problem is about and how the code
>>>>> works. Each of you will know things that the other doesn't; share.
>>>>>
>>>>> Chris
>>>>>
>>>>> --
>>>>> "He could not weigh up which was worse and so tried not to think about
>>>>> either."
>>>>>                                                 /The Spellgrinder's
>>>>> Apprentice/
>>>>>
>>>>> Epimorphics Ltd, http://www.epimorphics.com
>>>>> Registered address: Court Lodge, 105 High Street, Portishead, Bristol
>>>>> BS20 6PT
>>>>> Epimorphics Ltd. is a limited company registered in England (number
>>>>> 7016688)
>>>>>
>>>>>
>>>>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to