Clojure High Performance Programming

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 …

Tawny 1.0

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 Profile checking 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 later. The library is now available from clojars or on github. Feedback is welcome at tawny-owl@googlegroups.com. Background A little over a year ago, I first described my experiments with building a pro…

Ontology Connection Points

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 Tawny-OWL [@url:www.russet.org.uk/blog/2366] To start off with a simple declaration of function, we might choose something like this: (defclass Function :subclass (only realisedIn nProcess)) Or, in rou…

Kblog-Include

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 advertised if kblog-metadata is 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.

Temporary Title

Abstract [kblog-inc server="arxiv"]1308.4618[/kblog-inc] 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 harder. Most methods of analysing free text are based around "normal…

Tawny 0.12

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 development. 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…

Neil Young at the Academy

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 big queues. The stage set consisted of a Crazy Horse banner, some enormous packing ca…

Data Properties in Tawny

Although it appears fairly innocuous, the last commit 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…

Supporting OBO style identifiers in Tawny

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 previously [@url:www.russet.org.uk/blog/1908] However, semantics-free identifiers do not come for free; they also have s…

Temporary Title

Abstract [kblog-inc server="arxiv"]1304.7151[/kblog-inc] 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…