- From: Daniele Dell'Aglio <daniele.dellaglio@polimi.it>
- Date: Thu, 27 Nov 2014 12:56:04 +0000
- To: Wetz Peter <peter.wetz@tuwien.ac.at>
- Cc: "Gray, Alasdair" <A.J.G.Gray@hw.ac.uk>, Emanuele Della Valle <emanuele.dellavalle@polimi.it>, "public-rsp@w3.org" <public-rsp@w3.org>
- Message-ID: <CA+FunMuFW5QDtDFSRbQCJrOq6s94LuWZurphixnvRvAhQve64Q@mail.gmail.com>
Hi Peter, the STARQL paper [1], under review at the SWJ, propose a very nice example of query with a window inside another window in Section 4. They get that query from a real case scenario, and in few words, the idea is that there is a large window where they check if three constraints are satisfied. One of those constraints is the existence of a subwindow where a monotonic trend holds. Btw, it would be interesting to discover if our syntax can capture that query :) Regards, Daniele [1] http://www.semantic-web-journal.net/content/semantics-stream-query-languages-using-ontologies 2014-11-27 12:35 GMT+00:00 Wetz Peter <peter.wetz@tuwien.ac.at>: > regarding the “windows of windows” question: Is there an actual use case > for that? Because why not just define the window you want to end up with in > the first place? > > > > Please note: I added some comments to Emanuele’s query. However, I can’t > attend today’s call. Still, I’d be happy if you could address my comments. > > > > Best, > > Peter > > > > *Von:* dani.dellaglio@gmail.com [mailto:dani.dellaglio@gmail.com] *Im > Auftrag von *Daniele Dell'Aglio > *Gesendet:* Donnerstag, 27. November 2014 13:15 > *An:* Gray, Alasdair > *Cc:* Emanuele Della Valle; public-rsp@w3.org > *Betreff:* Re: example of RSP-QL query to kick-off the RSP-QL syntax > discussion > > > > Hi Alasdair, > > Interesting pont. I don't have an answer to this specific question, but > please consider it is possible to obtain the same result with two separate > queries: > - one that creates a DStream :s1d on :s1 (to create a delay) > > - one with a window of size 1h and slide 5 mins on :s1d > > > > Talking about window, I have another question: if windows do not remove > timestamps from the data items, it would be possible to declare windows > over other windows... Is it something that our language would allow? > > Regards, > > Daniele > > > > 2014-11-27 12:04 GMT+00:00 Gray, Alasdair <A.J.G.Gray@hw.ac.uk>: > > Hi > > > > Is it possible to have windows that are entirely in the past? For example > to compare with yesterday’s values we would need something like > > > > FROM NAMED STREAM s:1 [FROM NOW - 25 HOURS TO NOW - 24 HOURS STEP PT5M] AS :yesterdayOneHourWindow > > This is borrowing syntax from SPARQLStream. > > > > Alasdair > > > > On 14 Nov 2014, at 20:18, Emanuele Della Valle < > emanuele.dellavalle@polimi.it> wrote: > > > > Hi all, > > > > as promised during today phone-call, I prepared an example of RSP-QL query > to kick-off the RSP-QL syntax discussion. > > > > Please find it here: > https://www.w3.org/community/rsp/wiki/Example_of_RSP-QL_query > > > > I’m also putting it hereafter just in case you want to directly comment it. > > > > Cheers, > > > > Emanuele > > > > ——8—— > > > > This query continuously look for bars where people are falling in love > like Paolo and Francesca in Dante's Divine Comedy > <http://en.wikipedia.org/wiki/Francesca_da_Rimini#In_Inferno> because of > a book by Gallehault <http://en.wikipedia.org/wiki/Galehaut>. > > PREFIX e: <http://somevocabulary.org/> > > PREFIX s: <http://someinvasivesensornetwork.org/streams# <http://someinvasivesensornetwork.org/streams>> > > PREFIX g: <http://somesocialnetwork.org/graphs# <http://somesocialnetwork.org/graphs>> > > PREFIX : <http://acrasycompany.org/rsp> > > REGISTER STREAM :GallehaultWasTheBar > > UNDER ENTAILMENT REGIME <http://www.w3.org/ns/entailment/RIF> > > AS > > FROM STREAM s:1 > > FROM NAMED STREAM s:1 [RANGE PT1H STEP PT5M] AS :longWindow > > FROM NAMED STREAM s:1 [RANGE PT10M STEP PT5M] AS :shortWindow > > FROM NAMED GRAPH g:SocialGraph > > FROM GRAPH g:POIs > > CONSTRUCT ISTREAM { > > ?poi rdf:type :Gallehault ; > > :count ?howmanycouples ; > > :for (?somebody ?someoneelse) > > } > > WHERE { > > ?poi rdf:type e:bar . > > STREAM s:1 { > > { ?somebody e:enters ?poi } > > SEQ > > { ?someoneelse ex:enters ?poi } WITHIN PT4H > > } > > WINDOW :longWindow { > > { ?somebody e:isCloseTo ?someoneelse > > MINUS { ?somebody e:sitsWith ?yetanotherone . FILTER (?yetanotherone != ?someoneelse) } > > } WITH DURATION ?longtime > > FILTER (?longtime>"PT30M"^^xsd:duration) > > } > > WINDOW :shortWindow { > > { ?somebody e:exits ?bar} AT ?t1 > > { ?someoneelse e:exits ?bar } AT ?t2 > > FILTER (abs(?t2-?t1)<"PT1M"^^xsd:duration ) > > } > > GRAPH g:1 { > > FILTER NOT EXIST { ?somebody e:knows ?someoneelse } > > } > > FILTER (?somebody != ?someoneelse) > > } > > AGGREGATE { > > GROUP BY ?bar > > COUNT(?somebody) AS ?howmanycouples > > } > > The query checks : > > - over the default graph containing the points of interest (POIs) of > http://somesocialnetwork.org/ that the POI is a bar. > - over the entire stream from http://someinvasivesensornetwork.org, > that pairs of people entered in the poi in different moments within 4 > hours. > - over the same stream, with a long lasting time window of 1 hour, > that pairs of those people have been staying close by for at least 30 > minutes. Note: that this may require some resoning being the property > isCloseBy symmetric. > - over the same stream but with a short time window of 10 minutes, > that the same pairs exit together. > > As output, for each bar, it streams out an RDF graph with the list of > pairs and the total number of pairs that felt in love at each query > evaluation. > > Note that this example query covers features of C-SPARQL, CQELS, > SPARQL-Stream, EP-SPARQL as well as new features missing in all RSP > languages: > > - From C-SPARQL it takes the REGISTER clause, the FROM STREAM clause > as dataset clause, the AT clause to access the timestamp (in C-SPARQL, AT > is implemented with the timestamp() function) and the aggregates (which are > computed in parallel without shrinking the result set, but extending it). > - From CQELS it takes the idea of the STREAM keyword in the WHERE > clause. > - From SPARQL-Stream it takes the ISTREAM clasue that ask the RSP > engine to use the R2S operator. > - From EP-SPARQL, it takes the SEQ and the WITH DURATION clauses (in > EP-SPARQL, WITHIN DURATION is implemented with the getDuration() function). > > The new features are: > > - the usage of an IRI tuo identify the query (and its stream of > results) > - the optional UNDER ENTAILMENT REGIME clause > - the FROM NAMED STREAM <<stream iri>> <<window>> AS << window name>> > clause in the dataset declaration > - the WINDOW keyword in the WHERE clause > > > > -- > > Emanuele Della Valle > DEIB - Politecnico di Milano > w. http://emanueledellavalle.org > > > > > > Alasdair J G Gray > > Lecturer in Computer Science, Heriot-Watt University, UK. > > Email: A.J.G.Gray@hw.ac.uk > > Web: http://www.alasdairjggray.co.uk > > ORCID: http://orcid.org/0000-0002-5711-4872 > > Telephone: +44 131 451 3429 > > Twitter: @gray_alasdair > > > > > > > > > > > > > > > We invite research leaders and ambitious early career researchers to join > us in leading and driving research in key inter-disciplinary themes. Please > see www.hw.ac.uk/researchleaders for further information and how to > apply. > > Heriot-Watt University is a Scottish charity registered under charity > number SC000278. > > >
Received on Thursday, 27 November 2014 12:56:32 UTC