When I do not use the subselect and write the query this way:

String queryString1 =
"PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>"+
"PREFIX cv:<
http://www.semanticweb.org/toshiba/ontologies/2017/3/untitled-ontology-6#>"+
"INSERT {"+
" ?ass cv:recorded_speed ?avg"+
"}"+
"WHERE {"+
"SELECT (AVG(?speed) AS ?avg) {"+
         "?v cv:vehicleSpeed ?speed;"+
         " cv:Vehicle_Road ?r ;"+
        "?ass cv:avgSpeedSensor_Infrastructue ?r ."+



      "}"+ "GROUP BY ?r ?ass"+
      "}";

The code generates the error below when it tries to execute the update
action:
Exception in thread "main" org.apache.jena.query.QueryParseException:
Encountered " <VAR1> "?r "" at line 1, column 299.
Was expecting one of:
    "values" ...
    "graph" ...
    "optional" ...
    "minus" ...
    "bind" ...
    "service" ...
    "filter" ...
    "{" ...
    "}" ...
    ";" ...
    "," ...
    "." ...

When I researched these options under "Was expecting one of:",  I did not
find one of those options that would fit my query.
I need this line:   "?ass cv:avgSpeedSensor_Infrastructue ?r ." to ensure
that the sensor is attached to the road on which the car is on.

I group by ?r to try to ensure that the grouping is per road as well. But I
think you have a point, and I should group by the sensor as well.

Note: when I write the " cv:Vehicle_Road ?r ;"+      line with a full stop
instead of a full stop the error goes away, but still, nothing happens in
the owl file. Meaning, the new tuple is not added either. (I am a bit
confused as to when to put a ";" and when to put a "." I believe, as far as
my understanding goes, when I put a "." in the end of the
" cv:Vehicle_Road ?r " the error goes away because the last line   "?ass
cv:avgSpeedSensor_Infrastructue ?r ." is ignored in the first place. could
you confirm or negate that?)

Your help is truly much appreciated.

On Fri, Jun 9, 2017 at 2:30 PM, Lorenz Buehmann <
[email protected]> wrote:

> There was some formatting issue in my previous mail.
>
> What I was wondering the need for grouping by ?r instead of ?ass.
>
> PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX  cv:
> <http://www.semanticweb.org/toshiba/ontologies/2017/3/untitled-ontology-6#
> >
>
> INSERT {
>   ?ass cv:recorded_speed ?avg .
> }
> WHERE
>   { SELECT  ?ass (AVG(?speed) AS ?avg)
>     WHERE
>       { ?v    cv:vehicleSpeed       ?speed ;
>                  cv:Vehicle_Road       ?r .
>         ?ass  cv:avgSpeedSensor_Infrastructue  ?r
>       }
>     GROUP BY ?r ?ass
>   }
>
>
>
> On 09.06.2017 16:29, Lorenz Buehmann wrote:
> > That is your query:
> >
> > PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> > PREFIX  cv:
> > <http://www.semanticweb.org/toshiba/ontologies/2017/3/
> untitled-ontology-6#>
> >
> > INSERT {
> >   ?ass cv:recorded_speed ?avg .
> > }
> > WHERE
> >   { SELECT  (AVG(?speed) AS ?avg)
> >     WHERE
> >       { ?v  cv:vehicleSpeed  ?speed ;
> >             cv:Vehicle_Road  ?r
> >         { SELECT  ?r
> >           WHERE
> >             { ?ass  cv:avgSpeedSensor_Infrastructue  ?r }
> >         }
> >       }
> >     GROUP BY ?r
> >   }
> >
> > The problem is that you use for what ever reason a sub-SELECT to get the
> > ?ass value. But this value is not propagated to the outer query, thus,
> > it's not bound to the INSERT part.
> >
> > Why not do it like here (note, I dPREFIX  rdf:
> > <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> > PREFIX  cv:
> > <http://www.semanticweb.org/toshiba/ontologies/2017/3/
> untitled-ontology-6#>
> >
> > INSERT {
> >   ?ass cv:recorded_speed ?avg .
> > }
> > WHERE
> >   { SELECT  ?ass (AVG(?speed) AS ?avg)
> >     WHERE
> >       { ?v    cv:vehicleSpeed       ?speed ;
> >               cv:Vehicle_Road       ?r .
> >         ?ass  cv:avgSpeedSensor_Infrastructue  ?r
> >       }
> >     GROUP BY ?r ?ass
> >   }on't know why you group by ?r instead of ?ass, thus, added both):
> >
> >
> >
> >
> > On 09.06.2017 14:22, Aya Hamdy wrote:
> >> Didn't know attachments are not allowed.
> >> This is a gist of the three files.
> >> https://gist.github.com/AyazzHamdy/faa14ebf46b0fe32689edc808dbf85d9
> >>
> >> The code files are minimalist as you can see on the gist. Only the
> query is
> >> included and everything else is removed. I wanted to attach them as
> files
> >> to avoid clutter in the email. I believe things are more organized this
> way.
> >>
> >> The problem is in b.java file. The c.java file is just to prove that the
> >> individual parts of the query work together. And the OWL file is the one
> >> generated by Protege. It has no problems, but I have removed anything
> that
> >> is not needed for this specific query.
> >>
> >> I have also attached a file called "ont.owl (full)" which has the full
> >> ontology in case it is needed (which I think it is not needed, but just
> in
> >> case I misunderstand).
> >>
> >>  Regards,
> >>
> >> On Fri, Jun 9, 2017 at 8:47 AM, Andy Seaborne <[email protected]> wrote:
> >>
> >>> Attachments don't get through to this list.
> >>>
> >>> Put them in a  pastebin or guithub gist.
> >>>
> >>> However, if they are so large that inlining email in plain text is
> >>> impractical, than it suggests they are not minimal.
> >>>
> >>>     Andy
> >>>
> >>>
> >>>
> >>> On 09/06/17 07:06, Lorenz Buehmann wrote:
> >>>
> >>>> You forgot the attachments...
> >>>>
> >>>>
> >>>> On 09.06.2017 03:02, Aya Hamdy wrote:
> >>>>
> >>>>> Attached is a file of my code and my ontology which I have imported
> on
> >>>>> Eclipse.
> >>>>>
> >>>>> I have finally fixed the null values issue. I am not sure if I
> >>>>> understood the cause of the nulls correctly. However, it got fixed
> >>>>> when I used a different way of making the ResultSet as shown below:
> >>>>>
> >>>>> Query query = QueryFactory.create(queryString1);
> >>>>> QueryExecution qexec= QueryExecutionFactory.create(query,
> >>>>> ontologyModel);
> >>>>> ResultSet results=qexec.execSelect();
> >>>>> ResultSetFormatter.out(System.out, results, query);
> >>>>> qexec.close();
> >>>>> I am including this bit of code here in case this helps someone else
> >>>>> in the future cause I could not find it easily. It can be found in
> >>>>> context in the attached c.java file.
> >>>>>
> >>>>> However, the original bigger problem still persists. The insert
> SPARQL
> >>>>> query still does not result in inserting the new desired subject
> >>>>> predicate object triple. No errors are generated which is I suppose a
> >>>>> good thing, but when I print the ontology after running the query, I
> >>>>> can see that the new triples are not added.
> >>>>>
> >>>>> Attached is the owl file and the java file (b.java). I have added
> >>>>> explanatory comments in the java file hoping to clarify what I am
> >>>>> trying to do here.
> >>>>>
> >>>>> Also, hoping to clarify matters a bit more, I have two average speed
> >>>>> sensors (speedSensor1 and speedSensor2) and I have two vehicles
> >>>>> (vehicle1 and vehicle2). speedSensor1  is attached to Road1 and
> >>>>> speedSensor2 is attached to Road2. vehicle1  is located on Road1 with
> >>>>> vehicleSpeed of 0  and vehicle2 is located on Road2 with vehicleSpeed
> >>>>> of 50. Only one vehicle is modeled to be located on each road in an
> >>>>> attempt to simplify things for now.
> >>>>>
> >>>>> The goal is to calculate the average of speeds of all vehicles on
> >>>>> road1 and assign it as the value of the object property called
> >>>>> recorded_speed of the speed sensor attached to the road which the
> >>>>> vehicles are on.  Consequently, based on my modeling, after running
> >>>>> the query, speedSensor1 should have recorded_speed of 0 (since only
> >>>>> vehicle1 is on road1 to which speedSensor1 is attached and vehicle1
> >>>>> has speed of 0) and speedSensor2 should have recorded_speed of 50
> >>>>> (since only vehicle2 is on road2 to which speedSensor2 is attached
> and
> >>>>> vehicle2 has speed of 50).
> >>>>>
> >>>>> Also, attached is another java file (c.java) that has the results of
> >>>>> me breaking down the big query in b.java.
> >>>>> My suspicion is that the part where I am trying to invoke the insert
> >>>>> query is not working, but the way I built is based on StackOverflow
> >>>>> and it was supposedly working fine, so I am not sure what I am
> missing.
> >>>>>
> >>>>> Hope this gives you a picture of what is going on and hope you can
> >>>>> help me understand why I cannot get the query to update the ontology.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Thu, Jun 8, 2017 at 5:29 PM, Lorenz Buehmann
> >>>>> <[email protected]
> >>>>> <mailto:[email protected]>> wrote:
> >>>>>
> >>>>>      If results are bound it can't be a null value. Please show your
> >>>>>      updated
> >>>>>      code.
> >>>>>
> >>>>>
> >>>>>      On 07.06.2017 14:58, Aya Hamdy wrote:
> >>>>>      > Sorry about the x, It was a stupid mistake. But it is nit the
> >>>>>      cause of the
> >>>>>      > null. When I fixed it, the results of even the simplest
> queries
> >>>>>      are still
> >>>>>      > nulls.
> >>>>>      >
> >>>>>      > The code is not generating errors though, it is not generating
> >>>>>      the proper
> >>>>>      > results ...
> >>>>>      >
> >>>>>      > On Tue, Jun 6, 2017 at 9:13 AM, Andy Seaborne <
> [email protected]
> >>>>>      <mailto:[email protected]>> wrote:
> >>>>>      >
> >>>>>      >>
> >>>>>      >> On 06/06/17 00:26, Aya Hamdy wrote:
> >>>>>      >>
> >>>>>      >>> Ok. That sounds reasonable so I will work on breaking down
> my
> >>>>>      chain of
> >>>>>      >>> thought into smaller pieces. Thank you so much.
> >>>>>      >>>
> >>>>>      >>> I saw an example online where the query syntax is written
> as a
> >>>>>      string on
> >>>>>      >>> Jena. so my query now looks like this:
> >>>>>      >>>
> >>>>>      >> Use
> >>>>>      >>
> >>>>>      >> String.join("\n"
> >>>>>      >>    , "PREFIX rdf:<http://www.w3.org/1999/
> 02/22-rdf-syntax-ns#
> >>>>>      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>>"
> >>>>>      >>    , "PREFIX rdf:<http://www.w3.org/1999/
> 02/22-rdf-syntax-ns#
> >>>>>      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>>"
> >>>>>      >>    , "INSERT {",
> >>>>>      >> ...
> >>>>>      >>    , "}"
> >>>>>      >>    );
> >>>>>      >>
> >>>>>      >> then you will have newlines in the string and parser errors
> >>>>>      will have
> >>>>>      >> line+column numbers that are useful.
> >>>>>      >>
> >>>>>      >>     Andy
> >>>>>      >>
> >>>>>      >>
> >>>>>      >>
> >>>>>      >>> String queryString=
> >>>>>      >>> "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#
> >>>>>      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>>"+
> >>>>>      >>> "PREFIX cv:<
> >>>>>      >>>
> >>>>>      http://www.semanticweb.org/toshiba/ontologies/2017/3/untitl
> >>>>> ed-ontology-6#
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/untit
> >>>>> led-ontology-6#>
> >>>>>      >>>> "+
> >>>>>      >>> "insert {"+
> >>>>>      >>>     " ?ass cv:recorded_speed ?avg"+
> >>>>>      >>>    "}"+
> >>>>>      >>> "WHERE {"+
> >>>>>      >>>    "SELECT (AVG(?speed) AS ?avg) "+
> >>>>>      >>> "where{"+
> >>>>>      >>>       " ?v rdf:type cv:Vehicle ;"+
> >>>>>      >>>           "cv:vehicleSpeed ?speed;"+
> >>>>>      >>>           " cv:Vehicle_Road ?r;"+
> >>>>>      >>>           "{"+
> >>>>>      >>>
> >>>>>      >>>           "SELECT ?r"+
> >>>>>      >>>           "where{"+
> >>>>>      >>>
> >>>>>      >>>        "?ass rdf:type cv:Avg_Speed_Sensor;"+
> >>>>>      >>>        " cv:avgSpeedSensor_Infrastructure ?r"+
> >>>>>      >>>        "}"+
> >>>>>      >>>    "}"+
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>>        "}"+"GROUP By ?ass ?avg ?r"+
> >>>>>      >>> "}";
> >>>>>      >>>
> >>>>>      >>> Then, also based on my research, I feed the query string
> into
> >>>>>      the parser
> >>>>>      >>> and output the model.
> >>>>>      >>> UpdateAction.parseExecute( queryString, ontologyModel );
> >>>>>      >>> ontologyModel.write( System.out, "TTL" );
> >>>>>      >>> I encountered many errors but managed to get rid of them
> all.
> >>>>>      However,
> >>>>>      >>>   based on the output, nothing has changed. speedSensor1 and
> >>>>>      speedSensor2
> >>>>>      >>> do
> >>>>>      >>> not have the recorded_speed property added.
> >>>>>      >>>
> >>>>>      >>> Of course, I tried debugging, but I could not get any
> >>>>>      understanding of the
> >>>>>      >>> problem.
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>> I tried breaking the query down to smaller bits right down
> to
> >>>>>      doing a
> >>>>>      >>> simple select on vehicles:
> >>>>>      >>>
> >>>>>      >>> String query1=
> >>>>>      >>> "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#
> >>>>>      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>>"+
> >>>>>      >>> "PREFIX cv:<
> >>>>>      >>>
> >>>>>      http://www.semanticweb.org/toshiba/ontologies/2017/3/untitl
> >>>>> ed-ontology-6#
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/untit
> >>>>> led-ontology-6#>
> >>>>>      >>>> "+
> >>>>>      >>> "Select ?v"+
> >>>>>      >>> "where {"+
> >>>>>      >>> "?v cv:vehicleSpeed ?speed."+
> >>>>>      >>> "}";
> >>>>>      >>>
> >>>>>      >>> Query query = QueryFactory.create(query1);
> >>>>>      >>> QueryExecution qexec= QueryExecutionFactory.create(query,
> >>>>>      ontologyModel);
> >>>>>      >>> try{
> >>>>>      >>> ResultSet results=qexec.execSelect();
> >>>>>      >>> while(results.hasNext()){
> >>>>>      >>> QuerySolution soln=results.nextSolution();
> >>>>>      >>> org.apache.jena.rdf.model.Literal name =
> soln.getLiteral("x");
> >>>>>      >>> System.out.println(name);
> >>>>>      >>> }
> >>>>>      >>> }finally{
> >>>>>      >>> qexec.close();
> >>>>>      >>> }
> >>>>>      >>> But everything I have tried yields in the result "null".
> >>>>>      >>>
> >>>>>      >>> Can you give me pointers on how I should go about trying to
> >>>>>      figure out the
> >>>>>      >>> problem with the insert function?
> >>>>>      >>> Sorry if my questions are too naive, but I am trying to
> grasp
> >>>>>      the concepts
> >>>>>      >>> as much as possible.
> >>>>>      >>>
> >>>>>      >>> Best Regards,
> >>>>>      >>> Aya
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>>
> >>>>>      >>> On Mon, Jun 5, 2017 at 8:32 PM, Andy Seaborne <
> [email protected]
> >>>>>      <mailto:[email protected]>> wrote:
> >>>>>      >>>
> >>>>>      >>> Then find the sensor of interest, and all cars on that given
> >>>>> road.
> >>>>>      >>>> GROUP BY the speed sensor, and the AVG is that of calls on
> >>>>>      that given
> >>>>>      >>>> road.
> >>>>>      >>>>
> >>>>>      >>>> The way to develop complex queris is to write simple parts,
> >>>>>      then combine
> >>>>>      >>>> them.
> >>>>>      >>>>
> >>>>>      >>>>          Andy
> >>>>>      >>>>
> >>>>>      >>>>
> >>>>>      >>>> On 05/06/17 16:46, Aya Hamdy wrote:
> >>>>>      >>>>
> >>>>>      >>>> The goal is not to calculate the avg speed of a car. It is
> >>>>>      rather to
> >>>>>      >>>>> compute the avg speed of all the cars on a given road and
> >>>>>      assign that
> >>>>>      >>>>> computed average as the reading of the average speed
> sensot
> >>>>>      attached to
> >>>>>      >>>>> that road.
> >>>>>      >>>>>
> >>>>>      >>>>> Sorry if my wording is causing confusion.
> >>>>>      >>>>>
> >>>>>      >>>>> On Jun 5, 2017 5:12 PM, "Lorenz Buehmann" <
> >>>>>      >>>>> [email protected]
> >>>>>      <mailto:[email protected]>> wrote:
> >>>>>      >>>>>
> >>>>>      >>>>> No, why do you think so? ?v is the variable that gets
> >>>>>      assigned a vehicle
> >>>>>      >>>>>
> >>>>>      >>>>>> for which you compute the avg speed.
> >>>>>      >>>>>>
> >>>>>      >>>>>> <Instance> should be ?v, i.e. you have to group by it and
> >>>>>      select it
> >>>>>      >>>>>>
> >>>>>      >>>>>> INSERT {
> >>>>>      >>>>>>
> >>>>>      >>>>>> ?v :avgSpeed ?avg
> >>>>>      >>>>>>
> >>>>>      >>>>>> } WHERE {
> >>>>>      >>>>>>
> >>>>>      >>>>>> SELECT ?v (AVG(?speed) AS ?avg) {
> >>>>>      >>>>>>
> >>>>>      >>>>>> ....
> >>>>>      >>>>>>
> >>>>>      >>>>>> } GROUP BY ?v
> >>>>>      >>>>>>
> >>>>>      >>>>>> }
> >>>>>      >>>>>>
> >>>>>      >>>>>>
> >>>>>      >>>>>> On 05.06.2017 17:03, Aya Hamdy wrote:
> >>>>>      >>>>>>
> >>>>>      >>>>>> Hello,
> >>>>>      >>>>>>> I will try to explain with examples. I have generated my
> >>>>>      ontology from
> >>>>>      >>>>>>> Protege and converted it to turtle syntax via an online
> >>>>> tool.
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> *I have a class for average speed sensors:*
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>    ###
> >>>>>      >>>>>>> http://www.semanticweb.org/toshiba/ontologies/2017/3/
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/>
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> untitled-ontology-6#Avg_Speed_Sensor
> >>>>>      >>>>>>
> >>>>>      >>>>>>> untitled-ontology-6:Avg_Speed_Sensor rdf:type
> owl:Class ;
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>                                        rdfs:subClassOf
> >>>>>      >>>>>>> untitled-ontology-6:Sensor ,
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>    untitled-ontology-6:Speed_Sensor .
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> *and a class for vehicles:*
> >>>>>      >>>>>>> ###
> >>>>>      >>>>>>> http://www.semanticweb.org/toshiba/ontologies/2017/3/
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/>
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> untitled-ontology-6#Vehicle
> >>>>>      >>>>>>
> >>>>>      >>>>>>> untitled-ontology-6:Vehicle rdf:type owl:Class .
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> *The vehicle class has a property called vehicleSpeed:*
> >>>>>      >>>>>>> ###
> >>>>>      >>>>>>> http://www.semanticweb.org/toshiba/ontologies/2017/3/
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/>
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> untitled-ontology-6#vehicleSpeed
> >>>>>      >>>>>>
> >>>>>      >>>>>>> untitled-ontology-6:vehicleSpeed rdf:type
> >>>>>      owl:DatatypeProperty ;
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>                                    rdfs:domain
> >>>>>      >>>>>>> untitled-ontology-6:Vehicle
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> ;
> >>>>>      >>>>>>
> >>>>>      >>>>>>>                                    rdfs:range
> xsd:integer .
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> *The avg speed sensor class has  a property called
> >>>>>      recorded_speed:*
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> ###
> >>>>>      >>>>>>> http://www.semanticweb.org/toshiba/ontologies/2017/3/
> >>>>>      <http://www.semanticweb.org/toshiba/ontologies/2017/3/>
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> untitled-ontology-6#recorded_speed
> >>>>>      >>>>>>
> >>>>>      >>>>>>> untitled-ontology-6:recorded_speed rdf:type
> >>>>>      owl:DatatypeProperty ;
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>                                      rdfs:domain
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> untitled-ontology-6:Sensor ,
> >>>>>      >>>>>>
> >>>>>      >>>>>>>    untitled-ontology-6:Speed_Sensor ;
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>                                      rdfs:range
> xsd:integer
> >>>>> .
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> The recorded speed by the avg speed sensor allocated to
> a
> >>>>>      specific
> >>>>>      >>>>>>> road
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> is
> >>>>>      >>>>>> the average of the vehicleSpeeds of the vehicles on that
> >>>>>      specific road,
> >>>>>      >>>>>>> where the avg speed sensor class has a property called
> >>>>>      >>>>>>> avgSpeedSensor_Infrastructure and the vehicle has a
> >>>>>      property called
> >>>>>      >>>>>>> Vehicle_Road.
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> I have two vehicle instances: Vehicle1 and Vehicle2; and
> >>>>>      two sensor
> >>>>>      >>>>>>> instances: SpeedSensor1 and SpeedSensor2.
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> Is it clearer now or just confusing?
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> so I am guessing following your guide it would be
> >>>>>      something like:
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> INSERT {
> >>>>>      >>>>>>>        <instance> :avgSpeed ?avg
> >>>>>      >>>>>>>      }
> >>>>>      >>>>>>> WHERE {
> >>>>>      >>>>>>>      SELECT (AVG(?speed) AS ?avg) {
> >>>>>      >>>>>>>          ?v rdf:type :Vehicle ;
> >>>>>      >>>>>>>             :vehicleSpeed ?speed;
> >>>>>      >>>>>>>             : Vehicle_Road ?r;
> >>>>>      >>>>>>>          ?avs rdf:type :Avg_Speed_Sensor;
> >>>>>      >>>>>>>                 :avgSpeedSensor_Infrastructure ?r
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>      }
> >>>>>      >>>>>>> }
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> But  the value of the  <instance> should come from
> reading
> >>>>>      the file,
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> right?
> >>>>>      >>>>>>
> >>>>>      >>>>>>> On Sun, Jun 4, 2017 at 9:04 PM, Andy Seaborne
> >>>>>      <[email protected] <mailto:[email protected]>>
> >>>>>      >>>>>>> wrote:
> >>>>>      >>>>>>>
> >>>>>      >>>>>>>
> >>>>>      >>>>>>> On 04/06/17 18:47, Aya Hamdy wrote:
> >>>>>      >>>>>>>> Hello,
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>>>> I wanted to add a property called avgSpeed to an
> >>>>>      instance of a class
> >>>>>      >>>>>>>>> called
> >>>>>      >>>>>>>>> FlowSensor. This property should be the average of the
> >>>>>      values of the
> >>>>>      >>>>>>>>> property vehicleSpeed attached to instances of the
> class
> >>>>>      Vehicle.
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>>> I read that SPARQL update allows doing this. However,
> I
> >>>>>      cannot reach
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>>> the
> >>>>>      >>>>>> syntax for doing the* averaging of values* or for
> building
> >>>>>      the *SPARQL
> >>>>>      >>>>>>>> Update *query using jena with eclipse on the jena
> website.
> >>>>>      >>>>>>>>> If Jena indeed supports doing what I intend to do then
> >>>>>      can someone
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>>> point
> >>>>>      >>>>>> out some sources to guide me in my attempt?
> >>>>>      >>>>>>>>> Best Regards,
> >>>>>      >>>>>>>>> Aya
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>>> Calculate the average in a nested select so somethign
> >>>>>      like (you'll
> >>>>>      >>>>>>>>>
> >>>>>      >>>>>>>> have
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>>> to
> >>>>>      >>>>>> fix this up):
> >>>>>      >>>>>>>> INSERT {
> >>>>>      >>>>>>>>        <instance> :avgSpeed ?avg
> >>>>>      >>>>>>>>      }
> >>>>>      >>>>>>>> WHERE {
> >>>>>      >>>>>>>>      SELECT (AVG(?speed) AS ?avg) {
> >>>>>      >>>>>>>>          ?v rdf:type :Vehicle ;
> >>>>>      >>>>>>>>             :vehicleSpeed ?speed
> >>>>>      >>>>>>>>      }
> >>>>>      >>>>>>>> }
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>>> By the way - it is better to more concrete in your
> >>>>>      description -
> >>>>>      >>>>>>>> actual
> >>>>>      >>>>>>>> data for example.
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>>>
> >>>>>      >>>>>>
> >>>>>
> >>>>>
> >>>>>
>
>

Reply via email to