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]> 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/
> 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/
> 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/
> 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/
> 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]> 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