In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas
Reasoning, exploration of RDF/OWL, FluentEditor CNL files, with OWL/RL Reasoner (Jena) as well as SPARQL Graph queries (Jena) and visualization.
What you can do with this:
Prerequisites:
conda install pydot graphviz
Install cognipy
on your system using :
pip install cognipy
In Jupyter you write:
from cognipy.ontology import Ontology #the ontology processing class
%%writefile hello.encnl
World says Hello.
Hello is a word.
onto = Ontology("cnl/file","hello.encnl")
print(onto.select_instances_of("a thing that says a word")[["says","Instance"]])
Output (Pandas DataFrame):
says Instance 0 Hello World
Example Jupyter notebooks that use CogniPy in several scenarios can be found in the Examples section
Compiled documentation is stored on github pages here: Cognipy Documentation
We would be grateful if scientific publications resulting from projects that make use of CogniPy would include the following sentence in the acknowledgments section: "This work was conducted using the CogniPy package, which is an open-source project maintained by Cognitum Services S.A. https://www.cognitum.eu"
nuget restore cognipy\CogniPy.sln
msbuild cognipy\CogniPy.sln /t:Rebuild /p:Configuration=Release /p:Platform="any cpu"
python setup.py bdist_wheel
python -m twine upload dist/* --verbose
Why it is done this way?
The software emerged as an offspring of FluentEditor and therefore it has some common parts. One of them is the .net. We are planning to move these parts to java so whole stack will be more technology consistent. The convert_to_java
branch already contains the project files converted automatically from .net to java. Anyway, manual crafting is now required to make it all work.