discovering exis7ng systems c sparql
play

Discovering Exis7ng Systems:c-sparql G. Cugola E. Della - PowerPoint PPT Presentation

Stream and Complex Event Processing Discovering Exis7ng Systems:c-sparql G. Cugola E. Della Valle A. Margara Politecnico


  1. Stream ¡and ¡Complex ¡Event ¡Processing ¡ Discovering ¡Exis7ng ¡Systems:c-­‑sparql ¡ G. ¡Cugola ¡ ¡ ¡ ¡E. ¡Della ¡Valle ¡ ¡ ¡ ¡A. ¡Margara ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Politecnico ¡di ¡Milano ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Vrije ¡Universiteit ¡Amsterdam ¡ cugola@elet.polimi.it a.margara@vu.nl dellavalle@elet.polimi.it

  2. Agenda • Introduction • RDF Stream Analysis • Running example • C-SPARQL language • Query and Stream Registration • FROM STREAM Clause • TimeStamp Function • Accessing background Information • Resources Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 2 ¡

  3. Introduc7on ¡ C-­‑SPARQL ¡Engine ¡Architecture ¡ • Simple, ¡modular ¡ architecture ¡ • It ¡relies ¡en7rely ¡on ¡ exis7ng ¡technologies ¡ ¡ • Integra7on ¡of ¡ ¡ • DSMSs ¡(Esper) ¡and ¡ ¡ • SPARQL ¡engines ¡ (Jena-­‑ARQ) ¡ ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 3 ¡

  4. Introduc7on ¡ C-­‑SPARQL ¡Engine ¡Features ¡at ¡a ¡glance ¡ ¡ ¡ ¡ ¡1/2 ¡ ¡ • Efficient ¡RDF ¡stream ¡Processing ¡ ¡ • Con7nuous ¡queries, ¡filtering, ¡aggrega7ons, ¡joins, ¡sub-­‑ queries ¡via ¡C-­‑SPARQL ¡(a ¡SPARQL ¡1.1 ¡extension) ¡ • Push ¡based ¡ • High ¡throughput, ¡low ¡latency ¡ • Minimal ¡support ¡for ¡paYern ¡detec7on ¡via ¡ !mestamp ¡ func7on ¡ • Minimal ¡support ¡for ¡"sta7c" ¡RDF ¡graph ¡access ¡(a.k.a., ¡ background ¡informa7on) ¡ • Alert! ¡using ¡7mestamp ¡func7on ¡and ¡combining ¡with ¡ "sta7c" ¡RDF ¡graphs ¡spoil ¡performances ¡ ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 4 ¡

  5. Introduc7on ¡ C-­‑SPARQL ¡Engine ¡Features ¡at ¡a ¡glance ¡ ¡ ¡ ¡ ¡2/2 ¡ ¡ • Extensible ¡Middleware ¡ ¡ • Run7me ¡management ¡of ¡ • RDF ¡streams ¡ • C-­‑SPARQL ¡query ¡ • Result ¡listerners ¡ • API ¡driven ¡ ¡ • Web ¡APIs ¡for ¡data ¡flow ¡management ¡and ¡service ¡ layer ¡ ¡ • Quick ¡start ¡available ¡ • hYp://streamreasoning.org/download ¡ ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 5 ¡

  6. Introduc7on ¡ C-­‑SPARQL ¡Engine ¡abstrac7ons ¡ • CsparqlEngine ¡( eu.larkc.csparql.engine.CsparqlEngine ) ¡ • Contains ¡a ¡stream ¡and ¡a ¡query ¡registry ¡ • RDF ¡Stream ¡( eu.larkc.csparql.cep.api.RdfStream ) ¡ • A ¡stream ¡of ¡Timestamped ¡Triples ¡ (eu.larkc.csparql.cep.api.RdfQuadruple) ¡ • C-­‑SPARQL ¡Queries ¡( eu.larkc.csparql.streams.formats.CSparqlQuery ) ¡ • Con7nuously ¡executed ¡against ¡one ¡or ¡more ¡RDF ¡Stream ¡ • May ¡refer ¡to ¡"sta7c" ¡RDF ¡graphs ¡ • Can ¡be ¡started/stopped ¡ • Result ¡Proxy ¡( eu.larkc.csparql.engine.CsparqlQueryResultProxy ) ¡ • Allows ¡mul7ple ¡clients ¡to ¡observe ¡the ¡results ¡of ¡C-­‑SPARQL ¡queries ¡ • Result ¡FormaYer ¡( eu.larkc.csparql.core.ResultFormaYer ) ¡ • Allows ¡to ¡process ¡the ¡results ¡of ¡a ¡query ¡(RDFTable) ¡a ¡row ¡ (RDFTuble) ¡at ¡a ¡7me ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 6 ¡

  7. Introduc7on ¡ Combining ¡C-­‑SPARQL ¡Engine ¡abstrac7ons ¡ • The ¡C-­‑SPARQL ¡Engine ¡processing ¡model ¡is ¡con7nuous ¡ • RDF ¡Streams, ¡C-­‑SPARQL ¡queries, ¡result ¡proxies ¡and ¡ result ¡formaYers ¡are ¡manually ¡connected ¡to ¡form ¡ graphs ¡ RDF ¡ Result ¡ Stream ¡ FormaYer ¡ Result ¡ C-­‑SPARQL ¡ Proxy ¡ query ¡ RDF ¡ Result ¡ Stream ¡ FormaYer ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 7 ¡

  8. Introduc7on ¡ Combining ¡C-­‑SPARQL ¡Engine ¡abstrac7ons: ¡ ¡code ¡ CsparqlEngine ¡engine ¡= ¡new ¡CsparqlEngineImpl(); ¡ engine.ini7alize(true); ¡ engine.registerStream(<<RDF ¡Stream>>); ¡ CsparqlQueryResultProxy ¡c ¡= ¡engine.registerQuery(<<query>>); ¡ c1.addObserver(<<formaYer>>); ¡ ¡ …. ¡ ¡ engine.unregisterQuery(c.getId()); ¡ ¡ engine.unregisterStream(<<RDF ¡Stream ¡IRI>>); ¡ ¡ ¡ See ¡also ¡ HelloWorldCSPARQL.java ¡in ¡the ¡C-­‑SPARQL ¡ready ¡to ¡go ¡pack ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 8 ¡

  9. Introduc7on ¡ Chaining ¡C-­‑SPARQL ¡queries ¡ • A ¡special ¡result ¡formaYers ¡(RDFStreamFormaYer) ¡can ¡ inject ¡the ¡results ¡of ¡C-­‑SPARQL ¡queries, ¡whose ¡form ¡is ¡ STREAM, ¡into ¡another ¡RDF ¡streams. ¡ RDFStreamFormaYer ¡ • MEMO: ¡RDF ¡streams ¡are ¡not ¡typed ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 9 ¡

  10. Introduc7on ¡ Chaining ¡C-­‑SPARQL ¡queries: ¡code ¡ CsparqlEngine ¡engine ¡= ¡new ¡CsparqlEngineImpl(); ¡ engine.ini7alize(true); ¡ engine.registerStream( <<RDFstream1>> ); ¡ RdfStream ¡s2; ¡ s2 ¡= ¡new ¡RDFStreamForma5er( <<RDFstream2>> ); ¡ engine.registerStream(s2); ¡ CsparqlQueryResultProxy ¡c1; ¡ CsparqlQueryResultProxy ¡c2; ¡ c1 ¡= ¡engine.registerQuery( <<query ¡on ¡RDFstream1>> ); ¡ c1.addObserver((RDFStreamForma5er) ¡s2); ¡ c2 ¡= ¡engine.registerQuery( <<query ¡Down ¡Stream>> ); ¡ c2.addObserver( <<forma9er>> ); ¡ ¡ See ¡also ¡ the ¡ COMPOSABILITY ¡case ¡in ¡HelloWorldCSPARQL.java ¡in ¡the ¡C-­‑SPARQL ¡ ready ¡to ¡go ¡pack ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 10 ¡

  11. RDF ¡Stream ¡Analysis ¡ Running ¡Example ¡ following ¡ TwiYerUser ¡ sr:screenName(xsd:string) ¡ posts ¡ likes ¡ Tweet ¡ sr:messageID(xsd:string) ¡ sr:messageTimeStamp(xsd:string) ¡ talksAbout ¡ talksAboutPosi7vely ¡ Topic ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 11 ¡

  12. RDF ¡Stream ¡Analysis ¡ Streaming ¡vs. ¡Background ¡Informa7on ¡ User related background information following & TwiBerUser& sr:screenName(xsd:string)& posts& likes& Tweet& sr:messageID(xsd:string)& sr:messageTimeStamp(xsd:string)& Streaming talksAbout & talksAboutPosi>vely& information Topic& Topic related background information

  13. RDF ¡Stream ¡Analysis ¡ Background ¡Informa7on ¡-­‑ ¡example ¡ • User related background information, e.g. :Alice a :TwitterUser . :Bob a :TwitterUser . :Bob :follows :Alice . • See also hYp://streamreasoning.org/larkc/csparql/LBSMA-­‑sta7c-­‑k.rdf ¡ Which is used in the STREAMING_AND_EXTERNAL_STATIC_RDF_GRAPH case of HelloWorldCSPARQL.java in the C-SPARQL ready to go pack Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 13 ¡

  14. RDF ¡Stream ¡Analysis ¡ Streaming ¡Informa7on • RDF Stream Data Type • Ordered sequence of pairs, where each pair is made of an RDF triple and its timestamp ¡ § Timestamps ¡are ¡not ¡required ¡to ¡be ¡unique, ¡they ¡must ¡be ¡non-­‑ decreasing • E.g., (<:Alice :posts :post1 >, 2010-02-12T13:34:41) (<:post1 :talksAboutPositively :LaScala>, 2010-02-12T13:34:41) (<:Bob :posts :post2 >, 2010-02-12T13:36:28) (<:post2 :talksAboutPositively :Duomo>, 2010-02-12T13:36:28) • See also • LBSMARDFStreamTestGenerator.java in the ready to go pack Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 14 ¡

  15. RDF ¡Stream ¡Analysis ¡ C-­‑SPARQL ¡language ¡ • C-­‑SPARQL ¡queries ¡ • derive ¡and ¡aggregate ¡informa7on ¡from ¡one ¡or ¡ more ¡RDF ¡streams ¡ ¡ • to ¡join ¡or ¡merge ¡RDF ¡streams ¡ ¡ • can ¡access ¡"sta7c" ¡RDF ¡graphs ¡and ¡ ¡ • to ¡feed ¡results ¡from ¡one ¡RDF ¡stream ¡to ¡ subsequent ¡C-­‑SPARQL ¡query ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 15 ¡

  16. RDF ¡Stream ¡Analysis ¡ MEMO: ¡SPARQL ¡ Stream ¡& ¡Complex ¡Event ¡Processing ¡-­‑ ¡Introduc7on ¡ 16 ¡

  17. RDF ¡Stream ¡Analysis ¡ Where ¡C-­‑SPARQL ¡Extends ¡SPARQL ¡ 17 ¡

Recommend


More recommend