It's a good question; the library is more intended for people who know
ontologies and don't care, or have never heard about, clojure. So the
documentation is biased in that way.

In this setting, an ontology is essentially a set of facts, that you can
test with a computational reasoner; so, it's something like logic
programming. I don't implement the reasoner -- someone else has done
that (in fact there are several). These reasoners can scale up to
100'000s of terms.

My example Pizza ontology shows it in use. 

https://github.com/phillord/tawny-pizza

So, you can make statements like

(defclass CheesyPizza
  :equivalent
  (owland Pizza
           (owlsome hasTopping CheeseTopping)))

and

(defclass MozzarellaTopping
   :subclass CheeseTopping)

and finally, 

(defclass MargheritaPizza
   :subclass
     (someonly hasTopping CheeseTopping TomatoTopping))

and the reasoner will work out that MargheritaPizza is a CheesyPizza.

In itself, this is simple, but you can build up more complex classes
like so.

(defclass VegetarianPizza
  :equivalent
  (owland Pizza
          (owlnot
           (owlsome hasTopping MeatTopping))
          (owlnot
           (owlsome hasTopping FishTopping))))

(defclass NonVegetarianPizza
  :equivalent
  (owland Pizza (owlnot VegetarianPizza)))

Of course, really takes flight when you have large ontologies. FMA which
models human anatomy, has I think, about 100,000 terms. SNOMED (ways you
can get ill) has millions.

Now there are lots of tools for building these; the novelty with tawny
is that the "raw" syntax is relatively simple (most of tawny-pizza does
not look like a programming language), but it is entirely programmatic;
so, it is possible to automate, build patterns, and integrate with
external infrastructure all in one place. I think that this is going to
be very useful, but we shall see!

While I am interested in biomedical and scientific ontologies, there are
lots of other applications. Probably the most famous one at the moment
is Siri (the iphone thingy) which is ontological powered underneath.

There are quite a few articles, varying in scope on ontologies on
ontogenesis http://ontogenesis.knowledgeblog.org. 

It is a very valid point, though. I should write some documentation on
ontologies for programmers. I shall work on it!

Phil


atkaaz <atk...@gmail.com> writes:

> For those who don't know the concepts (aka me) can we get a working example
> of what can be done ? I'm having a strange feeling that ontologies(although
> I've never heard the word/idea before except from you) might be something
> similar to what I am searching for...
>
> Possibly an example that showcases everything that can be done ? though
> that might be too much to ask, or perhaps suggest a link url to something
> that might help (me) understand ?
>
> Thanks.
>
>
> On Wed, May 22, 2013 at 2:41 PM, Phillip Lord
> <phillip.l...@newcastle.ac.uk>wrote:
>
>>
>> I'm pleased to announce the release of tawny-owl 0.11.
>>
>> What is it?
>> ==========
>>
>> 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.
>>
>> Changes
>> =======
>>
>> # 0.11
>>
>> ## New features
>>
>> - facts on individual are now supported
>> - documentation has been greatly extended
>> - OWL API 3.4.4
>>
>>
>> A new paper on the motivation and use cases for tawny-owl is also
>> available at http://www.russet.org.uk/blog/2366
>>
>> https://github.com/phillord/tawny-owl
>>
>> Feedback welcome!
>>
>> --
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
> -- 

-- 
Phillip Lord,                           Phone: +44 (0) 191 222 7827
Lecturer in Bioinformatics,             Email: phillip.l...@newcastle.ac.uk
School of Computing Science,            
http://homepages.cs.ncl.ac.uk/phillip.lord
Room 914 Claremont Tower,               skype: russet_apples
Newcastle University,                   twitter: phillord
NE1 7RU                                 

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to