{"id":28213511,"url":"https://github.com/solidlabresearch/streaming-query-hive","last_synced_at":"2025-06-11T17:31:25.278Z","repository":{"id":286011775,"uuid":"960031149","full_name":"SolidLabResearch/streaming-query-hive","owner":"SolidLabResearch","description":"Combining Multiple Streaming Queries to provide actionable insights","archived":false,"fork":false,"pushed_at":"2025-06-10T00:53:57.000Z","size":3499,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-10T01:33:53.243Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SolidLabResearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-03T18:42:33.000Z","updated_at":"2025-05-12T12:55:16.000Z","dependencies_parsed_at":"2025-05-13T13:29:09.502Z","dependency_job_id":"aff726b6-0e6e-488f-a9e3-6dc6ddd2c24a","html_url":"https://github.com/SolidLabResearch/streaming-query-hive","commit_stats":null,"previous_names":["solidlabresearch/stream-hive","solidlabresearch/stream-query-hive"],"tags_count":0,"template":false,"template_full_name":"argahsuknesib/TS-Template","purl":"pkg:github/SolidLabResearch/streaming-query-hive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fstreaming-query-hive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fstreaming-query-hive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fstreaming-query-hive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fstreaming-query-hive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SolidLabResearch","download_url":"https://codeload.github.com/SolidLabResearch/streaming-query-hive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SolidLabResearch%2Fstreaming-query-hive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259308154,"owners_count":22837974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-17T20:10:46.618Z","updated_at":"2025-06-11T17:31:25.273Z","avatar_url":"https://github.com/SolidLabResearch.png","language":"TypeScript","readme":"# Streaming Query Hive\n\n\u003e Combining Multiple Streaming Queries to provide actionable insights. \n\n## Linting\n\nYou run the linter via \n```shell\nnpm run lint:ts\n```\n\nYou can automatically fix some issues via\n```shell\nnpm run lint:ts:fix\n```\n\n## Example Architecture\n\nThe Streaming Query Hive can handle multiple streaming queries from different sources, and utilizes different streaming operators to process the data. The architecture is designed to be modular, allowing for easy integration of new sources and operators. An example architecture combining three different sources and the results from the RDF Stream Processing Agents to solve for a specific Parent Query is shown below:\n\n![Example Architecture](./images/Architecture.png)\n\n\nIn the architecuture, it is assumed that the query results from the RSSP Agents is being streamed to a MQTT topic. The MQTT topic is then consumed by the Streaming Query Hive, which processes the aggregated results using different streaming operators to solve for the Parent Query. The relationship between the queries to esatablish that the Child Queries are part of the Parent Query is established using the Query Containment [[1](#footnote-1)] Relationship. \n\nThe Streaming Queries utilized in the architecture are described in the RSP-QL query language [[2](#footnote-2)]. The tool utilized to find if the queries have the Query Containment [[1](#footnote-1)] or the Query Isomorphism [[3](#footnote-3)] is the RSP-QL Containment Checker [[4](#footnote-4)]. The RSP-QL Containment Checker is a tool that checks if a query is contained in another query, and can be used to determine if the results of one query can be used to solve another query. The tool is designed to work with the RSP-QL query language, and builds on the work done by the SPeCS Solver [[5](#footnote-5)] to support aggregation functions and the streaming semantics of the RSP-QL query language.\n\nThe MQTT broker can be easily changed with another broker, such as RabbitMQ or Kafka, in the future. \n\nThe resultant query results for the parent query can be streamed to a different MQTT topic, or can be stored in a database for further analysis. Moreover, the results can be reasoned over using a reasoning engine such as EYE-JS[[6](#footnote-6)]. The reasoning engine can be used to infer new knowledge from the query results, and can be used to provide actionable insights from the data.\n\n## License\n\nThis code is copyrighted by [Ghent University - imec](https://www.ugent.be/ea/idlab/en) and released under the [MIT Licence](./LICENCE) \n\n## Contact\n\nFor any questions, please contact [Kush](mailto:kushbisen@proton.me) or create an issue in the repository [here](https://github.com/SolidLabResearch/streaming-query-hive/issues). \n\n### Footnotes\n\n[1]: \u003ca href=\"https://link.springer.com/referenceworkentry/10.1007/978-0-387-39940-9_1269\"\u003e Query Containment \u003c/a\u003e\n\n[2]: \u003ca href=\"https://www.igi-global.com/article/rsp-ql-semantics/129761\"\u003eRSP-QL Semantics: A Unifying Query Model to Explain Heterogeneity of RDF Stream Processing Systems \u003c/a\u003e\n\n[3]: \u003ca href=\"https://link.springer.com/content/pdf/10.1007/3-540-48005-6_3.pdf\"\u003e Matching RDF Graphs \u003c/a\u003e\n\n[4]: \u003ca href=\"https://github.com/SolidLabResearch/rspql-containment-checker\"\u003e RSP-QL Containment Checker \u003c/a\u003e\n\n[5]: \u003ca href=\"https://github.com/mirkospasic/SpeCS\"\u003e SPeCS Solver \u003c/a\u003e\n\n[6]: \u003ca href=\"https://github.com/eyereasoner/eye-js\"\u003e EYE-JS \u003c/a\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fstreaming-query-hive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidlabresearch%2Fstreaming-query-hive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidlabresearch%2Fstreaming-query-hive/lists"}