.. coolisf documentation master file, created by
sphinx-quickstart on Thu May 13 23:03:13 2021.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to coolisf's documentation!
===================================
``coolisf`` is a Python 3 implementation of the `Integrated Semantic
Framework `__ that provides computational deep
semantic analysis by combining structural semantics from construction
grammars and lexical semantics from ontologies in a single
representation.
Install
=======
``coolisf`` only works on Linux distributions at the moment (built and
tested on Fedora and Ubuntu Linux).
- Install ``coolisf`` package from
`PyPI `__ using pip
::
pip install coolisf
- Create coolisf data folder at ``/home/user/local/isf/data``
- Download ace-0.9.26 binary from https://osf.io/x52fy/ to
``/home/user/bin/ace``. Make sure that you can run ace by
.. code:: bash
[isf]$ ~/bin/ace -V
ACE version 0.9.26
compiled at 18:48:50 on Sep 14 2017
- Install `lelesk `__ and yawlib with
data
- Download coolisf lexical rules database from https://osf.io/qn4wz/
and extract it to ``/home/user/local/isf/data/lexrules.db``
- Download grammar files (erg.dat, jacy.dat, virgo.dat, etc.) and copy
them to ``/home/user/local/isf/data/grammars/``
The final data folder should look something like this
::
/home/user/local/isf/data
├── grammars
│ ├── erg.dat
│ └── jacy.dat
├── lexrules.db
Using ISF
=========
To parse a sentence, use coolisf ``text`` command
.. code:: bash
python -m coolisf text "I drink green tea." -f dmrs
:`I drink green tea.` (len=5)
------------------------------------------------------------
dmrs {
10000 [pron<0:1> x ind=+ num=sg pers=1 pt=std];
10001 [pronoun_q<0:1> x ind=+ num=sg pers=1 pt=std];
10002 [_drink_v_1_rel<2:7> e mood=indicative perf=- prog=- sf=prop tense=pres];
10003 [udef_q<8:18> x num=sg pers=3];
10004 [_green+tea_n_1_rel<8:18> x num=sg pers=3];
0:/H -> 10002;
10001:RSTR/H -> 10000;
10002:ARG1/NEQ -> 10000;
10002:ARG2/NEQ -> 10004;
10003:RSTR/H -> 10004;
}
# 10002 -> 01170052-v[drink/lelesk]
# 10004 -> 07935152-n[green tea/lelesk]
...
For batch processing, create a text file with each sentence on a
separate line. For example here is the content of the file
``sample.txt``
::
I drink green tea.
Sherlock Holmes has three guard dogs.
A soul is not a living thing.
Do you have any green tea chest?
After that, run the following command and the output will be written to
the file ``demo_out.xml``
.. code:: bash
python -m coolisf parse demo.txt -o demo_out.xml
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`