• Stars
    star
    251
  • Rank 161,862 (Top 4 %)
  • Language
    Clojure
  • License
    GNU Lesser Genera...
  • Created almost 12 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build OWL Ontologies in a Programmatic Environment

Tawny-OWL

Build Status

Introduction

Tawny Logo

Tawny-OWL allows construction of OWL ontologies, in a evaluative, functional and fully programmatic environment. Think of it as the ontology engineering equivalent of R. It has many advantages over traditional ontology engineering tools, also described in a video introduction.

  • An interactive shell or REPL to explore and create ontologies.
  • Source code, with comments, editable using any of a range of IDEs.
  • Fully extensible -- new syntaxes, new data sources can be added by users
  • Patterns can be created for individual ontologies; related classes can be built easily, accurately and maintainably.
  • A unit test framework with fully reasoning.
  • A clean syntax for versioning with any VCS, integrated with the IDE
  • Support for packaging, dependency resolution and publication
  • Enabled continuous integration with both ontology and software dependencies

Tawny-OWL is implemented as a domain-specific language but built over a full programming language called Clojure. Many of the features described (REPL, patterns, unit tests, extensibility) derive directly from the Clojure language, or from general-purpose programming tools (IDEs, versioning, continuous integration). The core ontology features are implemented directly using the OWL API. These features are, therefore, industry strength, standards-compliant and well-supported independently of the Tawny-OWL developers.

OWL is a W3C standard ontology representation language; an ontology is a fully computable set of statements, describing the things and their relationships. They are used, mostly notable in biomedicine, to describe complex areas of knowledge such as genetics or clinical terminology, but can describe anything, including e-commerce. For more tutorial information, please see http://ontogenesis.knowledgeblog.org.

A full-length manual is also available. The original, slightly older getting started document is available.

For the Clojure developer

Tawny-OWL is predominately designed as a programmatic application for ontology development, but it can be used as an API. OWL ontologies are a set of statements about things and their relationships; underneath these statements map to a subset of first-order logic which makes it possible to answer questions about these statements using highly-optimised reasoners.

Currently, the use of ontologies as a tool within general-purpose programming is relatively under-developed. Part of the intention behind Tawny-OWL is to embed ontologies deeply within a programmatic framework, to see whether ontologies are useful in this way.

Further information on the use of Tawny-OWL is available in the documentation.

Motivation

I discuss the development of this code base in my journal. Two posts include one on the motivation and another on making the library more "lispy". All revelevant posts are categorised.

Installation

Tawny-OWL requires no installation per se and is used as any Clojure library. It is available from clojars, so just add:

[uk.org.russet/tawny-owl] to your project.clj file.

I use Leiningen 2 on the current version 16.04 Ubuntu and, occasionally, on Windows. Editing of both tawny-owl and the ontologies using it, is with Emacs 25 using Clojure mode and nrepl, currently both installed from their respective versioning systems. The library should not depend on this environment, however.

Author

Phillip Lord, Newcastle University.

http://www.russet.org.uk/blog

Mailing List

There is a mailing list.

Version

Clojars Project

License

The contents of this file are subject to the LGPL License, Version 3.0.

Copyright (C) 2012, 2013, Newcastle University

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

More Repositories

1

lentic

Create views of the same content in two Emacs buffers
Emacs Lisp
183
star
2

horned-owl

Rust
65
star
3

mathjax-latex

Wordpress Plugin for MathJax mathematics renderer
PHP
57
star
4

hermit-reasoner

HTML
51
star
5

assess

Test support functions for Emacs
Emacs Lisp
32
star
6

m-buffer-el

List Oriented Buffer Operations for Emacs
Emacs Lisp
26
star
7

pabbrev

Predictive Abbreviation Expansion for Emacs
Emacs Lisp
20
star
8

protege-nrepl

A NREPL client for Protege
Clojure
12
star
9

owl-api

Interacting with OWL Ontologies
Java
10
star
10

lentic-server

A literate web server for Emacs
Emacs Lisp
8
star
11

identitas

Make identitifiers in lots of Ways
Clojure
8
star
12

tawny-tutorial

A Tutorial for Tawny-OWL library
Clojure
7
star
13

take-wing

Building Ontologies in Tawny-OWL
TeX
7
star
14

hermit-maven

A mavenized version of the HermiT DL reasoner
Java
7
star
15

tawny-pizza

The Pizza Ontology in Tawny OWL
Clojure
6
star
16

lein-sync

Sync an existing REPL to the current Leiningen Project
Emacs Lisp
6
star
17

tawny-protege

Link between Tawny-OWL and Protege
Clojure
5
star
18

emacs-tutorial

A potential new tutorial for Emacs
5
star
19

phil-emacs-packages

A variety of Emacs packages
Emacs Lisp
5
star
20

protege-tawny

Bringing the Power of Tawny-OWL to Protege
Java
4
star
21

paredit-menu

A menu for paredit
Emacs Lisp
4
star
22

owl-primer

The OWL Primer ontology written in Tawny-OWL
Clojure
4
star
23

tawny.upper

An Upper Level ontology, using tawny-owl.
Clojure
4
star
24

pretty_rdf

Rust
4
star
25

literate_omn

Python
3
star
26

tawny-simple

Simple Reasoning Examples, using tawny-owl
Clojure
3
star
27

kcite

A reference list generator for Wordpress
JavaScript
3
star
28

newcastle-semester-weeks

Make an ICAL feed for Newcastle Calendar weeks
Python
3
star
29

enum_meta

Add metadata to all enum variants in rust
Rust
2
star
30

primitive-operator

Access integer and float operators in Clojure
Clojure
2
star
31

at-collection

Rust
2
star
32

tmmofl

Emacs Lisp
2
star
33

kblog-include

Transclude content from arXiv and other repositories in Wordpress
PHP
2
star
34

tawny-obi

A tawny-owl import for the OBI ontology
Clojure
2
star
35

jde-with-clojure-backend

A exemplar structure for JDE with a Clojure nrepl backend
Emacs Lisp
2
star
36

tawny-skos

The SKOS vocabularies in tawny-owl
Clojure
1
star
37

visitor-benchmark

Clojure
1
star
38

big-owl

Makefile
1
star
39

raptor-rs

Rust
1
star
40

evm-tester

1
star
41

go-patterns

Clojure
1
star
42

kblog-metadata

Generate and Visualise metadata for Wordpress Articles
PHP
1
star
43

hyper-go

Clojure
1
star
44

impl-iterator-bench

Rust
1
star
45

namespace-experiments

Clojure
1
star
46

kblog-test-cases

Test cases for kblog
Python
1
star
47

go-hypernormalised

Clojure
1
star
48

tawny-bfo

Tawny-OWL import of BFO
Clojure
1
star
49

plugin-inject

Clojure
1
star
50

yasnippet-commented-licence

Yasnippet Licence generator
Emacs Lisp
1
star
51

wide-column

Emacs Lisp
1
star
52

paredit-pause

Emacs Lisp
1
star
53

ubuntu-emacs

Attempts to build an PPA for Emacs
Shell
1
star
54

arbiter

Python
1
star
55

tawny-bubo

Automated Scripting Framework for Tawny-OWL
Clojure
1
star
56

tawny-go

An import of the GO ontology into Tawny-OWL
Clojure
1
star
57

small

Small, Fast data structures for Clojure
Clojure
1
star
58

omn-mode

Emacs Lisp
1
star