Ah right, the String matching will also fail because of the wrong
operator - but remember, IN ADDITION to the problem that the property is
an object property and therefore the value is a resource which is
identified by a URI

> You need to learn the difference between == and .equals().
>
> Please read up on basic Java skills! These questions should be asked on the
> Jena user group...
>
>
> On 18 Jan 2017 1:14 pm, "Sidra shah" <[email protected]> wrote:
>
> Hello Lorenz, its not giving me the exception now but it does not display
> the message JOption,. It does not read the  * if (s1=="CatPhysics")*
>
>
> RDFNode phFav=indiv.getPropertyValue(favcat);
>              if (phFav!=null){
>               RDFNode l1=phFav.asResource();
>
>
>               String s1=l1.toString();
>               }
>
>     if (s1=="CatPhysics"){
>              JOptionPane.showMessageDialog(null, "Phyics category");
>               }
>
>
>
> On Wed, Jan 18, 2017 at 2:12 PM, Sidra shah <[email protected]> wrote:
>
>> Thank you Lorenz, let me read the document you mention here. I will come
>> back after reading and applying.
>>
>> Best regards
>>
>> On Wed, Jan 18, 2017 at 1:46 PM, Lorenz B. <[email protected]
>> leipzig.de> wrote:
>>
>>> What is for you the "value of a resource"? The URI?
>>>
>>> There is only one good source for developers, and that's Javadoc [1] -
>>> that's why we always refer to if people have questions.
>>>
>>> asResource() converts the RDFNode object to a resource
>>>
>>> [1]
>>> https://jena.apache.org/documentation/javadoc/jena/org/
>>> apache/jena/rdf/model/RDFNode.html
>>>
>>>> Hello Lorenz, this was the question I was expected to ask? I mean
>>> values of
>>>> BestCategory are resources.
>>>> Kindly if you can guide me how to get the value, I searched it on the
>>> web
>>>> but could not found any related resources.
>>>>
>>>> Kind regards
>>>>
>>>> On Wed, Jan 18, 2017 at 10:57 AM, Lorenz B. <
>>>> [email protected]> wrote:
>>>>
>>>>>> 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/o
>>> ntologies/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
>>>>>
>>>>>
>>> --
>>> Lorenz Bühmann
>>> AKSW group, University of Leipzig
>>> Group: http://aksw.org - semantic web research center
>>>
>>>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to