- 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