Hello Lorenz, I am sorry. Can we use FACup as string rather than a resource. I mean it is also possible, if allowed by rules, that we use something like this
(?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type http:// www.semanticweb.org/soccer#Team) " + "( ?x http://www.semanticweb.org/soccer#FACupGoals ?goals )" + "greaterThan(?goals,30) + " -> (?x http://www.semanticweb.org/soccer#FavioriteLeague http://www.semanticweb.org/soccer# <http://www.semanticweb.org/soccer#FACup>"FACup" )]"; FACup, ChampLeague etc are just some plain strings. On Fri, Jan 13, 2017 at 12:26 AM, Lorenz Buehmann < [email protected]> wrote: > Again, you ignored my suggestion to UPLOAD THE WHOLE ONTOLOGY and SHOW > US THE WHOLE RULE that does not work. > > Not having an individual FACup in your ontology is not really an > explanation for me that a property will be rendered as annotation > property in Protege after rule execution and storing the data with Jena. > > > On 12.01.2017 15:57, neha gupta wrote: > > I want to ask Lorenz, about the Then part of the rule: > > > > THEN -> team FavoriteLeague is FACup > > > > FACup is the resource in my owl (just followed Create Instance tab in > > Protege and Protege has give it the default URI like other resources in > the > > file). > > > > Before we execute the rule, is it must that we should declare it in Java > > code like we do in Jena class before using it in Rules like > > OntClass team = model.getOntClass(ns + "Team") > > > > Because I am sure the problem lies in the resource FACup (or its URI). > > > > Regards > > > > On Thu, Jan 12, 2017 at 5:43 PM, Lorenz B. < > > [email protected]> wrote: > > > >> I don't understand your problem now, sorry. It's too confusing. > >> > >> You said that you changed the whole ontology: upload it somewhere such > >> that we can see it > >> > >> Show the final rule that doesn't work, not in pseudo-syntax but how you > >> use it in Jena. > >> > >> Upload the code somewhere > >> > >>> I am sorry for any inconvenience I have created. I really dont know how > >> to > >>> create minimal code snippet or uses Github. > >>> > >>> Coming to the problem, what I noticed is the problem is in the object > i-e > >>> FACup here. > >>> team1 FavoriteLeague FACup > >>> > >>> Because I made changes and coming to the down, used different > properties > >>> (in place of FavoriteLeague), and made the rule simple to: > >>> If x is a Team, then x FavoriteLeague is FACup , > >>> If x is a Team, then x Wins is FACup etc just for simplicity. > >>> > >>> In a nutshell, changed everything except object of rule FACup and it > >>> appears in Annotation area so the problem for sure is in the URI of > >> FACup. > >>> Now about resources FACup, PremierLeague, ChampionsLeague, these are > not > >>> associated with anything in the ontology (neither Types of anything, > nor > >>> data/object assertions), rather I just created it in Protege with URI > >> like > >>> other resources. > >>> URI of Team Class: http://www.semanticweb.org/soccer#Team > >>> URI of FavoriteCategory : http://www.semanticweb.org/ > >> soccer#FavoriteCategory > >>> and URI of FACup: http://www.semanticweb.org/soccer#FACup > >>> > >>> So I dont know if it is mandatory to get the value of resource > >>> http://www.semanticweb.org/soccer#FACup first before the rules > executes > >>> because simple putting it in the rules not working for me. > >>> > >>> Sorry once again. > >>> > >>> > >>> On Thu, Jan 12, 2017 at 12:12 PM, Lorenz B. < > >>> [email protected]> wrote: > >>> > >>>> in your last answer you wrote > >>>> > >>>> *String ns="http://www.semanticweb.org/soccer > >>>> <http://www.semanticweb.org/soccer#FACupGoals>#";* > >>>> > >>>> if you provide us no information and the information that you provide > is > >>>> of such poor quality, then it's not possible to help you. > >>>> > >>>> Last time that I'll write this here: > >>>> > >>>> 1. provide the WHOLE ontology (there are many services only where you > >>>> can put your file online for free) > >>>> 2. show the minimal code snippet that makes it possible to see that it > >>>> doesn't work > >>>> > >>>> Or put everything into a Github project > >>>> > >>>> > >>>>> Hi Lorenz, the ns is wrong, how? > >>>>> > >>>>> String ns="http://www.semanticweb.org/soccer# > >>>>> > >>>>> Rule: > >>>>> > >>>>> (?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type http:// > >>>>> www.semanticweb.org/soccer#Team) " > >>>>> > >>>>> + "( ?x http://www.semanticweb.org/soccer#FACupGoals ?goals )" + > >>>>> > >>>>> "greaterThan(?goals,30) > >>>>> + " -> (?x http://www.semanticweb.org/ > >> soccer#FavioriteLeague > >>>>> http://www.semanticweb.org/soccer#FACup )] > >>>>> > >>>>> > >>>>> On Thu, Jan 12, 2017 at 1:03 AM, Lorenz Buehmann < > >>>>> [email protected]> wrote: > >>>>> > >>>>>> On 11.01.2017 22:10, neha gupta wrote: > >>>>>>> Hello Lorenz, I am sure I have used the FavoriteLeague as Data > >> Property > >>>>>> in > >>>>>>> Protege and it has the same URI as other data properties and other > >>>>>>> resources in the ontology ie http://www.semanticweb.org/soccer# > >>>>>>> <http://www.semanticweb.org/soccer#FACupGoals>FavoriteLeague. > >>>>>>> > >>>>>>> I have changed the spelling of FavoriteLeague. to FavoLeague, > >>>> favLeague, > >>>>>>> but every time the same disappointing result. > >>>>>>> My namespace is also same in whole program: > >>>>>>> > >>>>>>> *String ns="http://www.semanticweb.org/soccer > >>>>>>> <http://www.semanticweb.org/soccer#FACupGoals>#";* > >>>>>> Ehm that's a totally wrong namespace declaration. To be honest, I > >> don't > >>>>>> understand why you don't see this...and the namespace in the rule is > >>>>>> obviously NOT the same then > >>>>>>> favleague is declared as: > >>>>>>> > >>>>>>> *OntProperty favleague=model.getOntProperty(ns+ > "FavoriteLeague");* > >>>>>> Please tell me, what do you think is the concatenation of the String > >> in > >>>>>> the variable ns and the String "FavoriteLeague" ? > >>>>>> > >>>>>> > >>>>>>> //All my data properties are declared like this and it works. For > >> ex: > >>>>>> Goal > >>>>>>> property > >>>>>>> OntProperty goals=model.getOntProperty(ns+ "Goals"); > >>>>>>> > >>>>>>> > >>>>>>> On Wed, Jan 11, 2017 at 9:41 PM, Lorenz Buehmann < > >>>>>>> [email protected]> wrote: > >>>>>>> > >>>>>>>> Chris is right. It's beginning to become annoying if youalways > >> ignore > >>>>>>>> our advices to show data + the code - all the code. Even now you > >>>> omitted > >>>>>>>> information like > >>>>>>>> > >>>>>>>> * the declaration of the variable ns > >>>>>>>> > >>>>>>>> * the declaration of the variable favcat > >>>>>>>> > >>>>>>>> > >>>>>>>> And indeed the data. IF you have anywhere in the code and/or data > a > >>>>>>>> typo, the rule not "fire", thus no data will be inferred. In your > >>>> case, > >>>>>>>> I'm pretty sure that data is inferred (you said that Protege shows > >> it > >>>> as > >>>>>>>> annotation) - but the inferred property is nowhere declared as > >>>>>>>> owl:DatatypeProperty in the ontology. This is mandotory for > OWL/OWL > >>>>>>>> API/Protege > >>>>>>>> > >>>>>>>> > >>>>>>>> On 11.01.2017 16:48, neha gupta wrote: > >>>>>>>>> I used like this > >>>>>>>>> > >>>>>>>>> *OntProperty favleague=model.getOntProperty(ns+ > >>>> "FavioriteLeague");* > >>>>>>>>> Then I wrote this rule: > >>>>>>>>> > >>>>>>>>> (?x http://www.w3.org/1999/02/22-rdf-syntax-ns#type > >>>>>>>>> http://www.semanticweb.org/soccer#Team) " > >>>>>>>>> > >>>>>>>>> + "( ?x http://www.semanticweb.org/soccer#FACupGoals ?goals > )" + > >>>>>>>>> > >>>>>>>>> "greaterThan(?goals,30) > >>>>>>>>> + " -> (?x http://www.semanticweb.org/ > >>>>>> soccer#FavioriteLeague > >>>>>>>>> http://www.semanticweb.org/soccer#FACup )]"; > >>>>>>>>> //FACupe is resource in the ontology: > >>>>>>>>> > >>>>>>>>> Then > >>>>>>>>> *inf.listStatements(null,favcat,(RDFNode)null);* > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> I think the problem is not in typo because I run similar rule for > >>>>>> another > >>>>>>>>> data property FavioriteStadium and it also saves in Annotation > >> area. > >>>>>>>>> On Wed, Jan 11, 2017 at 6:31 PM, Chris Dollin < > >>>>>>>> [email protected]> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>>> On 11/01/17 15:15, neha gupta wrote: > >>>>>>>>>> > >>>>>>>>>>> Even this not works > >>>>>>>>>>> > >>>>>>>>>>> inf.listStatements(null,favleague,(RDFNode)null); > >>>>>>>>>>> > >>>>>>>>>>> Gives the result but in Annotation area of Protege > >>>>>>>>>>> > >>>>>>>>>> COMPLETE MINIMAL EXAMPLE, please. You have so many > >>>>>>>>>> errors & omissions in the code you show us we can't > >>>>>>>>>> tell which one is the one you're asking about. > >>>>>>>>>> > >>>>>>>>>> If Protege is putting things in the annotation area > >>>>>>>>>> I'd guess that means the thing isn't declared as either > >>>>>>>>>> a DataProperty or an ObjectProperty. Given your erratic > >>>>>>>>>> spelling that's quite likely. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> 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 > >> > >> > >
