All Projects → cognitum-octopus → cognipy

cognitum-octopus / cognipy

Licence: other
In-memory Graph Database and Knowledge Graph with Natural Language Interface, compatible with Pandas

Programming Languages

C#
18002 projects
prolog
421 projects
Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
Smarty
1635 projects
smalltalk
420 projects

Projects that are alternatives of or similar to cognipy

semantic-python-overview
(subjective) overview of projects which are related both to python and semantic technologies (RDF, OWL, Reasoning, ...)
Stars: ✭ 406 (+1209.68%)
Mutual labels:  sparql, rdf, owl, knowledge-graph
LinkedDataHub
The Knowledge Graph notebook. Apache license.
Stars: ✭ 150 (+383.87%)
Mutual labels:  sparql, rdf, owl, knowledge-graph
OLGA
an Ontology SDK
Stars: ✭ 36 (+16.13%)
Mutual labels:  sparql, rdf, owl, knowledge-graph
Kglab
Graph-Based Data Science: an abstraction layer in Python for building knowledge graphs, integrated with popular graph libraries – atop Pandas, RDFlib, pySHACL, RAPIDS, NetworkX, iGraph, PyVis, pslpython, pyarrow, etc.
Stars: ✭ 98 (+216.13%)
Mutual labels:  graph-algorithms, sparql, pandas, knowledge-graph
ont-api
ONT-API (OWL-API over Apache Jena)
Stars: ✭ 20 (-35.48%)
Mutual labels:  sparql, rdf, owl, jena
CSV2RDF
Streaming, transforming, SPARQL-based CSV to RDF converter. Apache license.
Stars: ✭ 48 (+54.84%)
Mutual labels:  sparql, rdf, knowledge-graph
Semanticmediawiki
🔗 Semantic MediaWiki turns MediaWiki into a knowledge management platform with query and export capabilities
Stars: ✭ 359 (+1058.06%)
Mutual labels:  sparql, rdf, knowledge-graph
Processor
Ontology-driven Linked Data processor and server for SPARQL backends. Apache License.
Stars: ✭ 54 (+74.19%)
Mutual labels:  sparql, rdf, knowledge-graph
Nspm
🤖 Neural SPARQL Machines for Knowledge Graph Question Answering.
Stars: ✭ 156 (+403.23%)
Mutual labels:  sparql, rdf, knowledge-graph
pyfuseki
A library that uses Python to connect and manipulate Jena Fuseki, which provides sync and async methods.
Stars: ✭ 22 (-29.03%)
Mutual labels:  sparql, rdf, owl
knowledge-graph-change-language
Tools for working with KGCL
Stars: ✭ 14 (-54.84%)
Mutual labels:  rdf, owl, knowledge-graph
mobi
Mobi is a decentralized, federated, and distributed graph data platform for teams and communities to publish and discover data, data models, and analytics that are instantly consumable.
Stars: ✭ 41 (+32.26%)
Mutual labels:  sparql, rdf, owl
stardog-language-servers
Language Servers for Stardog Languages
Stars: ✭ 19 (-38.71%)
Mutual labels:  sparql, rdf, knowledge-graph
sparklis
Sparklis is a query builder in natural language that allows people to explore and query SPARQL endpoints with all the power of SPARQL and without any knowledge of SPARQL.
Stars: ✭ 28 (-9.68%)
Mutual labels:  sparql, rdf, natural-language-interface
trio
Datatype agnostic triple store & query engine API
Stars: ✭ 78 (+151.61%)
Mutual labels:  sparql, rdf, memory-graph-database
LD-Connect
LD Connect is a Linked Data portal for IOS Press in collaboration with the STKO Lab at UC Santa Barbara.
Stars: ✭ 0 (-100%)
Mutual labels:  sparql, rdf, knowledge-graph
everything
The semantic desktop search engine
Stars: ✭ 22 (-29.03%)
Mutual labels:  sparql, rdf, knowledge-graph
calamus
A JSON-LD Serialization Libary for Python
Stars: ✭ 21 (-32.26%)
Mutual labels:  rdf, knowledge-graph
fibo
The Financial Industry Business Ontology (FIBO) defines the sets of things that are of interest in financial business applications and the ways that those things can relate to one another. In this way, FIBO can give meaning to any data (e.g., spreadsheets, relational databases, XML documents) that describe the business of finance.
Stars: ✭ 204 (+558.06%)
Mutual labels:  rdf, owl
corese
Software platform implementing and extending the standards of the Semantic Web.
Stars: ✭ 55 (+77.42%)
Mutual labels:  sparql, rdf

CogniPy

CogniPy for Pandas - In-memory Graph Database and Knowledge Graph with Natural Language Interface

Whats in the box

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:

  1. Write your graph/ontology in Controlled Natural Language or import it from RDF/OWL
  2. Add reasoning rules/T-Box in Controlled Natural Language
  3. Import data using Pandas or scrap them from the Internet
  4. Draw the resulting, materialized graph
  5. Use SPARQL to execute graph query
  6. Use output Dataframe for further processing with Pandas

Getting started

Installation

Prerequisites:

  • If you are on Mac or Linux You MUST have mono installed on your system.
  • Graph drawing based on pydot that is dependent on GraphViz - you should try to download and install it manually. Or just conda install pydot graphviz
  • Tested with Anaconda
  • Tested on MacOS, Winows and Linux (Ubuntu)

Install cognipy on your system using :

pip install cognipy

Hello world program

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

Examples

Example Jupyter notebooks that use CogniPy in several scenarios can be found in the Examples section

Cognipy documentation

Compiled documentation is stored on github pages here: Cognipy Documentation

Related research papers

  1. Semantic rules representation in controlled natural language in FluentEditor
  2. Collaborative Editing of Ontologies Using Fluent Editor and Ontorion
  3. Semantic OLAP with FluentEditor and Ontorion Semantic Excel Toolchain
  4. Ontology-aided software engineering
  5. Ontology of the Design Pattern Language for Smart Cities Systems

How to cite CogniPy

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"

Cognitum

Contributors

Open Source Libraries this project is build on

  1. IKVM
  2. CommandLineParser
  3. Newtonsoft.JSon
  4. ELK - ELK is an ontology reasoner that aims to support the OWL 2 EL profile. See http://elk.semanticweb.org/ for further information.
  5. HermiT - HermiT is a conformant OWL 2 DL reasoner that uses the direct semantics. It supports all OWL2 DL constructs and the datatypes required by the OWL 2 specification.
  6. Apache Jena - Jena is a Java framework for building semantic web applications. It provides tools and Java libraries to help you to develop semantic web and linked-data apps, tools and servers.
  7. OWLAPI

Building new version

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

FAQ

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].