. . . Back to The SHOE and DAML Page



SHOE/DAML Comparison

Parallel Understanding Systems Group
Department of Computer Science
University of Maryland at College Park


The following table shows how to translate a set of SHOE tags into DAML. We have automated this process with a software tool that can be provided upon request. Note that this is only one possible translation; since DAML is based on RDF, and RDF allows multiple syntaxes for stating things, there are other equivalent translations.

Please send any comments or questions about this table to Jeff Heflin.

SHOEDAMLNotes
<ONTOLOGY ID="id"
      VERSION="ver"
      DESCRIPTION="desc"
      BACKWARD-COMPATIBLE-WITH="bcw"
      DECLARATORS="decl">
<Ontology about="">
   <versionInfo>id, v. ver</versionInfo>
   <comment>desc</comment>
</Ontology>
DAML does not have an equivalent to the BACKWARD-COMPATIBLE-WITH element. Although the translator does not currently do this, each URL in DECLARATORS could be treated as a DAML imports.
<USE-ONTOLOGY ID="ontid"
      VERSION="ontver"
      PREFIX="prefix"
      URL="onturl">
<imports resource="onturl" />
In DAML, ontologies are only identified by their URL. Note that a SHOE PREFIX can be used as a DAML namespace prefix.
 
</Ontology>
 
<DEF-CATEGORY NAME="catname"
      ISA="pcat1 pcat2 ..."
      DESCRIPTION="catdesc"
      SHORT="catshort">
<Class ID="catname">
   <label>catshort</label>
   <subClassOf resource="pcat1uri" />
   <subClassOf resource="pcat2uri" />
   ...
   <comment>catdesc</comment>
</Class>
Each item in a SHOE ISA element is a prefixed name. To construct the equivalent DAML URI, one must find the URL of the parent ontology and add the category name as the reference portion of the URL.
<DEF-RELATION NAME="relname"
      DESCRIPTION="reldesc"
      SHORT="relshort">
   <DEF-ARG POS="1" VALUE="domain">
   <DEF-ARG POS="2" VALUE="range">
</DEF-RELATION>
<Property ID="relname">
   <label>relshort</label>
   <domain resource="domain-url" />
   <range resource="range-url" />
   <comment>reldesc</comment>
</Class>
DAML does not have n-ary relations, but any n-ary relation can be translated into an equivalent set of binary relations. SHOE argument values are prefixed category names and must be translated to DAML URLs as is done for the PREFIX attribute of the CATEGORY element.
<DEF-RENAME FROM="oldname"
      TO="newname">
<Class ID="newname">
   <equivalentTo resource="oldname-url" />
</Class>

or
<Property ID="newname">
   <equivalentTo resource="oldname-url" />
</Property>
In DAML, use a different form depending upon whether you are renaming a class or property.
<DEF-INFERENCE DESCRIPTION="inf-desc">
   <INF-IF>
      body-subclause
   </INF-IF>
   <INF-THEN>
      head-subclause
   </INF-THEN>
</DEF-INFERENCE>
  DAML-ONT does not allow the definition of arbitrary inference rules. However, subProperty, TransitiveProperty, and inverseOf can be used to express the same meaning as some common usage patterns of SHOE rules.
<DEF-CONSTANT NAME="const-name"
      CATEGORY="const-cat">
<rdf:Description ID="const-name">
   <type resource="const-cat-url" />
</rdf:Description>
A constant is just an instance defined in an ontology. The const-cat-url is creating using the home ontology URL and name of the category indicated by const-cat.
<DEF-TYPE NAME="type-name"
      SHORT="type-short"
      DESCRIPTION="type-desc">
<Class ID="type-name">
   <label>type-short</label>
   <comment>type-desc</comment>
</Class>
Until data types are better defined in DAML, just treat a new type as a class.
</ONTOLOGY>
  All definitions in a SHOE ontology must be surrounded by <ONTOLOGY> and </ONTOLOGY> tags.
<INSTANCE KEY="inst-key"
      DELEGATE-TO="del-insts">
<rdf:Description about="">

In SHOE, the instance is basically a container for a set of claims. In, DAML we need to specify which ontologies are imported by the current document. Note, the del-insts should probably be treated as imports in DAML.
<USE-ONTOLOGY ID="ontid"
      VERSION="ontver"
      PREFIX="prefix"
      URL="onturl">
<imports resource="onturl" />
In DAML, ontologies are only identified by their URL. Note that a SHOE PREFIX can be used as a DAML namespace prefix.
 
</rdf:Description>
 
<CATEGORY NAME="cat-pre.cat-name"
     FOR="inst-key">
<cat-pre:cat-name about="inst-key">
Note that SHOE prefixed names which contain prefixed chains probably refer to ontologies not included in the USE-ONTOLOGY list, and thus the appropriate DAML imports statements are not defined above. An easy fix that avoids preprocessing is to add the appropriate XML Namespace declaration for a prefix chain to each element where it is need. For example: you might have xmlns:cat-pre="onturl".
<RELATION NAME="rel-pre.rel-name">
   <ARG POS="1" VALUE="inst-key">
   <ARG POS="2" VALUE="range-val">
</RELATION>
<rel-pre:rel-name resource="range-val" />
or
<rel-pre:rel-name>range-val</rel-pre:rel-name>
In DAML, it is convenient to nest properties about the same subject inside a tag the defines the type of the subject (see previous row). Different forms are used depending on whether or not the range-val is a resource (URL) or literal (String). Note that DAML does not have n-ary relations, but any n-ary relation can be translated into a binary equivalent.
 
</cat-pre:cat-name>
It is most convenient to nest DAML properties inside a tag that represents the class of the subject.
</INSTANCE>
  A set of SHOE declarations must be surrounded by <INSTANCE> and </INSTANCE> tags.