Skip to content

MiloudEloumri/match

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues Apache 2.0 License DOCS LinkedIn


Match: Erlang-Based Expert System Applications


Match is a monorepo showcasing a collection of Erlang applications built around the SERESYE (Swarm oriented ERlang Expert SYstem Engine). It demonstrates the capabilities of using a Rete-based rules engine in Erlang for various tasks, including semantic data processing and job matching.

This project is built using Rebar3 on Erlang.


About The Project

The match repository serves as a central hub for several interconnected Erlang applications:

  • SERESYE (apps/seresye): The core of the project, SERESYE is a Rete-based rules engine written in Erlang. It allows users to define a knowledge base (facts) and production rules to infer new knowledge and trigger actions. For detailed information, refer to the SERESYE README.

  • Semantic Relatives (apps/semantic_relatives): This application demonstrates the use of SERESYE in conjunction with a Semantic Web Toolkit. It processes semantic web data (ontologies) to understand relationships (e.g., family trees) and stores this information in a Mnesia database. See the Semantic Relatives README for more.

  • Job Match (apps/job_match): A practical application showcasing SERESYE's capabilities. It decodes job posting and applicant ontologies, builds a knowledge base, and uses a rule engine to match suitable applicants to job openings, evaluating them based on various criteria. Explore the Job Match README for specifics.

  • Match (apps/match): This application appears to be the umbrella application for the release, tying together the other components.


Getting Started

Prerequisites

Ensure you have Erlang/OTP installed (developed with OTP 23). You will also need Rebar3 to build the project.

Build

To compile the entire project and all its applications:

rebar3 compile

To open an Erlang shell with the project's applications loaded:

rebar3 shell

Usage

Each application within the apps/ directory has its own specific usage instructions and examples in its respective README.md file.

A primary example to explore is the Job Match application:

  1. Build and start the shell:
    rebar3 compile
    rebar3 shell
  2. From the Erlang shell, start the job_match application:
    1> job_match:start().
    ok
  3. You can then query the job_match engine. For example, to retrieve all facts in its knowledge base:
    2> seresye_srv:get_kb(job_match).
    [{match,<<"JPosting22">>,<<"JSeeker126">>,... % and many more
    Refer to the Job Match README for more detailed query examples.

Similarly, you can explore the semantic_relatives application by following the instructions in its README.


Diagram

(The original README mentioned a diagram. If a diagram exists or can be generated, it would be beneficial to include it here, perhaps as an image or a link to a generated document.)

[//]: # (Consider adding a project architecture diagram if available)

Contributing

Contributions are welcome! Please feel free to fork the repository, make changes, and submit pull requests. If you find any issues or have suggestions for improvements, please open an issue on GitHub.


License

Distributed under the Apache License 2.0. See LICENSE for more information.


Contact

Miloud Eloumri - LinkedIn - [email protected]

Project Link: https://github.com/MiloudEloumri/match


Acknowledgements

  • ERESYE project (inspiration for SERESYE)
  • Semantic Web ToolKit for Erlang
  • Rebar3
  • Erlang/OTP

About

match rebar3 release - Matching ...

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •