GithubHelp home page GithubHelp logo

doganulus / montre Goto Github PK

View Code? Open in Web Editor NEW
15.0 2.0 5.0 3.58 MB

The original timed regular expression matcher over temporal behaviors

License: GNU General Public License v3.0

Makefile 2.23% Shell 0.09% C++ 76.69% Python 14.85% Dockerfile 6.14%
regular-expression regex-engine timed pattern-matching

montre's Introduction

montre

A timed regular expression matcher

Usage

montre [OPTIONS ...] PATTERN [FILE]

Options

-b, --offline              Offline Mode (Batch)
-e, --expr=PATTERN         Use PATTERN for matching
-f, --filename=FILE        Use FILE for matching
-i, --online               Online Mode (Incremental)
-h, --help                 Display this information
-o, --output=FILE          Place the output into FILE (Default: stdout)

    --output-type=TYPE     Supported types are <end|zone>
    --syntax-help          Display the syntax of timed regular expressions
    --version              Version Information

Syntax of Timed Regular Expressions

Atom = p                   (Propositional Symbol)
     : !Atom               (Negation)
     : Atom1 && Atom2      (Conjunction)
     : Atom1 || Atom2      (Disjunction)

Expr = Atom                (Atomic Expression)
     : <:Atom              (Begin-anchored)
     : Atom:>              (End-anchored)
     : <:Atom:>            (BeginEnd-anchored)
     : Expr1 ; Expr2       (Concatenation)
     : Expr1 | Expr2       (Union)
     : Expr1 & Expr2       (Intersection)
     : Expr1 % (i,j)       (Time Restriction)
     : Expr1 *             (Zero-or-more Repetition)
     : Expr1 +             (One-or-more Repetition)
     : (Expr)              (Grouping)

Installation

Ubuntu LTS 14.04 64-bit is the recommended platform.

Requirements

  • GNU C/C++ and the corresponding libraries.
  • Pure Programming Language:
  • pkg-config

Instructions

If you have problems with permissions don't forget to prefix with sudo

  1. Clone the Montre repository:
git clone https://github.com/doganulus/montre
cd montre
  1. Build and install Montre:
make && make install

It will install Montre with the default prefix /usr/local. You can modify Makefile if you would like to install to a custom location.

Running Montre in Docker

Docker provides an alternative (and easier) way for people that want to run Montre without needing to install all dependencies. If Docker is not installed on your machine, you can install using these instructions. Note that you may need sudo for docker commands below. Many thanks to @mibarg for preparing the Dockerfile.

  1. Pull the Montre docker image.
docker pull doganulus/montre:latest
  1. Start a command prompt inside the container.
docker run -it doganulus/montre:latest /bin/bash
  1. Do some timed pattern matching using montre!
montre '(p;q)%(3,4)' montre/examples/my_sym_beh.txt

Tutorial

We have used Montre to find all sprints performed by a player in a real soccer match. See the tutorial Finding Sprints.

Documentation

  • Timed Pattern Matching. Dogan Ulus, Thomas Ferrere, Eugene Asarin and Oded Maler. FORMATS'14.
  • Online Timed Pattern Matching using Derivatives. Dogan Ulus, Thomas Ferrere, Eugene Asarin and Oded Maler. TACAS'16.
  • Montre: A Tool for Monitoring Timed Regular Expressions. Dogan Ulus. CAV'17.
  • Pattern Matching with Time: Theory and Applications. Dogan Ulus. PhD Thesis. 2018.

montre's People

Contributors

agraef avatar doganulus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.