Metadata-Version: 2.1
Name: pychronicles
Version: 0.0.2
Summary: A package for chronicle recognition
Home-page: https://gitlab.inria.fr/tguyet
Author: Thomas Guyet
Author-email: thomas.guyet@irisa.fr
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: lazr.restfulclient
Requires-Dist: lazr.uri
Requires-Dist: lark-parser

# PyChronicle package

A chronicle is a specification of the complex temporal behaviors as a temporal constraint graph. It can be used to recognize complex behaviors in sequence the temporal events.

A chronicle is a multiset of events and a set of temporal constraints specifying that occurrences of pairs of events must occurs within a given temporal interval.

The package implements the model of chronicles and an efficient algorithm to recognize it.

# Requirements

* numpy
* scipy
* lazr.restfulclient
* larz.uri

LAZR is used to instantiate chronicles from CRS files (with simple grammar).

# Tests

Example of usage:

    #define a sequence of events
    seq = [3,4,'b','a','a',1,3,'coucou','b','coucou',5,'coucou',5]

    #define a chronicle
    c=Chronicle()
    c.add_event(0,'b')
    c.add_event(1,1)
    c.add_constraint(1,3, (3,45))
    print(c)

    #recognize the chronicle in the sequence
    occs=c.recognize(seq)
    print("occurrences: "+str(occs))

It is possible to specify chronicles using the CRS format. The following code illustrate the syntax for specifying a chronicle in this format.

    chronicle C27_sub_0[]()
    {
	    event(Event_Type1[], t006)
	    event(Event_Type1[], t004)
	    event(Event_Type2[], t002)
	    event(Event_Type3[], t001)

	    t004-t006 in [17,25]
	    t006-t002 in [-16,-10]
	    t002-t001 in [14,29]
	    t004-t001 in [27,35]
    }


# Authorship

**Author:** Thomas Guyet
**Institution:** AGROCAMPUS-OUEST/IRISA



