During my short stay at EBI, Egon had kindly arranged an opportunity to talk to Janna from the Steinbeck group, about some interesting work she has done on searching for cage structures in molecules, using Prolog, so we met over a coffee, together with Nico who's now at the Steinbeck group (visiting).
Bot Nico and Janna kindly gave a lot of good advice about research in general (as I'm currently looking into possibly doing PhD somewhere), which I highly appreciated. :)
And we talked some about the original topic too :), that is the cage structure problem. The cage structure problem is kind of an extension to the problem of expressing rings, which has previously been reported as a problem for OWL-DL. So because of this, it is interesting that Janna came up with a working solution, using Prolog.
As a highlighting example from the DL-side, Michel Dumontier has done some work on representing molecules, including rings. But they also had to use rules, not plain OWL.
So that seem to be the general conclusion: In order to express ring structures (or extensions of it, such as cage structures), you'll need to use rules in some way.
Unfortunatly my project is now running out of time, so I might not have much time to look more into this topic as part of my project :(. Will see if I can include this as a part of another course I still have to finish ("knowledge based systems in bioinformatics"), but that remains to see.
EDIT (19/2): The problem with doing this with a SPARQL query, is now solved! See this blog post.
Thought I should write up on my NMRSpectrum similarity search problem, which I've got quite stuck with ... even after trying to get some advice from Semantic Overflow. So ... here we go.
I have a problem that I can't seem to express successfully in either pure SPARQL nor using OWL class descriptions, seemingly because the problem combines lists, property chains, and numerical value constraints, in a troublesome mix.
Just got to know there is something called "OWL (2) profiles", which basically seems to be certain sets of restrictions one can infer on what you can express, with the aim to make certain usage patterns possible.
OWL 2 RL seems particularly interesting for my concern, since it is (according to the above link) meant to be "a syntactic subset of OWL 2 which is amenable to implementation using rule-based technologies", and rule-based technologies is exactly what I'm looking at with SWI-Prolog and BLIPKIT.
Found a very interesting quote:
"Both OWL-DL and function-free Horn rules are decidable fragments of first-order logic with interesting, yet orthogonal expressive power"
"Horn rules", is what prolog builds upon (a prolog statement are horn rules, AFAIS), so maybe Prolog fits into the category of "function-free horn rules"? (Gotta try to figure that out), and OWL-DL is the W3C standard for expressive semantics, that reasoners like pellet (which is available in bioclipse build upon.
I seemingly ran into the trouble that user-defined datatypes does not work in OWL 1.X (which is seemingly what the version of Pellet used in Bioclipse does support?
Talking about BLIPKIT, the Thea library - for reading OWL2 ontologies directly from within SWI-Prolog - seems relevant for this project, as a complement to BLIPKIT. It's written (partly) by the author of BLIPKIT.
Some features I noted:
I finally found a summary that contrasts RDF, RDF Schema, OWL, and rule languages (SWRL in this case) in a few sentences: