Metadata-Version: 2.1
Name: semsimian
Version: 0.2.14rc2
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
License-File: LICENSE
Summary: Sematic similarity calculations for ontologies implemented in Rust.
License: BSD-3-Clause
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# semsimian

Semsimian is a package to provide fast semantic similarity calculations for ontologies. 
It is a Rust library with a Python interface. 

This includes implementation of Jaccard and Resnik similarity of terms in an ontology,
as well as a method to calculate the similarity of two sets of terms (so-called
termset similarity). Other methods will be added in the future.

Semsimian is currently integrated into [OAK](https://github.com/INCATools/ontology-access-kit) and
the [Monarch app](https://github.com/monarch-initiative/monarch-app) to provide fast semantic 
similarity calculations.

## Rust Installation

- `cargo add semsimian`

## Python Installation

- Set up your virtual environment of choice.
- cd `semsimian` (home directory of this project)
- `pip install maturin`
- `maturin develop`
- `python`
```
Python 3.9.16 (main, Jan 11 2023, 10:02:19) 
[Clang 14.0.6 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from semsimian import Semsimian
>>> s = Semsimian([('banana', 'is_a', 'fruit'), ('cherry', 'is_a', 'fruit')])
>>> s.jaccard_similarity('banana', 'cherry')
```
This should yield a value of 1.0.


## Releases

As of version 0.2.11, the semsimian source is released on [GitHub](https://github.com/monarch-initiative/semsimian), with a corresponding set of Python wheels released to [PyPi](https://pypi.org/project/semsimian/) and a corresponding release in [crates.io](https://crates.io/crates/semsimian).


