Similarly, how can I make BestCategory as data property? When I take it as object property, it does not behave likely I really want. When I take BestCategory as data property and execute the rule, it saves my BestCategory as Annotation property. I have made the Domain of BestCategory property as Category and range as String.
I do not know when taken as object property, it is saved as objectproperty assertions and when taken as data property, it is saved as Annotations. I wish I could share the screen shot of my ontology so that you get more clear picture of my problem. Best regards On Wed, Jan 18, 2017 at 4: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] >> ig.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/apach >>> e/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 >>> >>> >> >
