An Agent Markup Language

Tim Berners-Lee <>
Dan Connolly <>
Lynn Andrea Stein <>
Ralph R. Swick <>

Status of this document

$Revision: 1.83 $ of $Date: 2000/10/11 03:30:49 $ by $Author: connolly $ change log [restricted]

This document is intended to inform the DAML research effort. This document is made available for discussion only. Publication of this document indicates no endorsement by W3C or the W3C Team, or any W3C Members.

Based on discussion at that DAML kickoff meeting, we anticipate that the first version of DAML will not be based on this work, but rather on a more idiomatic usage of RDF.

Please see RDF and the DARPA DAML effort, Sep 11 2000 from Jim Hendler, regarding the relationship of DAML to W3C RDF efforts, and subsequently, ANNOUNCE: new mailing list,, from Dan Brickley.

While we do not anticipate updating this document for a time, We invite discussion of related matters in the www-rdf-logic forum.For example, For review: some DAML thoughts from Dan Connolly Mon, Oct 02 2000.

Previous Version: 2000-08-14 [restricted]

Effort sponsored by the Defense Advanced Research Projects Agency (DARPA) and Space and Naval Warfare Systems Center under agreement number N66001-99-2-8917. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation thereon.

The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the Defense Advanced Research Projects Agency (DARPA), the Space and Naval Warfare Systems Center, or the U.S. Government.

Copyright 2000 Massachusetts Institute of Technology. All rights reserved. Permission to use, copy, and distribute the contents of this document in any medium for any purpose and without fee or royalty is hereby granted, provided that you include on all copies of the document, or portions thereof, a link or URL to the original MIT document, this copyright notice, and the Status of this document.


This document describes a working prototype language for the interchange of knowledge between software agents. It is intended to inform the DAML research effort.


  1. Introduction
  2. RDF Normal Form
    1. Reification (aka Quoting, or Metaknowledge)
    2. Practical RDF Syntax
  3. RDF Terms for Classes and Relationships
  4. Utilities for Class Definitions
  5. Rules
  6. A Logic built on RDF-NF
  7. Asking and Telling the Web
  8. Transformation and Authoring Tools
  9. Future work


This document describes a working prototype language for the interchange of knowledge; it suggests a format for use in the DAML research effort. This draft was prepared by the team at MIT/LCS in the light of the vision of the Semantic Web, perceived needs of DARPA as elucidated in conversation with Jim Hendler, DAML Program Manager, and experience with the standardization efforts at the World Wide Web Consortium (W3C). It was further enhanced by requirements discussions at a DAML Jumpstart workshop on July 19, 2000 at MIT/LCS. (see notes)

The aims of this document are to allow the interchange of

These aims are pursued in the context of a technology designed to be the basis for future interchange of:

The language does not provide explictly for the constructs needed to express weights and other parameters typically used by non-monotonic reasoning systems. It is recognized that such systems may import and export inferences using this format, though verification of those inferences is expected to be more an issue of trust than logic.

Compatability with very expressive logic is important to the MIT/LCS SWeLL project (Semantic Web Logic Language) and so the framework presented in this document is designed to give a clear exposition of how they will fit together. Indeed, in places, SWeLL concepts make explanation of the ontological levels easier.

We start by laying down the basic syntax for communication, RDF 1.0. We then review the RDF knowledge primitives and introduce ontological utilities.

Then we discuss a logic built on RDF, modelled after [KIF]. This allows us use the same formal foundation as many of the extant ontology systems. In various appendixes, we use the logic to give formal definitions for the ontological terms. This does not imply that any system using these ontological terms must be capable of processing the formal definitions. However, it removes any ambiguity in this specification, and ensures that a consistent formal system is developed.

Following the formal part of the langage we introduce some terms to model the interaction of agents with documents in the web: housekeeping terms for human agents, to support practical document management to be done in practice; and communications protocol terms which boostrap the use of logic on the Web.

RDF Normal Form

This section describes how information is conveyed in RDF documents, including the trivial philosophy binding the abstract language to social processes.

Data interchange in this format is done by the transmission (over the Internet or otherwise) of RDF documents.

The Resource Description Framework [RDF] is an emerging standard for the exchange of knowledge in the form of directed, labeled graphs.

This is a structure common to most knowledge representations. Semantic networks[Woods], hypertext[Drakos], etc. use a a directed, labeled graph structure where nodes represent objects and the arcs that connect them represent assertions *noteArc. In frame-based representations [Minsky], slot-relations connect role-fillers to a frame; frames themselves may also be interconnected by relations such as inheritance. In logical formalisms[McCarthy], binary relations are easily expressed using this property notation, though arbitrary n-ary relations require an additional translation mechanism *noteNary.

The core of RDF is this notion of a statement, with a subject and an object related by a predicate. For example:

Dan is the author of a program.

"Dan" is the subject of this statement, "is the author of" is the predicate, and "a program" is the object.

RDF builds on commodity web technologies: Uniform Resource Identifiers[URI] for identifier syntax, and Extensible Markup Language[XML] for structured syntax. Each of the subject, object, or predicate in an RDF statement is typically a URI*noteLit. The core of the XML syntax for RDF does little more than distinguish the parts of a statement.

For example, the above statement might be represented in RDF/XML as follows: *noteNS

<rdf:Description about="#Dan">

That is RDF syntax for the following graph:
Dan--isAuthorOf-->aProgram dot

To elaborate a bit, we might say more precisely

A person called Dan is an author of a program.

which we can represent as the following graph:
()--givenName--> dot

or the following RDF syntax:

    <myOntology:Program />

In [KIF] terminology, an RDF document is an atomic, simple, ground, knowledge base, restricted to 2-place predicates. Essentially:

(holds p1 s1 o1)
(holds p2 s1 o2)
(holds p3 s1 o3)

RDF does include a form of quantification, in the style of conceptual graphs [SowaCG]. The elaborated example above looks something like this in KIF (modulo issues of escaping to prevent case folding):

(exists (?n1 ?n2)
  (http://...#isAuthorOf ?n1 ?n2)
  (http://...#givenName ?n1 "Dan")
  (http://...rdf-syntax-ns#type ?n1 http://...#Person)
  (http://...rdf-syntax-ns#type ?n2 http://...#Program)

Implementation note: this correspondence between RDF and KIF is implemented in XSLT and Java. See the Converting RDF to KIF in appendix KIF as an RDF Schema for details.

Reification (aka Quoting, or Metaknowledge)

Related to any RDF statement are four other statements that describe it. For example:

  1. Dan is the author of a program.

is closely related to

  1. "Dan is the author of a program" is a statement.

For convenience, we've numbered these assertions and will use the numbers to refer to them in this discussion. So [2] might be understood to say "[1] is an RDF statement.", where [1] is just a reference to the statement numbered 1, above.

In addition, [1] can be described ala:

  1. "Dan" is the subject of statement 1, i.e., the statement described in statement 2.
  2. "is the author of" is the predicate of statement 1, etc.
  3. "a program" is the object of statement 1....

It is important to understand that assertion of statement 1 entails statements 2-5, but assertion of statements 2-5 does not amount to asserting statement 1. That is, we might assert:

  1. There is some statement.
  2. "Pigs" is the subject of [6].
  3. "fly" is the property of [6].
  4. "airplanes" is the object of [6].

without asserting

  1. Pigs fly airplanes.

This point -- about statements about statements -- becomes important when we use quotation to construct certain aspects of logical representation. It is a fundamental feature of RDF.

Practical RDF Syntax

When the RDF Model and Syntax specification became a W3C Recommendation the understanding of W3C Recommendations was only that they indicated that W3C expected a technology to be useful. Broad implementation experience was not as significant a factor in reaching Recommendation status as it has now become in the W3C process with the addition of Candidate Recommendation status. W3C has collected additional implementation feedback subsequent to the publication of the RDF Model and Syntax Recommendation. During this same period, W3C has also been developing XML Schema technology to support document instance validation beyond what DTDs are able to support. With this further implementation experience and with the progress of XML Schema toward Candidate Recommendation we are prepared to advise applications on features of the RDF syntax that they need not support.

This syntax is a constrained dialect of RDF, based on implementation experience we have seen, specified using XML Schemas[XSchema0].

Details are given in the version 0.5 draft syntax appendix.

RDF Terms for Classes and Relationships

The RDF specifications [RDF, RDFS] define terms for

We elaborate on these in the RDF Standard Terms appendix.

Utilities for Class Definitions

@@punt to oil for AND/OR/NOT, cardinality. Grumble... trying to cite them hung my browser. Hm... does oil have enumerated sets? Those are easy to do too.


Section 3.6 Defining Inference Rules of [SHOE] specifies a form of horn clause rule with some restrictions on the occurrence of variables. This format includes rules of the same expressive power, expressed in RDF normal form.

The Converting SHOE to RDF appendix explains these rules by showing how to generate them from SHOE syntax.

The version 0.5 draft syntax appendix discusses the syntax for these rules independent of SHOE. The semantics are based on KIF quoting, as explained in the appendix KIF as an RDF Schema.

A Logic built on RDF-NF

Much of the existing ontology work[OKBC, Conceptual Graphs] is documented using definitions and rules stated formally in, for example, [KIF]. We consider it important that the Semantic Web is self-descriptive, i.e. that agents may bootstrap themselves by consuming rules and definitions dynamically.

Details are discussed in the KIF as an RDF Schema appendix.

Asking and Telling the Web

The appendix An RDF Model for GET/PUT and Document Management includes some axiomatic properteis which open up the web to the logic. Like I/O instructions of machines, they provide a connection betwen abstract operations and an outer world. At the heart of the model is the notion that protocol messages make some assertions and logically ential others. Hence it accomodates documents that change over time and allows a trust model to be boostrapped.

It also includes some properties for the practical management of information, i.e. to model the interaction of human agents with the semantic web, in order to facilitate automation of document maintenance, etc.

Transformation and Authoring Tools

Authoring tools are an important issue in the deployment of any new format. One approach is to exploit existing tools that produce XML of almost any sort, and use XSLT to transform it to this format. The Converting SHOE to RDF appendix and our work using XHTML authoring tools[ConnHS] demonstrate the viability of this approach.

Future work

We plan to flesh out the proof-checking infrastructure sketched out in the KIF as an RDF Schema appendix.

We also plan to incorporate XML digital signatures[DSig] into the proof infrastructure, ala [PCA].


that this does not preclude the inclusion of arcs as "objects" connected by other arcs.
of two alternatives techniques can be used to express n-ary relations using binary properties: currying or lists.
The fragments "rdf" and "myOntology", appearing before colons, are bound to XML namespace names, which ground terms such as Description (part of rdf) and isAuthorOf (part of the hypothetical myOntology namespace) in the Web. These can be bound by embedding the entire fragment of RDF above between


(subjects may be anonymous, and objects may be a string constant or XML content constant)


[Rao & Turoff]
Rao, Usha & Turoff, Murray. Hypertext Functionality: A Theoretical Framework, International Journal of Human-Computer Interaction, 1990.
Lassila, Swick [eds], Resource Description Framework (RDF) Model and Syntax Specification (World Wide Web Consortium Recommendation, 1999)
Resource Description Framework (RDF) Schema Specification 1.0 W3C Candidate Recommendation 27 March 2000.
August 1998 Uniform Resource Identifiers (URI): Generic Syntax
(RFC 2396) T. Berners-Lee, R. Fielding, L. Masinter
Feb 1998: W3C Recommendation: Extensible Markup Language (XML) 1.0
XML Schema Part 0: Primer, W3C Working Draft 7 April 2000 (latest version)
SHOE 1.01 Proposed Specification Sean Luke and Jeff Heflin SHOE Project April 28, 2000
Knowledge Interchange Format draft proposed American National Standard (dpANS) NCITS.T2/98-004
Last Modified: Thursday, 25-Jun-98 22:31:37 GMT
Conceptual Graphs, John F. Sowa, work in progress Wed Jul 19 20:29:57 2000
HyperRDF: Using XHTML Authoring Tools with XSLT to produce RDF Schemas Dan Connolly, work in progress 2000/08/13
Proof-Carrying Authentication. Andrew W. Appel and Edward W. Felten, 6th ACM Conference on Computer and Communications Security, November 1999. (background)
XML-Signature Syntax and Processing W3C Working Draft 11-July-2000 (latest version, background)