monaa

A Tool for Timed Patten Matching with Automata-Based Acceleration

https://github.com/maswag/monaa

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary

Keywords

automata data-streaming formal-specification monitoring monitoring-tool regular-expression runtime-verification
Last synced: 6 months ago · JSON representation ·

Repository

A Tool for Timed Patten Matching with Automata-Based Acceleration

Basic Info
  • Host: GitHub
  • Owner: MasWag
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 2.82 MB
Statistics
  • Stars: 9
  • Watchers: 3
  • Forks: 1
  • Open Issues: 0
  • Releases: 7
Topics
automata data-streaming formal-specification monitoring monitoring-tool regular-expression runtime-verification
Created over 8 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration

Boost.Test Documentation Status Docker Pulls License: GPL v3

This is the source code repository for MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration.

Demo on Google Colab is available!!

Open In Colab (demo) Open In Colab (velocity demo)

Usage

Synopsis

monaa [OPTIONS] PATTERN [FILE]
monaa [OPTIONS] -e PATTERN [FILE]
monaa [OPTIONS] -f FILE [FILE]

Options

-h, --help Print a help message.
-q, --quiet Quiet mode. Causes any results to be suppressed.
-a, --ascii Ascii mode. (default)
-b, --binary Binary mode.
-V, --version Print the version
-E, --event Event mode (default)
-S, --signal Signal mode
-i file, --input file Read a timed word from file.
-f file, --automaton file Read a timed automaton from file.
-e pattern, --expression pattern Specify a pattern by a timed regular expression.

Installation

MONAA 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.

Requirements

  • C++ compiler supporting C++20 and the corresponding libraries.
  • Boost (>= 1.59)
  • Eigen
  • CMake (>= 3.30)
  • Bison (>= 3.0)
  • Flex

Instructions

sh mkdir build cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make && make install

Usage of the docker image

Note: Docker support is experimental. It seems this image does not work with Docker Desktop for macOS.

You can use monaa via docker by docker run -it maswag/monaa ... instead of monaa .... The following shows an example.

sh docker run -v $PWD:/mnt -it maswag/monaa -f /mnt/examples/small.dot -i /mnt/examples/small.txt

Examples

See Getting Started for an example usage.

Syntax of Timed Automata

You can use DOT language to represent a timed automaton. For the timing constraints and other information, you can use the following custom attributes.

attribute value description
vertex init0 or 1init=1 if the state is initial
vertexmatch0 or 1match=1 if the state is accepting
edgelabel[a-z], [A-Z]the value represents the event on the transition
edgereseta list of integersthe set of variables reset after the transition
edgeguarda list of inequality constraintsthe guard of the transition

Syntax of Timed Regular Expressions

expr : c (An event)
     | ( expr ) (Grouping)
     | expr + (Kleene Plus)
     | expr * (Kleene Star)
     | expr expr (Concatenation)
     | expr | expr (Disjunction)
     | expr & expr (Conjunction)
     | expr % (s,t) | expr % [s,t) | expr % (s,t] | expr % [s,t] | expr % (>s) | expr % (>=s) | expr % (<t) | expr % (<=t) | expr % (=t) (Time Restriction)

Related Tool

  • TimeTrace: A web frontend of MONAA
    • GitHub: https://github.com/JonasGLund99/TimeTrace

References

  • A Boyer-Moore Type Algorithm for Timed Pattern Matching. Masaki Waga, Takumi Akazaki, and Ichiro Hasuo
  • Efficient Online Timed Pattern Matching by Automata-Based Skipping. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga
  • MONAA: a Tool for Timed Patten Matching with Automata-Based Acceleration. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga

Owner

  • Name: Masaki Waga
  • Login: MasWag
  • Kind: user
  • Location: Kyoto, Japan
  • Company: Kyoto University

Citation (CITATION.bib)

@inproceedings{WHS18,
  author    = {Masaki Waga and
               Ichiro Hasuo and
               Kohei Suenaga},
  title     = {{MONAA:} {A} Tool for Timed Pattern Matching with Automata-Based Acceleration},
  booktitle = {3rd Workshop on Monitoring and Testing of Cyber-Physical Systems,
               MT@CPSWeek 2018, Porto, Portugal, April 10, 2018},
  pages     = {14--15},
  publisher = {{IEEE}},
  year      = {2018},
  url       = {https://doi.org/10.1109/MT-CPS.2018.00014},
  doi       = {10.1109/MT-CPS.2018.00014}
}

GitHub Events

Total
  • Delete event: 2
  • Push event: 18
  • Pull request review event: 4
  • Pull request review comment event: 3
  • Pull request event: 6
  • Fork event: 1
  • Create event: 3
Last Year
  • Delete event: 2
  • Push event: 18
  • Pull request review event: 4
  • Pull request review comment event: 3
  • Pull request event: 6
  • Fork event: 1
  • Create event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 201
  • Total Committers: 1
  • Avg Commits per committer: 201.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 10
  • Committers: 1
  • Avg Commits per committer: 10.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Masaki Waga m****a@g****m 201

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 4
  • Average time to close issues: 1 day
  • Average time to close pull requests: 4 minutes
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: 8 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MasWag (1)
Pull Request Authors
  • MasWag (7)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/boosttest.yml actions
  • actions/checkout v4 composite
.github/workflows/build_without_submodule.yml actions
  • actions/checkout v4 composite
.github/workflows/cmake-lint.yml actions
  • BSFishy/pip-action v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/dockerhub.yml actions
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
  • docker/setup-qemu-action v3 composite
.github/workflows/doxygen.yml actions
  • actions/checkout v4 composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/hadolint.yml actions
  • actions/checkout v2 composite
  • hadolint/hadolint-action v1.5.0 composite
.github/workflows/integrated_test.yml actions
  • actions/checkout v4 composite
docker/Dockerfile docker
  • alpine 3.20.0 build