{"id":18826933,"url":"https://github.com/maswag/monaa","last_synced_at":"2025-07-18T12:34:34.015Z","repository":{"id":37021976,"uuid":"105769476","full_name":"MasWag/monaa","owner":"MasWag","description":"A Tool for Timed Patten Matching with Automata-Based Acceleration","archived":false,"fork":false,"pushed_at":"2025-05-23T09:10:33.000Z","size":2884,"stargazers_count":9,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-23T09:11:41.825Z","etag":null,"topics":["automata","data-streaming","formal-specification","monitoring","monitoring-tool","regular-expression","runtime-verification"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MasWag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-10-04T13:08:05.000Z","updated_at":"2025-05-23T09:09:43.000Z","dependencies_parsed_at":"2025-04-14T01:53:13.026Z","dependency_job_id":"3e6369ae-f119-4251-8246-d53001edbfd8","html_url":"https://github.com/MasWag/monaa","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/MasWag/monaa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasWag%2Fmonaa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasWag%2Fmonaa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasWag%2Fmonaa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasWag%2Fmonaa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MasWag","download_url":"https://codeload.github.com/MasWag/monaa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MasWag%2Fmonaa/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265761377,"owners_count":23824222,"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":["automata","data-streaming","formal-specification","monitoring","monitoring-tool","regular-expression","runtime-verification"],"created_at":"2024-11-08T01:09:20.712Z","updated_at":"2025-07-18T12:34:34.010Z","avatar_url":"https://github.com/MasWag.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration\n===========================================================================\n\n[![Boost.Test](https://github.com/MasWag/monaa/actions/workflows/boosttest.yml/badge.svg?branch=master)](https://github.com/MasWag/monaa/actions/workflows/boosttest.yml)\n[![Documentation Status](https://readthedocs.org/projects/monaa/badge/?version=latest)](https://monaa.readthedocs.io/en/latest/?badge=latest)\n[![Docker Pulls](https://img.shields.io/docker/pulls/maswag/monaa)](https://hub.docker.com/r/maswag/monaa)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE)\n\n\nThis is the source code repository for MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration.\n\nDemo on Google Colab is available!!\n\n[![Open In Colab (demo)](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/MasWag/monaa/blob/master/demo/MONAA%20demo.ipynb)\n[![Open In Colab (velocity demo)](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/MasWag/monaa/blob/master/demo/MONAA%20velocity%20demo.ipynb)\n\nUsage\n-----\n\n### Synopsis\n\n    monaa [OPTIONS] PATTERN [FILE]\n    monaa [OPTIONS] -e PATTERN [FILE]\n    monaa [OPTIONS] -f FILE [FILE]\n\n### Options\n\n**-h**, **--help** Print a help message. \u003cbr /\u003e\n**-q**, **--quiet** Quiet mode. Causes any results to be suppressed. \u003cbr /\u003e\n**-a**, **--ascii** Ascii mode. (default) \u003cbr /\u003e\n**-b**, **--binary** Binary mode. \u003cbr /\u003e\n**-V**, **--version** Print the version \u003cbr /\u003e\n**-E**, **--event** Event mode (default) \u003cbr /\u003e\n**-S**, **--signal** Signal mode \u003cbr /\u003e\n**-i** *file*, **--input** *file* Read a timed word from *file*. \u003cbr /\u003e\n**-f** *file*, **--automaton** *file* Read a timed automaton from *file*. \u003cbr /\u003e\n**-e** *pattern*, **--expression** *pattern* Specify a *pattern* by a timed regular expression. \u003cbr /\u003e\n\nInstallation\n------------\n\nMONAA is tested on Arch Linux, Ubuntu (20.04, 22.04, 24.04), and macOS (12 Monterey, 13 Ventura, 14 Sonoma). We also provide a [docker image](https://hub.docker.com/repository/docker/maswag/monaa).\n\n### Requirements\n\n* C++ compiler supporting C++20 and the corresponding libraries.\n* Boost (\u003e= 1.59)\n* Eigen\n* CMake (\u003e= 3.30)\n* Bison (\u003e= 3.0)\n* Flex\n\n### Instructions\n\n```sh\nmkdir build\ncd build \u0026\u0026 cmake -DCMAKE_BUILD_TYPE=Release .. \u0026\u0026 make \u0026\u0026 make install\n```\n\n### Usage of the docker image\n\nNote: Docker support is experimental. It seems this image does not work with Docker Desktop for macOS.\n\nYou can use monaa via docker by `docker run -it maswag/monaa ...` instead of `monaa ...`.\nThe following shows an example.\n\n```sh\ndocker run -v $PWD:/mnt -it maswag/monaa -f /mnt/examples/small.dot -i /mnt/examples/small.txt\n```\n\nExamples\n--------\n\nSee [Getting Started](./doc/getting_started.md) for an example usage.\n\nSyntax of Timed Automata\n------------------------\n\nYou can use [DOT language](http://www.graphviz.org/content/dot-language) to represent a timed automaton. For the timing constraints and other information, you can use the following custom attributes.\n\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr class=\"header\"\u003e\n\u003cth\u003e\u003c/th\u003e\n\u003cth\u003eattribute\u003c/th\u003e\n\u003cth\u003evalue\u003c/th\u003e\n\u003cth\u003edescription\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr class=\"odd\"\u003e\n\u003ctd\u003evertex\u003c/td\u003e\n\u003ctd\u003einit\u003c/td\u003e\u003ctd\u003e0 or 1\u003c/td\u003e\u003ctd\u003e\u003ctt\u003einit=1\u003c/tt\u003e if the state is initial\u003c/td\u003e\u003c/tr\u003e\n\u003ctr class=\"even\"\u003e\n\u003ctd\u003evertex\u003c/td\u003e\u003ctd\u003ematch\u003c/td\u003e\u003ctd\u003e0 or 1\u003c/td\u003e\u003ctd\u003e\u003ctt\u003ematch=1\u003c/tt\u003e if the state is accepting\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr class=\"odd\"\u003e\n\u003ctd\u003eedge\u003c/td\u003e\u003ctd\u003elabel\u003c/td\u003e\u003ctd\u003e[a-z], [A-Z]\u003c/td\u003e\u003ctd\u003ethe value represents the event on the transition\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr class=\"even\"\u003e\n\u003ctd\u003eedge\u003c/td\u003e\u003ctd\u003ereset\u003c/td\u003e\u003ctd\u003ea list of integers\u003c/td\u003e\u003ctd\u003ethe set of variables reset after the transition\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr class=\"odd\"\u003e\n\u003ctd\u003eedge\u003c/td\u003e\u003ctd\u003eguard\u003c/td\u003e\u003ctd\u003ea list of inequality constraints\u003c/td\u003e\u003ctd\u003ethe guard of the transition\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\nSyntax of Timed Regular Expressions\n-----------------------------------\n\n\n    expr : c (An event)\n         | ( expr ) (Grouping)\n         | expr + (Kleene Plus)\n         | expr * (Kleene Star)\n         | expr expr (Concatenation)\n         | expr | expr (Disjunction)\n         | expr \u0026 expr (Conjunction)\n         | expr % (s,t) | expr % [s,t) | expr % (s,t] | expr % [s,t] | expr % (\u003es) | expr % (\u003e=s) | expr % (\u003ct) | expr % (\u003c=t) | expr % (=t) (Time Restriction)\n\nRelated Tool\n-------------\n\n- [TimeTrace](https://time-trace.vercel.app/): A web frontend of MONAA\n    - GitHub: https://github.com/JonasGLund99/TimeTrace\n\nReferences\n-------------\n\n* A Boyer-Moore Type Algorithm for Timed Pattern Matching. Masaki Waga, Takumi Akazaki, and Ichiro Hasuo\n* Efficient Online Timed Pattern Matching by Automata-Based Skipping. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga\n* MONAA: a Tool for Timed Patten Matching with Automata-Based Acceleration. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaswag%2Fmonaa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaswag%2Fmonaa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaswag%2Fmonaa/lists"}