introduction, stepfortheworldwideweb, wherenotonlydocuments, butdataaswellarelinkedtogether, insemanticwebnotonlydocumentsbutdataitselfisinterconnectedandinaformatthatis, machinereadable, thiswayapplicationscanmakeinferencesandchoicesthemselvesbasedon, datatheyreceive, althoughslowatfirst, theadoptionofsemanticwebtechnologieshasacceleratedinrecent, accordingtoschema, org, whosemissionistocreate, maintain, andpromoteschemasfor, structureddataontheinternet, messages, manybigcompaniessuchaswikipediaandfacebookexposetheirdataina, structuredform, butinrealworldapplicationsdatacanalsotaketheformofastreamwheredataisinfinitely, generatedinbigquantitiesandtheylosetheirusefulnessfast, suchisthecaseforsoftrealtime, systemswhereincominginfohastobeprocessedswiftlyforthesystemtorunoptimally, fieldoflinkeddatastreamsisstillevolvinganditstechnologieshavenotbeenadoptedyetin, commercialapplications, theaimofthisthesisistocreateaproofofconceptimplementationforfilteringrealtimelinked, datainarealworldapplicationusingc, continuoussparql, representational, statetransfer, messageorientedmiddleware, technologies, wealsorundifferenttestsonthecsparqlenginetomeasureitsperformanceunderdifferent, loadsusingamodifiedversionofcitybenchbenchmark, testparametersandquerieswere, chosentomatchthecharacteristicsofinforegisternow, mobileapplication, theapplication, usesalinkedstreamapi, applicationprogramminginterface, toleveragedataforrealtime, decisionmaking, therestofthepaperisstructuredasfollows, technologiesatthecoreofthissolutionwhoseknowledgeisneededtounderstandtherestofthis, technologiesusedandinthesecondpartdetaileddescriptionsofproofofconceptsisgivenin, concludesthethesisanddiscussespossibilitiesoffuturework, background, thissocalledlinkeddataismadepossiblebyacommondatapresentationlanguagerdf, resourcedescriptionframework, intheworldwidewebdocumentsofdata, webpages, arelinkedtogetherandidentifiedbyurls, uniformresourcelocator, inrdfthisideais, takenfurtherbygivingsimilaridentifierstodataitselfcalleduris, uniformresource, identifier, whichisasupersetofurl, inrdfdataisgroupedtogetherinto, subjectpredicateobjecttriplescalledstatements, wheresubjectisthedescribedresource, predicateisresourcespropertybeingdescribedandobjectisthepropertysvalue, allthree, partsofthesetriplesareusuallyrepresentedbyuris, althoughobjectorthevaluecanalsobea, constantvaluecalledaliteral, thiswayobjectsandpredicatesinonestatementcanbeasubject, inanotherformingadirectedgraphwheredataislinkedtogetherandbothdataitselfand, relationshipsbetweendataareidentifiedanddescribed, rdfhasseveralwellknownserializationformatslikerdf, turtleand, representedinformatwithfictionaluris, samplegraph, http, www, example, personhomeaddress, personage, personname, juku, addresscity, ex, tallinn, addressstreet, koolipingi, addresscountry, estonia, capital, samplegraphinformat, sparqlprotocolandrdfquerylanguage, issimilartootherquerylanguageslike, sqlinwaythatitalsohassameoperationslikeselect, groupbyetc, butinsteadofqueryingoverrelationaldataindatabasetables, itworksonrdf, datastores, itusespatternmatchingtofindtriples, inthewhereclauseoneormorepartsof, thesubjectpredicateobjecttriplesisreplacedbyavariable, alltriplesarefound, thatmatchto, theconcretetripleparts, andtherestofthepartsareboundtothecorrespondingvariablesas, values, inplainenglishthiscouldmean, findallthe, streetsintallinn, whereapersonnamedjukulives, ifthis, address, samplequeryandasampleresult, representationalstatetransfer, isasoftwarearchitecturestylethatimposescertain, constraintsonasystem, whenappliedcorrectly, theseconstraintshelpachievedesired, nonfunctionalrequirementslikescalabilityandmodifiability, whichhelpthesoftwarework, oneofthemorenotableconstraintsisuniforminterface, whichsimplifiesanddecouples, differentsystemcomponents, sothattheycanbedevelopedseparately, restfulwebservices, accomplishthisbyhavinganapiwhichexposesresourcesthroughuris, standardhttp, methodsget, postanddeletearecalledagainstthisurisforretrieve, create, changeanddeleteoperations, theclientmakingthehttprequestsandtheserverneverpassthe, resourceitselftoeachother, butitsrepresentationalstate, whichisinauniformlyagreedupon, formatlikeor, anothertrendinwebapplicationsistheadoptionofmessageorientedmiddlewares, messagebroker, momisasoftwareorhardwareusedinmodularanddistributed, systems, thatmediatescommunicationbetweenothercomponents, thisallowsforloosely, coupledeasilyscalablesystems, sender, publisherorproducer, doesnotneedtoknow, aboutthelocationornatureofthereceivers, consumers, andvicaversa, bothnew, receiversandsenderscanbeaddedwithlittleeffort, messageorientedmiddlewarealsoprovide, aninterfaceforadministration, whichenablesmonitoringandtuningthemessaging, areusuallysentasynchronously, aftersendingallthemessagesthesendercancontinuewith, otheractivitieswhilethemessageswaitinthemiddlewaresqueuesforreceiverstoconsumethus, removingthedelayofwaitingfortheresponseforthesender, simplifiedarchitectureofasystemwithmessageorientedmiddleware, relatedwork, althoughthefieldofrdfstreamprocessing, isstillrelativelyyoung, severalother, solutionshavebeenproposed, cqelsisanotherrspengine, thatusesanativeapproachinstead, delegatingtheprocessingtoothersystems, complexeventsfromastreamofatomiceventscombinedwithstaticbackgroundknowledge, usesanotherextensionofsparqlcalledep, eventprocessingsparql, moresparqlextensioncalledsparqlstreamaimstoprovideontologybasedaccessto, relationaldatabytransformingsparqlstreamssparqllikequeriesintocontinuousquery, languagesneeqlandlatertransformingtheresultsintordftriples, fordoingcontinuouspatternmatchingoverrdfstreamsusingpatternmatchingalgorithm, calledrete, algorithm, fortheserspenginesseveralbenchmarkshavealsobeendeveloped, thefirsttwobenchmark, forlinkeddatastreamenginesthatemergedweresrbenchandlsbench, srbenchtestedthe, outputelements, performanceandscalabilitytests, srbenchthatconcentratedonthecorrectnessoftheresultsofthequeries, resultsarelessrelevantastheengines, theytested, arebeingdevelopedconsistently, inthat, regardcitybenchandyabencharenewerbenchmarksthatbuilduponthepreviousones, yabenchaimstocombineandextendprevioussrbench, lsbenchandcsrbench, benchmarks, itisnotsuitedtoruntestswithmultiple, queries, whichisoneofourrequirements, consideringcsparqlisstillineachearlierstagesofdevelopment, ithasnotfoundmuchuse, yetinnonacademicapplications, onesuchisapartofaprojectcalledmodaclouds, modeldrivenapproachofdesignandexecutionofapplicationsonmultipleclouds, oneofthis, projectsdeliverablesisaruntimeenvironmentformulticloudapplications, oneofits, componentsisamonitoringplatform, thedatabeingmonitoredisinrdfformatand, sparqlengineisusedtofilteritfordatavisualizationordetectontheflypatternstomake, changestothesystemforbetterqualityofservice, thecsparqlenginesrestfulinterfaceis, alsoused, wavesisaprojectwhoseobjectiveistodeployarealtimesemanticstreammanagement, platformforsmarturbantechnologies, oneofitsmaincomponentsisareasoningsystemfor, rdfstreams, forthattheyhaverunsomeexperimentsoncqelsandcsparqlengines, measuringexecutiontimeandmemoryconsumptionwithdifferentrdftriplerates, numberofstreamsandstaticdatasize, volumesofalreadystoreddata, thissolutiondoesnotworkwithrdfstreams, butinsteadlarge, quantitiesofstaticdata, theyranexperimentsontheirenginetomeasurequeryperformance, implementation, inthefirstpartofthissectionweexplaineachcomponentseparatelyandinthesecondpartwe, presenttwoproofofconceptswheretheyarecombinedintoacohesivesystem, continuous, isanextensionofsparql, itenablesrunningsparql, queriescontinuouslyonrdfstreams, itachievesthisbyaddingatimestamptordftriples, whentheyareaddedtothestreamcreatinganewdatastructureforrdfstreams, anorderedlist, oftripletimestamppairs, thewindowclauseinthisquerylanguagemakesitpossibletofilter, andcomputeresultsonspecificsubsetofthestreamafterregulartimeintervals, ithastwoparts, arangeandastep, therangeisthesizeofthewindowandstepisafrequencyofexecutionfor, thequery, alsoaddsafromstreamkeywordforidentifyingthestreamsofrdftriples, anexampleof, thisqueryfindseveryorganizationwhereaperson, examplequery, testmemberships, graph, ir, ee, organizations, orghasmember, queryexample, sparqlalsoallowshavingmultiplefromstreamclausesforqueryingoverseveral, streamsatonce, addingstaticrdfstoresasasourceisalsopossiblewithafromkeyword, followedbyurltoardfgraph, atimestampfunctioncanbeusedtogetthetimestampofa, streamelemente, tofindoutwhichtriplearrivedfirst, theresultsofastreamcanbeasetof, bindingsincaseofaregisterqueryandselectkeywords, butalsoanewstream, registerstreamandconstructkeywordsareusedinstead, inthiscasethenew, streamcanalsobeaninputtoanotherquery, sparqlengineisardfstreamprocessingtoolwritteninjava, itletsusersregisterstreams, queriesandobservers, streamobjectsarelogicalrepresentationsofthelinkeddatastreams, whichcanbefeedwithrdftriples, queriesarecsparqlqueries, whichareregisteredtorun, ononeormorestreams, observersareregisteredonthequeriestoobservetheresultscomputed, bythequeries, theenginehastwomaincomponentsadatastreammanagementsystem, forthe, streamrelatedpartsofthequeryandsparqlreasonerforthestaticpart, asnewdatacomes, intotheengine, thedsmspartitionsitaccordingtothewindowclauseandgivesthepartstothe, sparqlreasoner, thereasonerrunsthestaticpartofthecsparqlqueryonthedataand, returnstheresultsbacktothedsmswhichoutputsanewstreamofrelationaldataorrdfdata, dependingonthekeywordatthebeginningofthequery, usedimplementationisesperandthereasonerisjena, sparqlrestfulinterfaceexposescsparqlenginesstream, queryandobserver, operationswitharestapi, interface, illustrationofenginewitharestfulinterface, methodaddressbodydescription, streams, id, registernewstream, deletespecifiedstream, modelstream, newinformation, streamsgetthelistofstreams, queryregisternewquery, deletespecifiedquery, callbackaddnewobserver, action, pauserestart, changequerystatus, queriesgetthelistofqueries, observers, obsid, deletespecifiedobserver, observersgetthelistofobservers, enginesrestfulinterfacesmethoddescriptions, rabbitmqisaversatilemessageorientedmiddlewareapplicationwritteninerlang, itwas, writtenasanimplementationofamqp, butsupportsothermessagingprotocolsaswellvia, plugins, itsupportsmanydifferentlanguagestopublishandconsumemessagesincludingjava, twokeytermsofrabbitmqmodel, whichisbasedontheamqp, areexchangesandqueues, queueisabufferformessages, consumerswilllistenonthequeues, whenanewmessage, arrivestothequeue, itwillbesenttoaconsumerorstayinthequeueuntilanewconsumerstarts, listeningonthequeue, publisherssendmessagestoexchanges, exchangesjobistoforward, publishedmessagestocorrespondingqueuesaccordingtothetypeoftheexchangeandbindings, betweenqueuesandexchanges, bindingsarerules, thatexchangesusetoknowwhichqueuesto, forwardmessagesto, forexampleifamessagewitharoutingkey, warning, issenttoan, exchangewithadirecttype, theexchangewillroutethemessagestoallthequeues, thatare, boundwitha, binding, ifamessagesissenttoafanoutexchange, thenitisforwarded, toalltheboundqueuesregardlessofthebindingsandroutingkeys, otherexchangetypes, includetopic, whichisamorecomplexversionofthedirecttype, andheader, whichuses, messagesheadersinsteadofroutingkeysforrouting, rabbitmqpublishingandconsumingmodelexample, rabbithubisarabbitmqplugin, whichwasatfirstcreatedasapubsubhubbubprotocol, implementationforrabbitmq, pubsubhubbubisasimplepublishsubscribeprotocolover, itdefinesapublisher, subscriberandahub, apublishercreatesatopiconthehuband, startspublishinginformationtoit, subscribersubscribestoatopiconthehubandwhenevernew, infoispublishedonthetopic, thehubsendsittoallwhoaresubscribedtoit, thiswayusers, donthavetopollregularlyfornewinformation, butinsteadhubsendsitautomatically, whenitarrives, becauserabbitmqalsosupportspublishsubscribepattern, pluginhasineffectbecomearestfulinterfaceformanipulatingrabbitmqexchangesand, queues, butunlikeotherpubsubhubbubimplementationswhichrelyonatomformat, thisone, iscontentagnosticmeaninganysortofcontentcanbesendtoandfromthehub, endpoint, createanewqueue, amqp, exch, ange_type, type, createanewexchange, deletespecifiedqueue, deletespecifiedexchange, subscribe, hub, modesubscribe, callback, callbackurl, topic, verify, syncasync, lease_seconds, lease, subscribetospecifiedqueue, sameasabovesubscribetospecifiedexchange, modeunsubscribe, token, unsubscribefromspecifiedqueue, sameasaboveunsubscribefromspecifiedexchange, messagesendmessagetospecifiedqueue, messagesendmessagetospecifiedexchange, rabbithubrestfulinterface, forourproofonconceptacoupleofhelperapplicationsarealsoneeded, asimpleservlet, applicationforregisteringstreamsandqueriesandtoreceiveandshowtheresultsofthequeries, andsecondlyanapplicationforgeneratingardfstreamtorunourquerieson, bothare, implementedinjava, thisisalightweightjavaservletbasedwebapplication, javaservletsaresmallprogramsina, webserverwhosepurposeistohandleclientsrequests, mostcommonlyhttprequests, applicationhasthreeformseachwithitsownservletinthebackend, server, onefor, registeringaquery, oneforregisteringastreamandoneforsubscribingtoarabbitmqexchange, viaarabbithubplugin, thestreamservletsendsahttpputrequesttoac, restfulinterfacetocreateastream, inthesamewaythequeryregisteringservletsendshttp, requestsforregisteringthequeryandaddinganobservertoit, theobserver, callbackurlpointstothisapplicationsresultsservletthisservletwritesthereceivedrdf, triplestoafileandalsohandlesshowingoftheresults, thereisalsoaservletforsubscribingtoa, rabbitmqexchangeviarabbithubagainwithacallbackpointingbacktothisapplication, thestreamgeneratorcangeneratedummytriplesincode, readthemfromafileordictionaryof, filesorreadthemfromarabbitmqqueue, itfeedsthesetriplestoacsparqlenginethrough, ajavaforsrestfulservices, poc, thispocsaimistoshowthatacsrestapiandrabbitmqasamessageoriented, middlewarecanbecombinedtoformasimplerdfstreamfilteringsolution, whichallows, processingrdfstreamsbyhttpcalls, worksasfollows, itintegratescsparqlrestfulinterfacewithrabbitmqsowhenanewstreamis, registered, anewrabbitmqexchangeisalsocreatedwiththesamenameasthe, thisisachievedbyaddingacodesnippettotherestapiimplementation, whichcreatestheexchangeonstreamregisteringviarabbithubplugin, userregistersaqueryandanobserverwiththequeryservlet, datageneratorsendstriplestotheengine, observerregisteringcodeisalsoupgradedtonotpointdirectlybacktotheinitial, whichpointedtotheresultservlet, buttorabbithubinstead, thiswaythe, queryresultsaresenttotherabbitmqexchangewiththequerynameastherouting, whenausersubscribestotheexchangeusingthesubscribingservletofthehelper, application, aqueueiscreatedwithahub, topicasthebinding, ifthehub, topicisthe, sameastheregisteredqueriesnameandthesubscriptionscallbackpointstotheresults, servlet, wecanstillreceivetheresultsoftheinitialquery, nowthatwehaveproventhefeasibilityofarestfulrdfstreamprocessingsolution, wemake, anotherproofofconceptforaconcreterealworldproductstreamapibyregistero, aimistovalidatetheproposedsolutionreallifesettings, registerexposesdataabout, organizationscanimprovetheirleadandcreditscoring, leadnurturing, advancedanalyticsetc, capabilities, itusesrabbitmqasitsmessageorientedmiddleware, thistimeinsteadofusingonlyhttpandtcpinarestfulmanner, weuseamqpmessaging, protocol, forthisweaddjavacodetothedatagenerator, thatmakesitaconsumerfor, rabbitmqrdfstreamqueue, thistimewealsoomittheuseofrabbithub, therabbithub, althoughaversatileaddon, addsanunnecessarylayertothesystem, furthermore, asthe, softwareisupdatedlessfrequentlyatthewritingofthisthesis, thantherabbitmqitself, itmight, becomeunreliablewithnewerrabbitmqversions, thisisanimportantaspecttoconsiderina, thesecondpocworkslikethis, weregisteranewstreamlikebefore, westartthegenerator, whichstartslisteningfortriplesfromtherabbitmqqueue, newrdftriplesareaddedtothequeue, thegeneratorreceivesthem, andforwards, themtotheenginesstreamrepresentation, weregisteranewqueryandanobserverwithacallbacktothehelperapplication, asqueryisrunonthestream, resultsaresenttotheresultservletfortheusertosee, asthisversiondoesnothaverabbithub, thesubscribeservletisalsonotused, runningthissolutionwewitnessedrealresultsofinforegisterrdfdatafilteredbythe, whilerestfulservicesaregoodontheedgeofthesystemforinteractionwiththeoutside, itmakeslesssensetouseitinternallywhenamessageorientedmiddlewareisalso, included, srestfulinterfacesuppliedby, rabbithub, moreover, samqpimplementationisbettersuited, forlargequantitiesofdatacomparedtotraditionalrestfulwebservices, onepossiblesolutionforacommercialrdfdatastreamingsystemlikeregisterstream, itprovidessubsequentpossibilities, therearepremadeexchangesandqueuesandcsparqlstreamsalreadyregisteredon, thesystem, perhapsbyanadministrator, whenanewtriplearrives, itisautomatically, senttothecorrespondingstreamintheengine, userscanseethestreamsontheapplicationswebpageandregisterqueriesonthem, onanotherpagetheycanalsoseeanotherthelistofregisteredqueriesandaddobservers, onthem, theresultscanbesentbacktothewebapplicationsresultspagebydefault, ortoa, callbackover, ortoarabbitmqqueue, userscanalsoregisterqueriesandobserversviarestfulinterface, andconsumeboth, thestreamsandqueryresultsfortherabbitmqviaaanotherapicreatedforthis, purpose, possiblerdfstreamingsolutionarchitectureforcommercialinfosystemlike, inforegister, thiswaythesystemisflexiblebyallowingmultiplewaysofregisteringqueriesandobservers, andaccessingqueryresults, ithasthecapabilitiesofboththesimplerwidelyusedrest, technologyandmorecomplexamqp, whichisbettersuitedforlargerdatasets, italsolacks, redundantcomponentsininternalcommunicationregisteringqueriesandobserversusingthe, restfulinterfaceorwebservletsgoesstraighttothecsparqlengineandresultsgostraight, toresultspage, spreferences, testing, sincetothebestofourknowledgecsparqlenginehasntfoundmuchuseincommercial, athoroughperformancetestingisrequiredbeforeitcanbeusedinproduction, environment, inthecurrentsectiontheresultsofperformancetestsaresummarized, bothrelated, torealtimeleadgeneration, frominforegisternow, anewproductofregistero, inmind, onewithasingleinputstreamand, anotherwithtwostreams, obid, purl, oclc, ssnx, ssnobservation, returncompaniesofboardmembersoftencmo, withreg, asnewleads, category, testorganisations, goodrelations, regex, returnallthepersonsthatworkforacompanybelongingtotherealestate, firstofall, thereisaspecialrowatthebeginningofthepatternmatchingwhereclauseinboth, thisisnecessaryforthecitybenchimplementation, citybenchmeasureslatencyfrom, sarrivaltotheenginetothereadingofqueryresultsbytheobserver, whilemostofthe, triplesforthestreamarereadfromasamplestreamsnapshotfile, thatistakenfromareal, registerstreamapi, thereisalsoatriple, thatisaddedprogrammaticallytoeverygroupof, triplesfedtothestream, ithasauniqueidentifierthatisusedtoidentifyanobservation, wayeverygroupofresulttripleshasanobservationidthatcanbeusedtodeterminethe, stimeofarrivaltothesystem, thefirstquery, windowsize, whichforthebase, queryissameasthestep, thesecondquery, addsastreamoforganisationstoitsdatasources, italsohasafilter, clausewitharegularexpressiontofurtherfilterdowntheresults, itfindsallthepersons, thecategorycodes, usedinthestreamareemtak, eestimajandusetegevusaladeklassifikaator, codes, codesthat, belongtotherealestaterelatedactivities, wemeasuredlatencyandmemoryconsumptionofthesequerieswhilevaryingfollowing, parameters, triplefrequency, numberofregisteredqueries, thetriplefrequencycorrespondstohowmanytriplesareaddedtothestreaminasecond, ina, realworldsituationtherateinwhichtriplesarecominginmaychangedrastically, soasystem, needstoberobustagainsthigherloadsaswell, othertimesstreamsdonthaveenoughtriplesin, asmalltimeframetobeabletomakemeaningfulreasoningsonthedata, soitwouldmakesense, tousealargerwindowsize, finallywedomeasurementswithdifferentnumberofregistered, queriesbecauseincommercialsystemstheremightbehundredsorthousandsofuserswhouse, anapplicationtoregistersimilarqueries, usecases, registerqueriesregularlyapoolofremotedatasets, includingthenationalregistries, websites, andthirdpartywebservices, toproducestreamsofrdfdataasoutput, therearetwotypesof, output, oneisasnapshotoftheincomingnewdata, theotherkindarechangesets, thatshow, whatchangedcomparedtothelastsnapshot, whenitchangedandhowitchanged, whetheritisa, removal, additionorofnewtriples, thatisa, variationsofasamekindofquery, whoarea, membersoforganisation, juridicalperson, testswereimplementedusingthecitybenchjavaapplicationmodifiedtoourneeds, wechose, tousecitybenchbecauseitwasbestsuitedforourinforegisternow, citybenchwas, createdtobettersimulaterealtimeapplications, thedatasetsofolderbenchmarkswherestatic, sismoredynamicandprogrammable, atthecenterofits, implementationiswhatthecreatorscallaconfigurabletestbedinfrastructure, therspengines, itcontainsadatasetconfigurablemoduleforconfiguringstreams, configurablemoduleforconfiguringqueriesandaperformanceevaluatorforcollectingand, storingthemeasurements, oftheseveralpossibleparameters, thatcanbepassedtothe, relevantforusarethefollowing, oneforsettingthestreamfeedingfrequencyone, forsettingthenumberofconcurrentqueriesandoneforsettingthetextfilefromwherequeries, areread, werantestswithbothqueriesinthreesets, eachvaryingoneoftheparametersmentioned, previously, windowsizeandnumberofconcurrentqueries, minuteswithfixedconfigurations, ateachminutemarkperformanceevaluatorsavesthe, arithmeticmeanoflastminuteslatenciesandmemoryusage, thestreamsarefedoncepersecond, thesamenumberfortheorganisationsstreamis, notethatoneofthe, computercomponentsmentionedisram, butcitybenchisajavaapplicationrunningonjava, virtualmachine, componentspecification, processorintel, core, processor, computerspecificationusedfortesting, forsomemeasurementsbothgraphswithandwithouthighparametervaluesareincludedfor, betterclarity, queryrunningatatime, sameinthecourseofthetest, bothqueriesoverallaveragegetsclosetothat, asthefrequencygetshighersodoesthelatency, theendofthetest, errorsappearedontheapplicationlogs, whichexplainswhylatenciesstoppedbeingregistered, whenwelookatthememorygraphscloser, wecansee, thatthehigherthefrequency, themore, rapidlythememorystartstofill, themainreasonforthisisthatasthelatencyriseshigherthan, whichisthesteplengthforourqueries, moreandmoredatahastobekeptinmemory, isbecausedataisdiscardedonlyafterallqueries, inwhosewindowsthedatabelongsto, butmemoryusageisrisingevenforslowerfrequencies, forexamplewhenfrequency, withregardstoregisterstreamapirequirements, itwouldhavebeenimpracticaltosetitmuchhigherbecausethetest, willendsoonerthanthewindowbecomesfull, butitismarginalcomparedtothefrequencytests, thisisunderstandableaswith, thenumberoftriplesin, tostrainthesystemmorewith, largerwindowsizesinfuturetests, onecouldrunthetestslongerorsettingthefrequencyhigher, inthisbenchmarktripletimestampsareset, whentheyentertheapplication, thiscanalsobe, seenfromthegraphs, whichkeepascendingaslongasthewindowsize, andthenslowdown, asmightberequiredforinforegisternow, onecouldaddalargenumberoftriplestothestreamwitholdertimestamps, timeitisnotcausedbylargenumberoftriplesinmemory, butbecausethequerieshadtowaiton, eachother, concurrentmodificationexceptionsfromthecsparqlengineimplyingthatdifferentqueries, triedtomodifythesameobjectatthesametime, areexpectedofregisterstreamapi, testresultssuggestthatasafenumberofqueriesfora, onewaytoalleviatethisisbyhavingmultipleusersobservethesamequeryinsteadof, registeringidenticalqueriesmorethanonce, anotherprobablymoreeffectivewaytoimprove, thisistohaveaclusteredsystemwithmultipleenginesthatbalancetheloadofabignumberof, users, therecouldbeafrontapplicationwhichchoosestheenginetousebasedonthenumberof, queriesalreadyregisteredonthem, ontheotherendrabbitmqcouldduplicatethestreamsto, differentengines, testresultsofconcurrentqueriesexhibitsomeunusualbehaviour, thereisarangeforthe, numberofparallelquerieswheretheaveragelatencyislowerthanwithsmallernumber, aftersomeinspectionofthecode, itseemsmorelikelythatthisanomalyiscausedbythebenchmarkapplication, ratherthanthe, faultofthecsparqlengine, largestnumberofparallelqueriesforthetestsrunbycitybench, conclusion, inthispaperweintroducedrdfandsparqltechnologiesforlinkeddataandtwowidelyused, architectureoptionsforwebapplicationsinrestandmessageorientedmiddleware, wegavea, briefoverviewofcanextensionofsparqlforqueryingoverrdfstreamsand, rabbitmqmessageorientedmiddlewarethatusesprimarilyamqpprotocolformessage, mediation, wecreatedtwoproofsofconceptsforrdfstreamfilteringsolutionsandproposeda, thirdone, suitableforanenterpriselevelapplicationlikeinforegisternow, ittakesadvantage, ofbothrestandmomcapabilitiesandisflexiblebyofferingseveralmethodsforregistering, queriesandaccessingtheresults, wealsorunexperimentsoncsparqltomeasureits, suitabilityforinforegisternow, streamapi, eventhoughfrequencytestresultswereadequate, forthestreamapisrequirements, thetestsweretolighttostrainthesystemforvarying, windowsizesandboththeengineandthebenchmarkhadtheirshortcomingswithregardsto, havingmultipleparallelqueriesrunatthesametime, inthefuturealotmoreexperimentscouldbemade, tostressthesystemproperlywithwindow, longertestscouldbemadewithhighertriplefrequencies, likewisetestswithhigh, frequencieswithseveralstreamsandqueriesrunningatthesametime, forexample, wouldhavegreaterlatency, assumingherethateachstreamstripleratewouldbethe, testswithmultipleobserverscouldalsobemadealthoughtheefficiencyoftheobserver, dependsonitsimplementation, forexamplethroughtherestfulapiofcsparqlonecould, addseveralobserversallpointingtodifferenturlswheretheapplicationwouldhavetosend, theresults, butiftherewasanobserverwhowouldsendallthequeryresultstorabbitmq, responsibility, otherrspenginesthatwerementionedinrelatedworksection, couldalsobetested, yabenchandcitybenchhavebeenusedtotestmorethanoneengineandaremadetobe, modularenoughtohaveenginespluggedintothemrelativelyeasily, ifenoughexperimentshavebeenmadetomeettherequirementsoftheapplication, thenthe, architecturedesigncouldbeupdatedaccordingtothetestresultsandaprototypecouldbemade