Re: sum property values
There have been 2 different techniques mentioned that solve different problems. The SUM aggregate function can be used to reduce a result set as illustrated by the following minimal CSV snippets: BEFORE: ?v1,?v2 "A",1 "A",1 "A",2 "B",3 "B",1 AFTER: ?v1,?v3 "A",4 "B",4 The above results could be achieved by: SELECT ?v1 (SUM(?v2) AS ?v3) WHERE { #pattern that binds ?v1 and ?v2 } GROUP BY ?v1 If you want to extend a result set with a new binding composed from other bound values, you could use: SELECT ?v1 ?v2 ?v3 ?v4 WHERE { #pattern that binds ?v1,?v2,?v3 BIND (?v2+?v3 AS ?v4) } If the basic graph pattern results were: ?v1,?v2,?v3 "A",2,0 "B",1,3 "C",5,2 then the BIND statement would cause: ?v1,?v2,?v3,?v4 "A",2,0,2 "B",1,3,4 "C",5,2,7 Regards, --Paul > On Oct 11, 2016, at 13:32, neha gupta wrote: > > I am still waiting for any response about how to add/sum values of > different data property values in SPARQL? > > > >> On Sun, Oct 9, 2016 at 8:19 AM, neha gupta wrote: >> >> yes because what I studied about SUM is it sum the values of single >> variable. >> >> SELECT (?worldcupgoals + ?eurogoals+ ?othergoals)) >> where { ?team rdf:type ont:Team . ?team ont:WorldCup_Goals ?worldcupgoals; >> ont:EuroCup_Goals ?eurogoals ; ont:Other_Goals ?othergoals} >> >> On Sun, Oct 9, 2016 at 5:15 AM, Lorenz B. > leipzig.de> wrote: >> >>> No, that's obviously wrong. And you don't need GROUP BY and SUM - in >>> your examples it's even the wrong way. >>> Simply SELECT the team and use '+' to compute the sum of the different >>> goal values. >>> >>> And why can't you try it out? >>> Will it works like: SELECT (SUM(?worldcupgoals ?eurogoals ?othergoals)) where { ?team rdf:type ont:Team . ?team ont:WorldCup_Goals >>> ?worldcupgoals; ont:EuroCup_Goals ?eurogoals ; ont:Other_Goals ?othergoals} On Sat, Oct 8, 2016 at 12:43 PM, Martynas Jusevičius < >>> marty...@graphity.org> wrote: > https://www.w3.org/TR/2013/REC-sparql11-query-20130321/#aggr >>> egateExample > > On Sat, Oct 8, 2016 at 9:35 PM, neha gupta >>> wrote: >> I am sorry but need some details? I really have no idea how to sum > multiple >> values (data properties) using SPARQL, despite searched the web. >> >> On Sat, Oct 8, 2016 at 11:21 AM, Andy Seaborne >>> wrote: >> >>> SUM and GROUP BY >>> >>> Andy >>> >>> On 08/10/16 19:14, neha gupta wrote: team1 WorldCup_Goals 20 team1 EuroCup_Goals 25 team1 Other_Goals50 WorldCup_Goals, EuroCup_Goals and Other_Goals are my properties. How to calculate total goals of team1 using SPARQL? >>> -- >>> Lorenz Bühmann >>> AKSW group, University of Leipzig >>> Group: http://aksw.org - semantic web research center >>
Re: Rules
Javed, can't you try it out and see whether the expected result will be generated? Isn't this the fastest way compared to asking for response on mailing list which might be much slower? And nobody here knows your ontology, thus, we cannot say whether there is something wrong. Obviously, your rule checks whether AI_Score is large than the others, and if so assigns a student to the corresponding subject. > I have Student ontology in which students have three subjects and scores > they have in exams. I want to assign students to a property > "FavioriteSubject" based on their scores. Is this rule Ok to achieve my > goal here? > > ?x rdf:type std:Student + ?x std:Robotics_Score ?Robotics + ?x > std:Research_Score ?Research + ?x std:AI_Score ?AI + > greaterThan(?Robotics,?Research)^greaterThan(?Robotics, ?AI) --> > ?x std:FavioriteSubject std:Robotics. > > std:Robotics will be an instance in my ontology. > -- Lorenz Bühmann AKSW group, University of Leipzig Group: http://aksw.org - semantic web research center
Re: Rules
javed, Try it out on your data and see what happens! Questions are best when they are concrete - show the code, show the data, show what happens, say what you wanted. The stackoverflow advice has more on getting better answers to questions: http://stackoverflow.com/help/mcve Andy On 13/10/16 10:58, javed khan wrote: I have Student ontology in which students have three subjects and scores they have in exams. I want to assign students to a property "FavioriteSubject" based on their scores. Is this rule Ok to achieve my goal here? ?x rdf:type std:Student + ?x std:Robotics_Score ?Robotics + ?x std:Research_Score ?Research + ?x std:AI_Score ?AI + greaterThan(?Robotics,?Research)^greaterThan(?Robotics, ?AI) --> ?x std:FavioriteSubject std:Robotics. std:Robotics will be an instance in my ontology.
empty Path OntTools method getShortestPath
Dear Jena-Team, we are very happy about the experimental OntTools method “getShortestPath”. It works fine, but up from a specific amount of in-between concepts, the returned path is NULL. We are working with the VDOT-Ontology (http://www.ifomis.org/vdot/vdot_core.owl) . We focused out, that the method does not have any problems with the relationships between the concepts – because when we cut the path in smaller pieces e.g. path between patient and blood sample and path between blood sample and leukocyte it works fine. We tried it with the following code: OntClass toClass = model.getOntClass("http://www.ifomis.org/hdot/HDOT_PM_0058";); OntClass fromClass = model.getOntClass("http://www.ifomis.org/vdot/vdot_core.owl#fma62852";); Predicate onPath = new Predicate() { @Override public boolean test(Statement t) { // TODO Auto-generated method stub return true; } }; Path path = OntTools.findShortestPath(model, fromClass, toClass, onPath); if (path!= null){ System.out.println("I am not empty!"); } else { System.out.println("I am empty!"); } We are looking forward for your answer! Best Regards Kerstin Rohm -- Kerstin Rohm Health Information Systems Fraunhofer Institute for Biomedical Engineering Joseph-von-Fraunhofer-Weg 1 66280 Sulzbach Germany Phone: +49 (0)6894 980253 Fax: +49 (0)6894 980400 email: kerstin.r...@ibmt.fraunhofer.de http://www.ibmt.fraunhofer.de
Rules
I have Student ontology in which students have three subjects and scores they have in exams. I want to assign students to a property "FavioriteSubject" based on their scores. Is this rule Ok to achieve my goal here? ?x rdf:type std:Student + ?x std:Robotics_Score ?Robotics + ?x std:Research_Score ?Research + ?x std:AI_Score ?AI + greaterThan(?Robotics,?Research)^greaterThan(?Robotics, ?AI) --> ?x std:FavioriteSubject std:Robotics. std:Robotics will be an instance in my ontology.