Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/feup-infolab/ontologies-database

A simple ontology database in-memory object. Can refresh itself from a list in ontologies_list.txt
https://github.com/feup-infolab/ontologies-database

loading lov ontologies virtuoso

Last synced: about 1 month ago
JSON representation

A simple ontology database in-memory object. Can refresh itself from a list in ontologies_list.txt

Awesome Lists containing this project

README

        

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d91a3e0705ac4dcdad426171a209cadc)](https://www.codacy.com/app/silvae86/ontologies-database?utm_source=github.com&utm_medium=referral&utm_content=feup-infolab/ontologies-database&utm_campaign=Badge_Grade)
[![Build Status](https://travis-ci.org/feup-infolab/ontologies-database.svg?branch=master)](https://travis-ci.org/feup-infolab/ontologies-database)
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/d91a3e0705ac4dcdad426171a209cadc)](https://www.codacy.com/app/silvae86/ontologies-database?utm_source=github.com&utm_medium=referral&utm_content=feup-infolab/ontologies-database&utm_campaign=Badge_Coverage)
[![npm version](https://badge.fury.io/js/%40feup-infolab%2Fontologies-database.svg)](https://badge.fury.io/js/%40feup-infolab%2Fontologies-database)

# An ontology repository for your OpenLink Virtuoso Instances

We all know how hard it is to find ontologies on the web to load into our triple store as separate graphs.
The [Linked Open Vocabularies](http://lov.okfn.org/dataset/lov/) website helps a lot, but their dumps are in `.nq` format (n-Quads) and you will struggle quite a lot to try to translate them into `.n3` or any other format that Virtuoso accepts.

`ontologies-database` is intended as

* A repository of ontologies on GitHub, in `.rdf` or `.owl` for easy loading into Virtuoso
* A download script that, given a list of ontology URIs in a `.txt` file, will attempt to downlod all those ontologies
* A script to load those ontologies into separate graphs in a Virtuoso Instance running on `localhost`, via Virtuoso's `isql` utility.

## Quickstart guide

This script is intended as a way to automatically fetch ontologies and load them into an OpenLink Virtuoso instance.

First, clone the repo:

````bash
git clone https://github.com/feup-infolab/ontologies-database.git
cd ontologies-database
````

Then, run the loading script:

````bash
chmod +x ./load_ontologies_into_virtuoso.sh
./load_ontologies_into_virtuoso.sh ontologies_list.txt
````

Your Virtuoso instance will then be loaded with all the ontologies in the `downloaded/` folder, each in its own graph.

## Reloading the database

Ontologies can evolve, so we will periodically run the script and update this repository. If you want to refresh the ontologies in the `downloaded/` folder by yourself:

- Place the updated list of ontologies in the `ontologies_list.txt` file
- Install nvm
````bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
````
- Install NodeJS 8.9.0
````bash
nvm install 8.9.0
````

- Activate NodeJS 8.9.0
````bash
nvm use 8.9.0
````

- Run the updating script. This will attempt to re-download all ontologies in the list, if they are in `.owl` or `.rdf` format.
````bash
npm run
````

## How we built the ontologies_map.txt file

The list of ontology URIs in `ontologies_list.txt` was produced by:

1. Downloading the LOV dump (in `.n3`) from [here](http://lov.okfn.org/dataset/lov/sparql).

2. Loading the file into Virtuoso via the Quad Store upload function (ironic name, as it support uploading nQuads, only triples... Just call it Triple Store upload, no? But I digress...)

3. Running the following query in the Conductor:

````sparql
WITH
SELECT ?s
WHERE
{
?s rdf:type
}
````