Ah, now, that is a complicated question with a long history. If I may duck the question slightly, and just answer about OWL (it's not the only ontology representation language).
Trivially, of course, the answer is yes. An ontology is representable as a graph, but then a graph is a rich enough data structure to represent most things. Some ontologies fall into this category and are explicitly represented as DAGs; the Gene Ontology is my favourite example of this. OWL has a more complex semantics, so representation as a graph is a bit limiting; the formal, underlying semantics are either (a subset of) first-order logic, or alternatively a set theoretic equivalent. Trivially, for instance, with OWL you can distinguish between some hasTopping MozzarellaTopping only hasTopping MozzarellaTopping (a thing that has at least one topping which is a MozzarellaTopping, and a thing which can have any number of toppings including none, but all of which are MozzarellaToppings). As you build up the complexity the graph representation becomes unwieldy. Having said all of that, you can represent structurally simple ontologies in OWL, by only using a defined subset of the language. Tawny uses the underlying java libraries to check this is happening correctly. I should give a simple example; think of a library classification -- "science->biology->botany". This is a simple ontology. The SI system of units is another, rather different one. I realise that the barrier to entry for this is all quite high; it's one of the reasons I created (and others wrote) http://ontogenesis.knowledgeblog.org. Ontologies are currently still what I would class as a research area; they are used in specialist areas of (mostly) scientific development. Perhaps with tools like tawny, we can widen this somewhat. Phil atkaaz <atk...@gmail.com> writes: > Would you say that ontologies can be modeled on top of graphs? so in a way > they can be seen as a specific use case for graphs? (maybe directed acyclic > graphs), that's what I am getting the sense of so far > > > > On Wed, May 22, 2013 at 4:47 PM, atkaaz <atk...@gmail.com> wrote: > >> Thank you very much for this! I find it very interesting, I shall keep >> reading >> >> >> On Wed, May 22, 2013 at 4:24 PM, Phillip Lord < >> phillip.l...@newcastle.ac.uk> wrote: >> >>> >>> >>> 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. >>> >>> >>> >> > > -- -- 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.