Now, I really think it's better to read an RDF tutorial first ...

You're missing too many basics necessary to make a Semantic Web project.


Let, me ask you one question:

Given an object property p and a triple (s, p, o), what is the value o
of an object property?

And how about simply using

    System.out.println(l1);

to see hat toString() returns? By the way, casting with asResource() and
still leaving the type RDFNode has no impact. Please see what
asResource() returns.

Moreover, variable naming should also be adapted, thus, using still l1
although it's no literal can be confusing in later parts of the code.


On 18.01.2017 14:14, Sidra shah 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
>>>
>>>

Reply via email to