Drew V. McDermott
I am interested in cognitive science, specifically artificial
intelligence and philosophy.
But I spend most of my time lately writing fiction, a whole new world.
Publications:
In reverse chronological order:
-
McDermott 2014 On the claim that a table-lookup program
could pass the Turing test. Minds and Machines, 24(2),
pp. 143—188
- McDermott 2013 Computationally constrained beliefs.
J. of
Consciousness Studies 20(5--6),} pp. 124–50
- McDermott
2011
Response to Chalmers's "The Singularity". J. of Consciousness Studies
19(1–2), pp.~167–172. [Through a miscommunication with
the editors, a faulty draft of the paper was published; this version
contains several corrections.]
- McDermott 2011 What Matters
to a Machine? In Susan Anderson and
Michael Anderson (eds) 2011 {\it Machine Ethics}, Cambridge
University Press, pp. 88–114
- McDermott 2007 Artificial intelligence
and consciousness. In Philip David Zelazo, Morris Moscovitch, and Evan
Thompson (eds.) 2007 The Cambridge Handbook of Consciousness, Cambridge
University Press, pp. 117–150
-
Dejing Dou and Drew McDermott
2006 Deriving axioms across ontologies.
AAMAS-2006 (short paper)
- Mark Burstein and Drew McDermott
2005 (Microsoft Word format)(tar file containing HTML and
Pages versions)
Ontology Translation for Interoperability Among Semantic Web Services.
{\it {AI} {M}agazine \bf 26\rm(1)}, pp.~71--82
- Drew McDermott 2005A framework for
maintaining the coherence
of a running {L}isp. {\it Proc. Int'l. Lisp Conference}
- Dejing Dou, Drew McDermott, and Peishen Qi 2003 Ontology Translation
on the Semantic Web. Proc. Int'l Conf. on Ontologies,
Databases and Applications of Semantics
- Drew McDermott 2003b
The Formal Semantics of Processes in PDDL. Proc. ICAPS
Workshop on PDDL
- Drew McDermott 2003 (ps) (pdf)Reasoning
about autonomous processes in an estimated-regression planner.
Proc. Int'l. Conf. on
Automated Planning and Scheduling 2003
- Dejing Dou, Drew McDermott,
and Peishen Qi 2002(ps) (pdf)
Ontology translation by ontology merging and automated reasoning.
In {\it Proc. EKAW Workshop on Ontologies for Multi-Agent Systems}.
- Drew McDermott and Mark
Burstein 2002 Extending an
estimated-regression planner for multi-agent planning. {\it
Proc. AAAI Workshop on Planning by and for Multi-Agent Systems}.
- Drew McDermott and Dejing Dou
2002 Representing disjunction and
quantifiers in RDF
{\it Proc. Int'l Semantic Web Conference}.
-
Drew McDermott, Mark
Burstein, and Douglas Smith 2002 Overcoming
ontology mismatches in transactions with self-describing agents.(pdf) In
{\it The Emerging Semantic Web: Selected Papers from the First
Semantic Web Working Symposium}, pp.~228--244
-
Drew McDermott and Dejing Dou 2002 Representing Disjunction and Quantifiers
in RDF. (pdf)
To appear, Semantic Web Conference 2002.
- Drew
McDermott 2002 Estimated-Regression Planning for
Interactions with Web
Services. (pdf) AI Planning Systems Conference 2002
- Mark Burstein, Drew McDermott, Douglas Smith, and Steven
Westfold 2002
Derivation
of glue code for agent interoperation. (pdf) To appear,
J. Autonomous Agents and Multi-Agent Systems
-
Drew
McDermott 2001,
Mind and Mechanism MIT Press,
2001.
- ... papers of older vintage
GOFAI
Considered Harmful (And Mythical) (Submitted to a journal)
Why Ethics is a High Hurdle for
AI. Presented at the 2008 North American Conference on Computers and
Philosophy, Bloomington, Indiana. (Superseded by McDermott 2011, above.)
Theorem: There are no
``extendible methods'' in David Chalmers's sense unless P=NP
Software Documentation
If you want to check out the documentation
of the software
packages described below, various manuals are available. In some
cases the manual is more fully developed than the software; in other
cases, the software is ahead. Read the fine print
My public key This may be
useful in verifying the provenance of some of the software below.
Planning Domain Definition Language
PDDL is the language originally developed by the AIPS-98 Competition
Committee for use in defining problem domains.
The original version, PDDL 1.7, is still available.
The 2002
version is called PDDL2.1, and contains many new
features, mainly connected with adding time and objective functions to
the language. Unfortunately, certain features of the original
language have been removed for "retuning." Hopefully in the future
we'll see a reconvergence as hierarchical-planning features are
integrated back into PDDL.
The
2004 version is called PDDL2.2.
It is adds derived predicates and
timed initial literals. The former are just backward-chaining axioms
that allow a planner to achieve a goal by making the antecedent of
one of the them true. The latter are literals that will become true
at a predictable time independent of what the planning agent does.
PDDL3.0 is the language for the
2006 competition. A BNF syntax can be found here. It adds constraints and
preferences, expressed in a restricted temporal logic. For instance,
one can have a preference at the end of execution one's gas tank is
full:
(:constraints
(preference p-fuel
(at end (current-value (fuel truck1)
(capacity truck1)))))
and an objective function that states how important it is:
(:metric (+ (* 10 (is-violated p-fuel))
(fuel-used)))
Opt is a successor to PDDL,
including durative actions, autonomous processes,
a completely revised hierarchical planning notation, and a
more robust type system. It incorporates all the features of
PDDL2.2 and (soon) PDDL3.0.
The International Planning Competition
My, how this competition has thrived! We now have several tracks, of
which the "deterministic" is closest to my heart:
The 2012
competition (deterministic track).
The competition was begun in 1998, by a committee I had the privilege
to chair. For the full story, see
Drew McDermott 2000 The 1998 AI Planning Systems Competition.
AI Magazine 21(2),} pp. 35–55.
Software
To use the following packages, download them, untar them, then follow
the installation instructions that follows the package list.
Untarring will create
one or two subdirectories, usually one of which has the same name as
the one shown here. (E.g., untarring nity.tar.gz in
directory d will create d/nity/ and
d/langutils/.)
-
YTools (version 2.1.47, 2009-10-20)
is a set of enhancements to Lisp, including improved macros for
iteration, formatted I/O, file management, and even backquoting!
Documentation includes detailed manual with over 50 pages; see Software Documentation,
above. YTools version 2.1 includes a complete rewrite of the YTools
File Manager based on the concept of "chunk" described in McDermott 2005.
-
Lexiparse (version 0.91, 2004-11-26)
is a parser based on precedence grammar. It includes a
lexer and a framework for expressing translations from syntax trees to
useful internal data structures. It requires YTools.
-
Nisp (version 2.93.22, 2006-12-01) is a strongly typed dialect of Lisp,
implemented as a collection
of macros. Older versions of Nisp (see below)
were based on a tool set called "NILS," but recent versions are based
on YTools. (Hence it is referred to
in some places as YNisp.) The tar file contains a single directory called
ydecl which contains all the type-checking stuff. Y oh Y all
these names? Just remember that Nisp = YNisp = YTools + ydecl.
-
Nity (version 1.5.5, 2006-12-01):
is a polymorphic type system used by Opt (and hopefully by Nisp sometime
in the future). Includes a parallel directory langutils. Depends on
YTools.
- Opt
(version 1.6.26, 2006-12-01) [Ontology with Polymorphic Types] is a KR
language based
on type theory. Comes with detailed manual for the language, not so
detailed documentation on how to use it.
Includes parallel directory lisplang. It's fully compatible with
recent versions of PDDL. (That is, it has that as a goal. Version
1.6.11 doesn't have absolutely the latest features.) Depends on Nity.
- Optop
(version 1.7.21, 2006-12-01) is an
estimated-regression planner that can reason about autonomous
processes.
Acronym must mean something; it seems to connote Opt, optimality,
Ordered Plans, being on top, .... Depends on Opt and Nisp.
- Litlisp,
a "literate programming" system. The "Lisp" in the name refers to the fact
that the directives to the literate-programming system are Lisp commands.
The system itself can be used for literate programming based on any programming
language at all. The documents it produces look similar to those produced by
the "noweb" system.
(Warning: This system is highly experimental, and on the
whole the experiment was a failure. I am posting this system
because some people have expressed interest in looking at the code. Caveat
emptor.) Depends on Nisp and YTools.
To install any of the above, copy the following code template
(load "sdyt/ytools/ytload/ytload")
(setq ytools::config-directory* "dytc/")
(setq ytools::ytload-directory* "sdyt/ytools/ytload/")
to your Lisp initialization file
(which is found in your home
directory and has a name like .clinit.cl or
.lispworks or .clisprc.lisp or something else).
Replace sdyt with the name of the immediate superdirectory
where you placed the ytools directory. Replace dytc
with your home directory if you are the only user of the software,
otherwise in some place that others can put in their search paths.
(If you are the only user, you can put it anywhere you like, actually,
but the home directory is the obvious thoice.)
Important note for CLISP users: Your .clisprc
file must include the following code
(setq custom:*merge-pathnames-ansi* t)
to make sure that YTools logical pathnames work right.
Now start Lisp and type (yt-install :sysname) to
install one of the systems listed above. (Here the names are all lower-case,
which matters only in a case-sensitive Lisp.) If you want Optop, you
can just type (yt-install :optop) and all the systems it
depends on will be installed as well. But it might be clearer to
install them in order. The installation process consists of a series
of questions about directories, case-sensitivity, various modes, etc.,
followed by a bunch of compilations. Some Lisps generate an
unbelievable number of warnings about unimportant conditions. When I
figure out how to turn them off, I'll include that code in future
releases. For now, just ignore them. If something blows up, let me
know.
OH NO!!! All these programs seem to be
written in Lisp, which is bad because it looks funny and
there's no free standard implementation. But wait ... There
is a free standard implemention: CLISP. It's written in C, is
compliant with the ANSI standard, and produces byte code as output, so
it runs anywhere. It's also easy to install. If you like to think of
Python
as the last word in high-level scripting languages, you're almost
right. One step beyond is Lisp:
Python with macros (and without that annoying indentation-dependent
syntax). Lisp is defined by an ANSI standard, not a single
implementation. Most implementations compile to efficient machine
code, so once you outgrow CLISP you can make an easy transition to a
full-featured state-of-the-art language.
Emacs Packages
Lightmark
(version 1.01) implements a system of "lightweight bookmarks," for
people who just can't stand that there's only "point" and "mark." If
you want to keep several fingers in various pies, this package allows
you to create bookmarks
and flip around them with a few keystrokes. For instance, ^C^Bp
creates a bookmark whose default name is the symbol under the cursor
--- but you can edit the name to whatever you want, and change it--
--later. ^C^Bj
prompts (with completion) for the name of a bookmark and jumps to
it. Many utilities are included for viewing and managing the current
bookmarks,
including a 'Marks' menu.
- Unpop
is a planner that uses regression-match graphs to control search.
- PDDL
is the Planning Domain Definition Language.
-
Nisp
is a macro package that adds strong typing to Common Lisp. (Version 2.8)
-
Deduc,
a deductive system built on top of (pieces of) PDDL.
Miscellany
PHP test
Yale Computer Science Department
!