My inaugural [@url:www.russet.org.uk/blog/2968] book-review is for
Clojure High Performance Programming, by Shantanu Kumar.
Unfortunately, for my first review, I cannot be that positive about the
book. I found it rather disorganised and chaotic. Concepts are
introduced and then briefly discussed, occasionally cross-referenced
later. It is often not clear what the relevance of this to programming
in Clojure. For instance, we are introduced to branch prediction in
modern processors. Not something I know about, so perhaps useful to
understand. But it's not explained why this would be useful to know
about. Are there any code examples that show how branch prediction can
impact on the performance of my code? Likewise, different forms of CPU
interconnect. Or L1,2 and 3 caches. I have the general …
I am please to announce the first full release of Tawny-OWL, my library
for fully programmatic development of OWL ontologies. The library now
has a fairly large feature set:
Complete support for OWL2
Integrated support for reasoning with HermiT or ELK
Fixtures and support macros for unit testing
Use of external ontologies available only as OWL files
Rendering of OWL API objects to Tawny code.
Support for generating and using ontologies with numeric IDs.
Support for multilingual labels.
Additionally, I now have initial integration with Protege, described
The library is now available from
clojars or on
Feedback is welcome at email@example.com.
A little over a year ago, I first described my experiments with building
In this post, I will describe what I call connection points and
explain how they can be used to enable modularity and overcome problems
with scalability of reasoning in OWL.
One of the recurrent problems with building ontologies is mission creep;
what starts simple rapidly expands until many different areas of the
world are described.
I faced this problem recently, when I was asked about the axiomatisation
that I described in my paper about function
[@url:arxiv.org/abs/1309.5984] Well, the axiomatisation exists, but it
was never very complete; so, I thought I should redo it, probably with
To start off with a simple declaration of function, we might choose
something like this:
:subclass (only realisedIn nProcess))
Or, in rou…
I have finally got around to releasing
kblog-include, a plugin
that I first alluded sometime previously
[@url:www.russet.org.uk/blog/2367] This plugin allows Wordpress to
transclude content from
arXiv and potentially any
OAI-PMH repository. When used from
arXiv the date, authors and title are set (and
installed also), and the abstract is added in place.
I've been using this for sometime now; in fact my last article
[@url:www.russet.org.uk/blog/2948] is an example.
Feedback welcome, as always.
Plain English Summary
There are many database resources which describe biological entities
such as proteins, and genes available to the researcher. These are used
by both biologists and medics to understand how biological systems work
which has implications for many areas. These databases store information
of various sorts, called annotation: some of this is highly organised or
structured knowledge; some is free text, written in English.
The quantity of this material available means that having a computation
method to check the annotation is desirable. The structured knowledge is
easier to check because it is organised. The free text knowledge is much
Most methods of analysing free text are based around "normal…
I am pleased to announce the release of tawny-owl, Version 0.12.
This package allows users to construct OWL ontologies in a fully
programmatic environment, namely Clojure. This means the user can take
advantage of programmatic language to automate and abstract the ontology
over the development process; also, rather than requiring the creation
of ontology specific development environments, a normal programming IDE
can be used; finally, a human readable text format means that we can
integrate with the standard tooling for versioning and distributed
OWL is a W3C standard ontology representation language; an ontology is a
fully computable set of statements, describing the things and their
relationships. These statements can be reasoned over, inferences made
and contradictions dete…
A few weeks back, I went to see Neil Young at the Academy. This
represents quite a few firsts for me: although I've loved his stuff for
years, this is the first time that I have seen Neil Young live, and
likewise Crazy Horse. It's also the first gig that I have been to for
quite a while. I have never got over the sense of excitement of live
music and this has only been increased by its rarity. I was definately
looking forward to it.
Set against this, the Metro Arena is not my favourite sort of venue.
Large venues such as this are fairly soulless places. The arena fits
squarely into this category; like a football stadium, seats too small
and uncomfortable. Moving around involves lots of shuffling around in
The stage set consisted of a Crazy Horse banner, some enormous packing
Although it appears fairly innocuous, the last
to tawny-owl seems momentus to me. While I still need to go through the
spec line-by-line, and the code needs some clean up, this commit
essentially represents the completion of the tawny.owl namespace; the
addition of data properties and data types was the last part of the spec
that I have to fulfil.
When I started off the tawny-owl library in October
[@url:www.russet.org.uk/blog/2214] I was most interested in getting a
test environment, and the ability to use a normal editor. Subsequently,
and particularly in the course of writing up my first paper on this
library [@url:www.russet.org.uk/blog/2366] it became obvious to me that
I needed to support all of OWL2. I think I have achieved my original
design motivations and some more besides…
Tawny-OWL [@url:www.russet.org.uk/blog/2214] is a library which enables
the programmatic construction of OWL [@url:www.russet.org.uk/blog/2366]
One of the limitations with tawny as it stands is that it did not
implement numeric, semantics free identifiers
[@url:www.russet.org.uk/blog/2040] tawny builds identifiers from the
clojure symbols used to describe the class. So, in my pizza
ontology, for instance,
PizzaTopping gets an iri ending in PizzaTopping. Semantics free
identifiers have some significant advantages; the principle one is that
the establish an identity for an object which can persist even if the
properties (the labels for instance) change, as I have described
However, semantics-free identifiers do not come for free; they also have
Plain English Summary
Academic literature makes heavy of references; effectively links to
other, previous work that supports, or contradicts the current work.
This referencing is still largely textual, rather than using a hyperlink
as is common on the web. As well as being time consuming for the author,
it also difficult to extract the references computationally, as the
references are formatted in many different ways.
Previously, we have described a system which works with identifiers such
as ArXiv IDs (used to reference this article above!), PubMed IDs and
DOIs. With this system, called kcite, the author supplies the ID, and
kcite generates the reference list, leaving the ID underneath which is
easy to extract computationa…