All Projects → bio-ontology-research-group → walking-rdf-and-owl

bio-ontology-research-group / walking-rdf-and-owl

Licence: BSD-3-Clause license
Feature learning over RDF data and OWL ontologies

Programming Languages

python
139335 projects - #7 most used programming language
groovy
2714 projects
Makefile
30231 projects
Batchfile
5799 projects
C++
36643 projects - #6 most used programming language
shell
77523 projects
TeX
3793 projects

Projects that are alternatives of or similar to walking-rdf-and-owl

ont-api
ONT-API (OWL-API over Apache Jena)
Stars: ✭ 20 (-51.22%)
Mutual labels:  semantic-web, owl, rdf-graph
semantic-python-overview
(subjective) overview of projects which are related both to python and semantic technologies (RDF, OWL, Reasoning, ...)
Stars: ✭ 406 (+890.24%)
Mutual labels:  semantic-web, owl
bioportal web ui
A Rails application for biological ontologies
Stars: ✭ 20 (-51.22%)
Mutual labels:  semantic-web, owl
Archived-SANSA-ML
SANSA Machine Learning Layer
Stars: ✭ 39 (-4.88%)
Mutual labels:  semantic-web, owl
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 (+0%)
Mutual labels:  semantic-web, owl
pronto
A Python frontend to (Open Biomedical) Ontologies.
Stars: ✭ 202 (+392.68%)
Mutual labels:  semantic-web, owl
cowl
A lightweight C/C++ library for working with Web Ontology Language (OWL) ontologies
Stars: ✭ 18 (-56.1%)
Mutual labels:  semantic-web, owl
OLGA
an Ontology SDK
Stars: ✭ 36 (-12.2%)
Mutual labels:  semantic-web, owl
PheKnowLator
PheKnowLator: Heterogeneous Biomedical Knowledge Graphs and Benchmarks Constructed Under Alternative Semantic Models
Stars: ✭ 74 (+80.49%)
Mutual labels:  semantic-web, owl
cell-ontology
An ontology of cell types
Stars: ✭ 75 (+82.93%)
Mutual labels:  semantic-web, owl
lsw2
OWL and Semantic Web toolkit for Common Lisp, used for construction and reasoning over ontologies and ontology-structured data
Stars: ✭ 22 (-46.34%)
Mutual labels:  semantic-web, owl
semantic-web
Storing ontologies/vocabularies from the web. Wish anybody can translate some of them.
Stars: ✭ 114 (+178.05%)
Mutual labels:  semantic-web, owl
LinkedDataHub
The Knowledge Graph notebook. Apache license.
Stars: ✭ 150 (+265.85%)
Mutual labels:  semantic-web, owl
obi
The Ontology for Biomedical Investigations
Stars: ✭ 49 (+19.51%)
Mutual labels:  semantic-web, owl
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 120 (+192.68%)
Mutual labels:  semantic-web
Php Json Ld
PHP implementation of a JSON-LD Processor and API
Stars: ✭ 246 (+500%)
Mutual labels:  semantic-web
Hypergraphql
GraphQL interface for querying and serving linked data on the Web.
Stars: ✭ 112 (+173.17%)
Mutual labels:  semantic-web
Rdf.sh
A multi-tool shell script for doing Semantic Web jobs on the command line.
Stars: ✭ 109 (+165.85%)
Mutual labels:  semantic-web
melt
MELT - Matching EvaLuation Toolkit
Stars: ✭ 37 (-9.76%)
Mutual labels:  semantic-web
Rdf4j
Eclipse RDF4J: scalable RDF for Java
Stars: ✭ 242 (+490.24%)
Mutual labels:  semantic-web

Walking RDF and OWL

Feature learning on RDF and OWL (i.e., Description Logic theories).

Here are some scripts to facilitate building the graph, classifying it and learning its node representations:

To run: groovy RDFWrapper and follow instructions. The input is an RDF graph and the output file can be used as input for the modified DeepWalk tool available as part of this repository (https://github.com/bio-ontology-research-group/walking-rdf-and-owl/tree/master/deepwalk_rdf).

For example, to classify the RDF graph RDFgraph.nt using the OWL ontologies in onto_dir with the ELK reasoner, and writing an edge list representation of the inferred graph to outWrapper.txt, use the following command:

groovy RDFWrapper.groovy -i RDFgraph.nt -o outWrapper.txt -m mappingFile.txt -d onto_dir -c true 

To generate representations (embeddings) of the nodes (and edges) in the RDF graph, run

deepwalk --workers 64 --representation-size 256 --format edgelist --input outWrapper.txt  --output out.txt --window-size 5 --number-walks 500 --walk-length 40

to learn an embedding of size 256 using 64 parallel workers based on 500 walks of length 40 for each node. The deepwalk needs to be the modified version contained in this repository so that object properties are taken into account during the walk.

We also provided the algorithm with the option to allow walking from specific nodes only, by adding an excludelist parameter, which contains the identifiers of nodes to be excluded from the walks and therefore restrict walks to those that start from the remaining nodes. This modified version may provide faster training.

deepwalk --workers 48  --walk-length 20 --window-size 10 --number-walks 100 --representation-size 512 --format edgelist --excludlist exnodes.txt  --input outWrapper.txt --output outDeep.txt

To run the C++ multi-threaded implementation of the corpus generation modele, you need to have the C++ Boost libraries installed; on an Ubuntu system, you can do:

sudo apt-get install libboost-all-dev

You also need to install the Boost Threadpool Header files. Once all header files and libraries are installed, just type make to compile and run deepwalk

./deepwalk edgelistfile.txt walksfile.txt

Classification support

The RDFWrapper script comes with built-in support for OWL classification. Use this when your RDF dataset contains references to ontologies and the full ontology. In the script we provide, we use the ELK reasoner (which supports the OWL 2 EL profile) to classify the ontology and infer class assertion axioms for all individuals. These are added to the RDF dataset following classification and used to build the graph.

Example

An example knowledge graph and the resulting embeddings can be found here:

How to cite

If you use our code, please cite our paper: Alsharani et al. Neuro-symbolic representation learning on biological knowledge graphs. Bioinformatics 2017. link

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].