Query about users

4.1 Query about users

Queries concerning user’s personal information, calendar, list of friends and list of activities have remained the same so we focus on the queries that were affected by the changes in the ontology.

For analysing the users’ intent, we need access to information like the activities where a bus ride on a particular bus line was involved. Especially for the case where we want to discover whether two users have been on the same bus, we can ask for activities with a particular bus line and via a particular step. A step in this case corresponds to the route between two consecutive bus stops (given by the URIs of the start and end locations). In both cases, we can narrow the search to a time interval. These queries are shown below.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?activity

WHERE ?x foaf:nick "userid" . ?activity a :Journey ; prov:wasAssociatedWith ?x ; :compactStep ?step. ?step:TravelMode ?busride. ?busride a :BusRide ;:serviceBus ?bus . ?bus:busLine <buslineURI> .

Figure 17 – Query: Activities involving a given bus line for a given user

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?activity WHERE ?x foaf:nick "userid" . ?activity a :Journey ; prov:wasAssociatedWith ?x ; :compactStep ?step. ?step:TravelMode ?busride. ?busride a :BusRide ;:serviceBus ?bus . ?bus:busLine <buslineURI> . ?activity prov:startedAtTime ?starttime ; prov:endedAtTime ?endtime . FILTER (?endtime < "2012-04-03T00:00:00Z"^^xsd:dateTime) . FILTER (?starttime > "2012-04-02T00:00:00Z"^^xsd:dateTime) .

Figure 18 – Query: Activities involving a given bus line for a given user, within a specific time interval

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?busride WHERE ?x foaf:nick "userid" . ?activity a :Journey ; prov:wasAssociatedWith ?x ; :singleStep ?step. ?step :startLocation <startLocURI> ;:endLocation <endLocURI> ;:travelMode ?busride. ?busride a :BusRide ;:serviceBus ?bus . ?bus:busLine <buslineURI> .

Figure 19 – Query: Bus rides on a given bus line for a given segment

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?busride

WHERE ?x foaf:nick "userid" . ?activity a :Journey ; prov:wasAssociatedWith ?x ; :singleStep ?step. ?step :startLocation <startLocURI> ;:endLocation <endLocURI> ;:travelMode ?busride. ?busride a :BusRide ;:serviceBus ?bus . ?bus gbs:busLine <buslineURI> . ?activity prov:startedAtTime ?starttime ; prov:endedAtTime ?endtime .FILTER (?endtime < "2012-04-

03T00:00:00Z"^^xsd:dateTime) . FILTER (?starttime > "2012-04-02T00:00:00Z"^^xsd:dateTime) .

Figure 20 – Query: Bus rides on a given bus line for a given segment, within a time interval

The examples show that our ontology is flexible whether you are looking for a journey specified by start and location or other properties, such as the bus line taken. The travelMode property allows us to filter out activities where a bus was not involved.

For the user intention mining its important to analyse the historical information associated with buses. The query below retrieves all recorded bus traces of a user in a given bus.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?step

WHERE ?x foaf:nick "userid" ; :pastActs ?acts. ?acts :act ?journey ; :compactStep ?step. ?step :travelMode a :BusRide .

Figure 21 – Query: Historical bus traces of a user

Note that we can use the compact representation of the journey to retrieve the full segment of the user in a bus, rather than the individual steps.

In the environmental domain we can look for journeys in which some of the steps had a CO2 level above a given threshold.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?journey

WHERE ?x foaf:nick "userid" . ?activity a :Journey ; prov:wasAssociatedWith ?x ; :singleStep ?step. ?step :startLocation ?startLoc ;:endLocation ?endLoc. ?startLoc gbs:co2Level ?startco2. ?endLoc gbs:co2Level ?endco2 OR{?startco2 > <threshold>. ?endco2 > <threshold>} .

Figure 22 – Query: Journeys which involved areas with a CO2 level above a threshold

For the above query we need to retrieve all the start and end locations and check for their CO2 levels. We iterate over every single step on the journey to make sure we retrieve all locations visited in that journey.

Another interested query is to retrieve a list of users who had gone jogging with a particular user. This could be used, for instance, to indicate a strong friendship level between the two users.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?user

WHERE ?x foaf:nick "userid" . ?activity a :Jogging ; prov:wasAssociatedWith ?x ; :runWith ?user.

Figure 23 – Query: Users who had gone jogging with a particular user

The query below let us retrieve the set of products bought by the user.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX gr: http://purl.org/goodrelations/v1 PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?product WHERE ?x foaf:nick "userid" . ?activity a :Shopping ; prov:wasAssociatedWith ?x ; :bought ?product.

Figure 24 – Query: Products bought by the user.

To ensure privacy, each user can set permissions to different data that is being monitored. This will determine who can access a particular information type. For example, the query below returns the list of users who can access location information of a particular user.

PREFIX : http://www.gambas-ict.eu/ont/ PREFIX ppo: http://vocab.deri.ie/ppo# SELECT ?user

WHERE ?x foaf:nick "userid" ; :settings ?set . ?set a ppo:PrivacyPreference; :ppohasCondition ?cond. ?cond ppo:classAsObject :Place. ?set ppo:hasAccessSpace ?spc. ?spc ppo:hasAccessAgent ?user.

Figure 25 – Query: Users which can access location information

As we mentioned earlier, this deliverable extends the query set by showing queries that involve dynamic information. For that we use the CQLES query language that resembles SPARQL. The main difference is the introduction of the STREAM command that allows us to specify a window of data within the stream. The query below retrieves the current location of a user.

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?location WHERE ?x foaf:nick "userid" . STREAM <streamURI> [NOW] {?x :location ?location}.

Figure 26 – Query: Latest location of a user.

In all query examples in this deliverable <streamURI> refers to the URI from where the stream with the data in question can be accessed. The parameter [NOW] extracts the latest location streamed. CQELS is a very flexible language, allowing an easy integration of static and dynamic data. For example, for suggesting bus stops near the user, we can write the following query:

PREFIX foaf: http://ns.com/foaf/0.1/ PREFIX prov: http://www.w3.org/ns/prov# PREFIX spt: http:// spitfire-project.eu/ontology/ns/ PREFIX : http://www.gambas-ict.eu/ont/ SELECT ?nearby

WHERE ?x foaf:nick "userid" . STREAM <streamURI> [NOW] {?x :location ?location}. ?nearby a :BusStop ; spt:nearby ?location.

Figure 27 – Query: Bus stops next to the location of a user.

CQELS queries are continuous queries, which means they are registered in the system and whenever new data is generated in the stream, the query is evaluated and results are pushed to the output. In this query, we can imagine a scenario of a user walking around and getting notifications of nearby bus stops as he changes location.

Dokumen yang terkait

Perencanaan Proses Pembuatan Cetakan Casing Handphone Nokia Type 3330 Melalui Program Mastercam V.9 dengan Menggunakan Mesin Frais CNC

0 11 1

Perancangan Pompa Hidram Type Double Waste Valve Dengan Head Pompa 20 m

1 22 1

Faktor yang Berhubungan dengan Tingkat Kecemasan Penderita Diabetes Mellitus Tipe 2 di Rumah Sakit Nusantara Medika Utama (Factors Associated With Anxiety Type 2 Diabetes Mellitus Patients at Nusantara Medika Utama Hospital )

0 3 7

Hubungan Tingkat Kecemasan pada Pasien Multigravida dalam Persalinan Normal dengan Lama Persalinan di RSD dr.Soebandi Kabupaten Jember (The Relationship between Anxiety Level in Multigravida on Facing Normal Delivery and Length of Delivery at dr.Soebandi

2 46 4

The Ways In Which Information Given Related To The Type Of Visitor (A Description on Guiding Technique at the Room of History of Life in Bandung Museum of Geology)

0 16 48

Cover kaset Actual

0 3 24

PENGARUH ARUS PENGELASAN TERHADAP KEKUATAN TARIK PADA PENGELASAN BIMETAL (STAINLESS STEEL A 240 Type 304 DAN CARBON STEEL A 516 Grade 70) DENGAN ELEKTRODA E 309-16

10 133 86

Analisis Pengaruh Pengumuman Dividen Terhadap Harga Saham Disekitar Tanggal Ex-Dividen Date

0 8 56

Efek Pemberian Asam Alfa Lipoat terhadap Kadar MDA dan Gambaran Histologi pada Hati Tikus Model Diabetes Melitus Tipe 1 Effect of Alpha Lipoic Acid Administration on MDA Levelsa and Liver Histology of Type 1 Diabetes Mellitus Mice Model

0 0 7

Efek Asam Alfa Lipoat pada Kadar MDA dan Histologi Ginjal Tikus Wistar Diabetes Melitus Tipe1 Effect of Alpha Lipoic Acid on MDA Levels and Histology of Wistar Rats' Kidney Type 1 Diabetes Mellitus

0 0 5