I agree with Jans and John about the usefulness of Prolog and logic programming more generally. Apologies for the length of this message.
We developed our own OWL+SWRL+Prolog tool during research in 2004-2007, i.e., translating OWL ontologies, SWRL rules into Prolog, and developing a composite Prolog interpreter/compiler for more efficient runtime reasoning. We had to develop our own back then because there were no such implemented systems. Now, of course there are, including some hybrid systems and SILK.
We bootstrapped from some of the initial theoretical papers on this intersection, and ended up only providing a subset of OWL, the part we needed. We didn’t develop most of the Boolean anonymous classes and the cardinality restrictions (we wanted to use specific restricted quantifiers). We also did a bit of useful trickery -- i.e., for some of the SWRL-introduced existential quantifiers (for which we generally used Skolem constants) and which are or can be integrity constraints or just a kind of unknown but certain query response (John has some-father-f12 , but you don’t know who) – by actually asserting in the knowledge base an individual (say, father-f12) on which we could drape additional properties. We also used multiple forms of negation: the usual negation by finite failure of Prolog (also used by the database community generally), but also a kind of constructive logical negation. The tension was between the Open World Assumption of OWL and the Closed World Assumption of Prolog.
We also used various knowledge compilation techniques (e.g., extensionalizing, etc.) to make the efficient runtime Prolog system more efficient. But the latter techniques are used in many Prologs and especially deductive database systems. Probably the best latter such that we’ve found is the HighFleet (formerly Ontology Works) system, but we know that Cyc’s reasoning also includes many such techniques, for a couple of examples. Knowledge compilation is a vastly underserved topic of research in recent years, in my estimation.
We also did a very quick (2-3 part-time months) comparison, a year or two after we developed our system, between Prolog and Answer Set Programming (ASP), two alternative logic programming paradigms. We found ASP to offer some real advantages.
In addition, we later did some work using the Prover9 theorem-prover to generate possible compositions of web services.
Here are some useful references, largely pulled from our papers (but just a subset, there are many more on Description Logic Programming (DLP) and ASP):
Samuel, Ken; Leo Obrst; Suzette Stoutenberg; Karen Fox; Paul Franklin; Adrian Johnson; Ken Laskey; Deborah Nichols; Steve Lopez; and Jason Peterson. 2008. Applying Prolog to Semantic Web Ontologies & Rules: Moving Toward Description Logic Programs. The Journal of the Theory and Practice of Logic Programming (TPLP), Massimo Marchiori, ed., Cambridge University Press, Volume 8, Issue 03, May 2008, pp 301-322. http://journals.cambridge.org/action/displayAbstract;jsessionid=564053DB808528C03B8238D8FBAE704C.tomcat1?fromPage=online&aid=1853440http://journals.cambridge.org/action/displayAbstract?fromPage=online&aid=1853440.
Ken Samuel; Leo Obrst. 2007. Answer Set Programming: Final Report on a Comparison Between ASP and Prolog for Semantic Web Ontology and Rule Reasoning. October, 2007. MITRE Technical Report MTR090069. [Available on request]
Baral Chitta Knowledge Representation, Reasoning, and Declarative Problem Solving [Book]. - Cambridge : Cambridge University Press, 2003. - p. 544. - ISBN: 0521818028.
Cadoli, M. and Donini, F. M. 1997. A survey on knowledge compilation. AI
Communications—The European Journal for Artificial Intelligence, 10:137–50.
Darwiche, A. and Marquis, P. 2002. A knowledge compilation map. Journal of
Artificial Intelligence Research (JAIR), 17:229–64. [Online at http://www.cs.ucla.edu/
∼darwiche/d116.pdf, accessed 12 Sep 2007].
Eiter, T., Lukasiewicz, T., Schindlauer, R. and Tompits, Hans 2004. Combining answer
set programming with description logics for the semantic Web. Proc. of the 9th International
Conference on Principles of Knowledge Representation and Reasoning (KR’04).
Grosof, B. N., Horrocks, I., Volz, R. and Decker, S. 2003. Description logic programs:
Combining logic programs with description logic. Proc. of the Twelfth International World
Wide Web Conference (WWW 2003). Budapest, Hungary: ACM, May 20–23, 2003,
Heymans, S. and Vermeir, D. 2003. Integrating description logics and answer set
programming. Principles and Practice of Semantic Web Reasoning (PPSWR-03), Lecture
Notes in Computer Science 2901. Mumbai, India: Springer Verlag, pp. 146–59.
Horrocks, I., Patel-Schneider, P. F., Boley, H., Tabet, S., Grosof, B. and Dean, M.
2004. SWRL: A semantic web rule language combining OWL and ruleML”. http://
www.daml.org/rules/proposal/ [Accessed 12 Sep 2007].
Kautz, H. and Selman, B. 1994. An empirical evaluation of knowledge compilation. In
Proc. of the 12th National Conference of the American Association for Artificial Intelligence.
Seattle, WA, July 1994, MIT Press, pp. 155–61.
Kautz, H. A. and Selman, B. 1991. A general framework for knowledge compilation. In Proc.
of the International Workshop on Processing Declarative Knowledge (PDK-91). Richter,
H. and Richter, M. (eds), Lecture Notes In Artificial Intelligence 567. Springer Verlag,
pp. 287–300. [Online at www.cs.rochester.edu/u/www/u/kautz/papers/kc-gen.ps, accessed
12 Sep 2007].
Maedche, A. and Volz, R. 2003. Optimizing query answering in description logics using
disjunctive deductive databases. 10th International Workshop on Knowledge Representation
meets Databases (KRDB-2003), Hamburg, Germany, Sept 15–16, 2003.
Minker, J. and Seipel, D. 2002. Disjunctive logic programming: A survey and assessment.
Computational Logic: Logic Programming and Beyond, pp. 472–511.
Peterson, B.; W.A. Andersen; and J. Engel. Knowledge Bus: Generating Application Focused Databases from Large Ontologies".
In Proceedings of the 5th Workshop KRDB98, Seattle, WA, USA, May 1998. http://www.cs.umbc.edu/771/papers/krdb98-kbus.pdf.
Selman, B. and Kautz, H. A. 1991. Knowledge compilation using horn approximations. Proc.
of the Ninth National Conference on Artificial Intelligence (AAAI91), pp. 904–9, [Online at
www.cs.rochester.edu/u/www/u/kautz/papers/kc-horn.ps, accessed 12 Sep 2007].
Selman, B. and Kautz, H. 1996. Knowledge compilation and theory approximation. Journal
of the ACM 43(2):193–224, March, 1996.
Volz R. 2004. Web Ontology Reasoning with Logic Databases. PhD thesis, AIFB, University
Volz, R., Decker, S. and Oberle, D. 2003. Bubo-Implementing OWL in rule-based systems.
http://www.daml.org/listarchive/joint-committee/att-1254/01-bubo.pdf [Accessed 12 Sep
Dr. Leo Obrst The MITRE Corporation, Information Semantics
lobrst@xxxxxxxxx Information Discovery & Understanding, Command & Control Center
Voice: 703-983-6770 7515 Colshire Drive, M/S H305
Fax: 703-983-1379 McLean, VA 22102-7508, USA
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx [mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Adrian Walker
Sent: Saturday, February 26, 2011 3:51 PM
Subject: Re: [ontolog-forum] Prolog in semantic applications [was - Fwd: [ontology-summit] [Making the Case] Barriers to adoption of ontologies]
Hi Peter, Jans & All --
For Prolog in semantic applications, the following book may be of interest:
Knowledge Systems and Prolog -- Developing Expert, Database and Natural Language Systems (second edition), by Walker, McCord, Sowa and Wilson, ISBN 0-201-52424-4.
It's an old book, but is arguably far ahead of its time.
Cheers, -- Adrian
On Sat, Feb 26, 2011 at 2:24 PM, Peter Yim <peter.yim@xxxxxxxx> wrote:
(Relocating this conversation over to the [ontolog-forum] list ... =ppy)
Yes, that would be of interest ... not specifically to the
[ontology-summit] community, though (as that does not align well with
this year's Summit theme), but almost definitely to the
We can do a panel session with a title like "Developing Semantic
Applications with Prolog" (or something like that).
Thanks & regards. =ppy
p.s. Folks, please continue the conversation here. =ppy
---------- Forwarded message ----------
From: Jans Aasman <ja@xxxxxxxxx>
Date: Sat, Feb 26, 2011 at 8:36 AM
Subject: Re: [ontology-summit] [Making the Case] Barriers to adoption
To: Ontology Summit 2011 discussion <ontology-summit@xxxxxxxxxxxxxxxx>
Thanks John: that is a great paper. I might want to add that often in
my talks I get attacked about why I promote Prolog on top of a triple
store so much. The common idea seems to be that a combination of OWL,
SPARQL and some rules seems to be enough to solve all the problems in
the world. However, I find, that if you deal with a task that requires
some temporal relationships, some geospatial reasoning, a lot of
quantitative reasoning, some process and procedural knowledge, and
maybe a tiny bit of uncertainty than suddenly using OWL + SPARQL becomes
a very advanced Martin Garner problem that only 1 % of our community can
solve. In many cases the same task can be solved much more
straightforward with Prolog as a rule and Prolog as a query language.
Anyway: if people in this Forum are interested I can do a talk+demo in
the near future. Jans
On 2/26/2011 5:43 PM, John F. Sowa wrote:
> I'd like to return to Joanne's point about flexibility, but
> not with the approach discussed by Toby Segaran.
> Following is a note I sent to Ontolog Forum, in which I discussed
> another publication by the folks that brought us Watson.
> Watson and systems like it are far more flexible than the currently
> popular ontology tools, and there are enough publications to show
> how they have found a better way.
> There is nothing wrong with having some success stories about OWL
> and related tools. But the unstructured methods used with LOD
> are the real growth path for ontology. Watson is just one example,
> but there are others that show great promise for the future.
> -------- Original Message --------
> Subject: Re: [ontolog-forum] Watson, Medicine, and New Knowledge
> Date: Sat, 26 Feb 2011 10:13:09 -0500
> From: John F. Sowa<sowa@xxxxxxxxxxx>
> To: ontolog-forum@xxxxxxxxxxxxxxxx
> Adrian, Ferenc, Ron, and Jack,
> Before commenting on your notes, I'd like to mention that I came
> across a paper co-authored by David Ferrucci in 2008, which was
> shortly after they began the Watson project:
> The Prolog Interface to the Unstructured Information
> Management Architecture (UIMA)
> Following is the concluding paragraph of that paper:
>> The UIMA generic Prolog annotator allowed us to develop faster and easier pattern
>> matching rules for natural language analysis in a language familiar to our developers
>> and users (i.e., the Prolog language), the Prolog engine being transparent to the UIMA
>> pipeline (i.e., completely integrated in the pipeline), while having access to state-ofthe-
>> art semantics and proving effective on question analysis (i.e., time and results).
>> We implemented interfaces for various rule systems: the UIMA-Sicstus Prolog
>> interface (using the PrologBeans library) , the UIMA-SWI Prolog interface (using
>> the JPL library)  and the UIMA-InterProlog translator for used by XSB  and
>> Yap Prolog  systems (using the Interprolog library ). Our applications of this
>> annotator include: complex rules for question analysis, shallow semantic parsing, and
>> tools for development and testing UIMA analytics.
> The paper is only five pages long, but it gives a bit more detail about
> the kinds of things that Watson is doing. And I am very happy to see
> that they use Prolog, which is an outstanding language to use for this
> kind of application.
> In fact, Prolog is the primary language that we use at VivoMind, because
> it is highly flexible and can be quickly adapted to either informal
> processing (along the lines used by Watson) or precision analysis
> (as needed for formal logic). We also use C, but only for heavily
> used, well tested algorithms that can be frozen in low-level code.
>> Watson is of course a major achievement, as it demonstrated by
>> comfortably winning Jeopardy. It's now official that IBM sees
>> Watson has having potential in Medicine -- it could read the
>> biological-medical literature and outperform the Doctors.
>> However, for these purposes, there's a key difference between
>> Jeopardy and Medicine. In Jeopardy, humans know the right answers
>> -- the city of Toronto is not in the USA.
>> In Medicine, humans don't have consensus answers to new questions
>> (e.g. What is the best treatment for multiple sclerosis). So,
>> whatever algorithms Watson uses will lead to new medical knowledge
>> that humans cannot easily check by thought experiments.
> That may be true. But there is a huge amount of knowledge in the
> medical literature that a practicing physician can't possibly know.
> Even a research physician can only keep up with the literature in
> his or her own specialty. There is no single MD in the world who
> can know all or even most of the consensus answers.
> I would not expect Watson or any other computer system to produce
> a definitive answer to any medical question. But what it could do
> very well is produce several alternatives with its own confidence
> ratings for each *and* with pointers to the literature for the
> physician to verify. That would be immensely valuable.
>> Surely, if the knowledge base and learning algorithm of Watson is
>> based on a dynamic, but single algorithm as opposed to a data base
>> ... Call the undertaker
> First of all, Watson has a very wide range of different algorithms.
> But in any case, neither Watson nor any other computer system being
> designed today would ever replace a physician. Its primary role is
> to serve as a super search engine to find relevant knowledge that a
> physician might not be aware of. The final decision about treatment
> is always the responsibility of the physician. If anything goes
> wrong, the human MD is sued, not Watson or IBM. (I worked at IBM,
> and I know that IBM management is highly allergic to law suits.)
>> It appears that Watson can give you a lot of insight into how it
>> arrived at an answer including the various parallel processes that
>> were done. It probably can do a much better job of this than most
>> humans since we quickly forget the bad ideas and fruitless paths
>> whereas Watson remembers them all.
> Yes. Think of Watson as a super Google that keeps track of everything
> and evaluates the alternatives. But the human MD makes the decision.
>> ... just the task of thinking through *how* to organize resources
>> for Watson to deal with them is, itself, an important learning
> I agree.
>> It will be interesting to see how "ontologists" make the shift from
>> being "owltogists" to "Watson feeders".
> Watson is much more flexible than OWL. A knowledge engineer working
> with OWL is forced to state every point very precisely in an exactly
> *decidable* way. But most of the knowledge in every field is vague,
> flexible, and rarely, if ever, *decidable*.
> There are very specialized domains (microtheories) for which OWL and
> other formal logics are valuable. But the overwhelming amount of
> knowledge in the world is *unstructured* -- the first letter of UIMA.
> I believe that the combination of Prolog with UIMA (or something
> like it) is much better suited to processing the vast resources
> of the Web than OWL.
> Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
> Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
> Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
> Shared Files: http://ontolog.cim3.net/file/
> Community Wiki: http://ontolog.cim3.net/wiki/
> To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
> To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx