Skip to content
This repository was archived by the owner on Dec 20, 2024. It is now read-only.

Commit caa5c5a

Browse files
committed
Initial source commit
1 parent a4486fe commit caa5c5a

File tree

97 files changed

+667859
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+667859
-0
lines changed

README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Overview
2+
3+
4+
**Mensa** is a generic, flexible, enhanced, and efficient Java implementation of a pattern matching state machine as described by the 1975 paper by Alfred V. Aho and Margaret J. Corasick: *Efficient string matching: An aid to bibliographic search*[^1] This implementation is
5+
6+
* *generic* in that it can be used to match any type of symbols as defined by the Java template type S — e.g., it is possible to create a machine to match bytes, characters, integers, gene sequences, bit sequences, etc.;
7+
* *flexible* in that the architecture allows for granular extension, customization, or replacement of framework components;
8+
* *enhanced* in that it supports a number of useful extension not addressed in the original paper, such as whole-word matching, case-sensitivity controls, fuzzy whitespace matching, fuzzy punctuation matching, incremental matching (i.e., iterators), matching event listeners, etc.; and
9+
* *efficient* in that it performs well in terms of both time and resource usages on very large (~million term) keyword sets.
10+
11+
# Resources
12+
13+
The following are the primary Mensa resources:
14+
15+
- **Source code**: Source code can be downloaded from this Github project:
16+
17+
https://github.com/dell-oss/Mensa
18+
19+
- **Documentation**: There are two primary sources of documentation: the [Mensa Wiki](https://github.com/dell-oss/Mensa/wiki) and the API Java docs. The wiki contains details on building **Mensa**, tutorials, examples, contributor information, and more. The API java docs are generated as part of the [build process](https://github.com/dell-oss/Mensa/wiki/Building-Mensa) and contain detailed API documentation.
20+
21+
- **Issues**: Please feel free to post bug reports and feature enhancements in the Github Issues area:
22+
23+
https://github.com/dell-oss/Mensa/issues
24+
25+
- **Downloads**: Binaries may be downloaded from the [Releases](https://github.com/dell-oss/Mensa/releases) page. Source, binary, and doc download bundles will be available soon from Maven Central. Stay tuned!
26+
27+
28+
# Requirements
29+
30+
**Mensa** requires [Java](https://www.java.com/) 1.7 or higher. [Maven](http://maven.apache.org/) 3.2.3 or higher is needed to run automated build scripts.
31+
32+
# License
33+
**Mensa** is available under the Apache License Version 2.0. See LICENSE.txt or
34+
[http://www.apache.org/licenses/](http://www.apache.org/licenses/) for a copy of this license.
35+
36+
# Contributors
37+
38+
For a list of contributors, as well as information on how you can contribute, please see the [Contributors](https://github.com/dell-oss/Mensa/wiki/Contributors) page in the [Mensa Wiki](https://github.com/dell-oss/Mensa/wiki).
39+
40+
**Mensa** was created by [F. Andy Seidl](http://www.linkedin.com/in/faseidl/) and released as open source by [Dell Software](http://software.dell.com/).
41+
42+
[^1]: **Aho, Alfred V.; Corasick, Margaret J.** (June 1975). *Efficient string matching: An aid to bibliographic search.* Communications of the ACM 18 (6): 333–340. doi: [10.1145/360825.360855](http://dx.doi.org/10.1145%2F360825.360855)
43+

mensa/.classpath

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" output="target/classes" path="src/main/java">
4+
<attributes>
5+
<attribute name="optional" value="true"/>
6+
<attribute name="maven.pomderived" value="true"/>
7+
</attributes>
8+
</classpathentry>
9+
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
10+
<attributes>
11+
<attribute name="maven.pomderived" value="true"/>
12+
</attributes>
13+
</classpathentry>
14+
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
15+
<attributes>
16+
<attribute name="optional" value="true"/>
17+
<attribute name="maven.pomderived" value="true"/>
18+
</attributes>
19+
</classpathentry>
20+
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
21+
<attributes>
22+
<attribute name="maven.pomderived" value="true"/>
23+
</attributes>
24+
</classpathentry>
25+
<classpathentry kind="src" path="src/main/javadoc"/>
26+
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
27+
<attributes>
28+
<attribute name="maven.pomderived" value="true"/>
29+
</attributes>
30+
</classpathentry>
31+
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
32+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
33+
<attributes>
34+
<attribute name="maven.pomderived" value="true"/>
35+
</attributes>
36+
</classpathentry>
37+
<classpathentry kind="output" path="target/classes"/>
38+
</classpath>

0 commit comments

Comments
 (0)