--- ./rdf/xoRDF.xotcl~	Wed Jul 26 13:35:30 2000
+++ ./rdf/xoRDF.xotcl	Thu Jul 27 15:38:30 2000
@@ -81,7 +81,12 @@
 
   while {[set pt [string first "parseType" $dt]] != -1} {
     # we cut the string off manually, because a regexp is slower
-    set last [string first "=" $dt $pt]
+    if {$::tcl_version > 8.0} {
+      set last [string first "=" $dt $pt]
+    } else {
+      set last [string first "=" [string range $dt $pt end]]
+      incr last $pt
+    }
     set ptStart [expr {[string last "<" [string range $dt 0 $pt]] + 1}]
     set propName [string range $dt $ptStart $pt]
     set blank [string first " " $propName]
@@ -292,8 +297,8 @@
 # "start" event, or the event of a sub node
 #
 BasicMatch instproc match {c} {
-  regexp {^(rdf:|)(.*)} $c _ __ co
-  expr {$co == [set [self]::content]}
+  regexp {^rdf:(.*)$} $c _ c
+  expr {$c == [set [self]::content]}
 }
 #
 # check whether an attribute name matches an attributed RDFNode
@@ -301,9 +306,9 @@
 # return the corresponding node class
 #
 BasicMatch instproc isAttributeNode {n} {
-  regexp {^(rdf:|)(.*)} $n _ __ nn
-  if {[[self] array names attributeList $nn] != ""} {
-    return [[self] set attributeList($nn)]
+  regexp {^rdf:(.*)$} $n _ n
+  if {[info exists [self]::attributeList($n)]} {
+    return [[self] set attributeList($n)]
   }
   return ""
 }
@@ -311,9 +316,9 @@
 # check if name matches an node class that may be nested in [self] 
 # 
 BasicMatch instproc isNestingNode {n} {
-  regexp {^(rdf:|)(.*)} $n _ __ nn
-  if {[[self] array names nestingList $nn] != ""} {
-    return [[self] set nestingList($nn)]
+  regexp {^rdf:(.*)$} $n _ n
+  if {[info exists [self]::nestingList($n)]} {
+    return [[self] set nestingList($n)]
   }
   return ""
 }
@@ -322,9 +327,9 @@
 # member attributes are matches with numbers, like _1,_2 ...
 #
 Class MemberAttrMatch -superclass BasicMatch
-MemberAttrMatch instproc match {c} {
-  regexp -nocase "^(rdf:|)_([0-9]*)" _ __ nr
-}
+#MemberAttrMatch instproc match {c} {
+#  regexp -nocase "^(rdf:|)_([0-9]*)" _ __ nr
+#}
 
 
 ##############################################################################
--- ./rdf/RDFTriple.xotcl~	Wed Jul 26 13:34:56 2000
+++ ./rdf/RDFTriple.xotcl	Thu Jul 27 15:44:22 2000
@@ -49,11 +49,11 @@
 }
 
 AboutEachMgr instproc isEntry {name} {
-  return [expr {[array names [self]::entries $name] != ""}]
+  info exists [self]::entries($name)
 }
 
 AboutEachMgr instproc addTriple {name p s o} {
-  if {[array names [self]::entries $name] != ""} { 
+  if {[info exists [self]::entries($name)]} { 
     set r [RDFTriple [self]::[[self] autoname name]]
     $r set predicate $p
     $r set subject $s
@@ -286,8 +286,8 @@
 	  set parent [$objName info parent]
 	  $info set generatedParentID [[[self] set parser] makeID]
 	  [self] addDB \
-	    [[self] qualify $objName [$objName set content]] \
-	    [[self] qualify $parent [$parent set subject]] \
+	      [[self] qualify $objName [$objName set content]] \
+	      [[self] qualifyWithBaseURL [$parent set subject]] \
 	    [$info set generatedParentID]
 	  break
 	}
--- ./rdf/rdfTest.xotcl~	Wed Jul 26 13:28:39 2000
+++ ./rdf/rdfTest.xotcl	Thu Jul 27 14:22:45 2000
@@ -2,8 +2,8 @@
 #!/usr/local/bin/xotclsh
 # $Id: rdfTest.xotcl,v 1.4 2000/07/14 18:55:59 neumann Exp $
 #
-package require package
-package verbose 1
+set auto_path ".. $auto_path"
+package require package; package verbose 1
 package require xoRDF
 package require RDFRecreatorVisitor
 package require RDFTriple
@@ -14,6 +14,7 @@
     set r [string trim $r]
     if {$e != $r} {
       puts stderr "FAILED: $msg\nGot:      '$r'\nExpected: '$e'"
+      puts stderr "Full Result: $result"
       exit -1
     }
   }
@@ -82,7 +83,7 @@
 ::PropertyNode-::rp::topNode0::description0::property0::description0::property0 --- s:ABC
 ::StringNode-::rp::topNode0::description0::property0::description0::property0::string0 --- xyz
 ::PropertyNode-::rp::topNode0::description0::property0::description0::property1 --- fromXYZ
-::StringNode-::rp::topNode0::description0::property0::description0::property1::string0 --- dfg 
+::StringNode-::rp::topNode0::description0::property0::description0::property1::string0 --- dfg
 } {
 <RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -102,11 +103,11 @@
       </Description>
     </s:Creator>
   </Description>
-</RDF>   
+</RDF>
 } {
 P: http://description.org/schema/ABC S: nsd O: xyz
 P: http://xyz.com/fromXYZ S: nsd O: dfg
-P: http://description.org/schema/Creator S: http://www.w3.org/Home/Lassila O: nsd 
+P: http://description.org/schema/Creator S: http://www.w3.org/Home/Lassila O: nsd
 }
 
 
@@ -128,7 +129,7 @@
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs = "http://www.w3.org/TR/1999/PR-rdf-schema-19990303#">
-  <rdf:Description 
+  <rdf:Description
   xmlns:s = "http://description.org/schema/" about = "http://www.w3.org/Home/Lassila">
     <s:Creator>
       Ora Lassila
@@ -237,7 +238,7 @@
       1998-10-03T02:27
     </s:Date>
   </rdf:Description>
-</rdf:RDF> 
+</rdf:RDF>
 } {
 P: Publisher S: http://www.w3.org O: World Wide Web Consortium
 P: Title S: http://www.w3.org O: W3C Home Page
@@ -330,7 +331,7 @@
       </rdf:Bag>
     </s:students>
   </rdf:Description>
-</rdf:RDF> 
+</rdf:RDF>
 } {
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#type S: rdfdoc#id2 O: http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 S: rdfdoc#id2 O: http://mycollege.edu/students/Amy
@@ -345,7 +346,7 @@
 rp test "Just a bag" {<?xml version="1.0"?>
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:DC="http://purl.org/dc/elements/1.0/">
-      <rdf:Bag>          
+      <rdf:Bag>
         <rdf:li resource="http://mycollege.edu/students/Amy"/>
         <rdf:li resource="http://mycollege.edu/students/Tim"/>
         <rdf:li resource="http://mycollege.edu/students/John"/>
@@ -365,7 +366,7 @@
 ::Member-::rp::topNode0::bag0::member3 --- rdf:li (rdf:_4)
 ::Resource-::rp::topNode0::bag0::member3::resource0 --- resource = http://mycollege.edu/students/Mary
 ::Member-::rp::topNode0::bag0::member4 --- rdf:li (rdf:_5)
-::Resource-::rp::topNode0::bag0::member4::resource0 --- resource = http://mycollege.edu/students/Sue 
+::Resource-::rp::topNode0::bag0::member4::resource0 --- resource = http://mycollege.edu/students/Sue
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -472,7 +473,7 @@
       Ora Lassila
     </s:Creator>
   </rdf:Description>
-</rdf:RDF> 
+</rdf:RDF>
 } {
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#type S: rdfdoc#pages O: http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 S: rdfdoc#pages O: http://foo.org/foo.html
@@ -511,7 +512,7 @@
 ::Member-::rp::topNode0::bag0::member0 --- rdf:li (rdf:_1)
 ::Resource-::rp::topNode0::bag0::member0::resource0 --- resource = http://foo.org/doc/page1
 ::Member-::rp::topNode0::bag0::member1 --- rdf:li (rdf:_2)
-::Resource-::rp::topNode0::bag0::member1::resource0 --- resource = http://foo.org/doc/page2 
+::Resource-::rp::topNode0::bag0::member1::resource0 --- resource = http://foo.org/doc/page2
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -531,13 +532,13 @@
     <rdf:li resource = "http://foo.org/doc/page1"/>
     <rdf:li resource = "http://foo.org/doc/page2"/>
   </rdf:Bag>
-</rdf:RDF>    
+</rdf:RDF>
 } {
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#type S: rdfdoc#docpages O: http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 S: rdfdoc#docpages O: http://foo.org/doc/page1
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#_2 S: rdfdoc#docpages O: http://foo.org/doc/page2
 P: http://description.org/schema/Copyright S: http://foo.org/doc/page1 O:  1998, The Foo Organization
-P: http://description.org/schema/Copyright S: http://foo.org/doc/page2 O:  1998, The Foo Organization   
+P: http://description.org/schema/Copyright S: http://foo.org/doc/page2 O:  1998, The Foo Organization
 }
 
 ##############################################################################
@@ -576,7 +577,7 @@
 ::Member-::rp::topNode0::bag0::member0 --- rdf:li (rdf:_1)
 ::Resource-::rp::topNode0::bag0::member0::resource0 --- resource = http://foo.org/doc/page1
 ::Member-::rp::topNode0::bag0::member1 --- rdf:li (rdf:_2)
-::Resource-::rp::topNode0::bag0::member1::resource0 --- resource = http://foo.org/doc/page2  
+::Resource-::rp::topNode0::bag0::member1::resource0 --- resource = http://foo.org/doc/page2
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -613,17 +614,17 @@
 
 ##############################################################################
 rp test "Sharing Values" {
-  <rdf:RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
-    <rdf:Seq ID="JSPapersByDate"> 
-      <rdf:li resource="http://www.dogworld.com/Aug96.doc"/> 
-      <rdf:li resource="http://www.webnuts.net/Jan97.html"/> 
-      <rdf:li resource="http://www.carchat.com/Sept97.html"/> 
+  <rdf:RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+    <rdf:Seq ID="JSPapersByDate">
+      <rdf:li resource="http://www.dogworld.com/Aug96.doc"/>
+      <rdf:li resource="http://www.webnuts.net/Jan97.html"/>
+      <rdf:li resource="http://www.carchat.com/Sept97.html"/>
+    </rdf:Seq>
+    <rdf:Seq ID="JSPapersBySubj">
+      <rdf:li resource="http://www.carchat.com/Sept97.html"/>
+      <rdf:li resource="http://www.dogworld.com/Aug96.doc"/>
+      <rdf:li resource="http://www.webnuts.net/Jan97.html"/>
     </rdf:Seq>
-    <rdf:Seq ID="JSPapersBySubj"> 
-      <rdf:li resource="http://www.carchat.com/Sept97.html"/> 
-      <rdf:li resource="http://www.dogworld.com/Aug96.doc"/> 
-      <rdf:li resource="http://www.webnuts.net/Jan97.html"/> 
-    </rdf:Seq> 
   </rdf:RDF>
 } {
 ::RDFTag-::rp::topNode0 --- rdf:RDF
@@ -642,7 +643,7 @@
 ::Member-::rp::topNode0::seq1::member1 --- rdf:li (rdf:_2)
 ::Resource-::rp::topNode0::seq1::member1::resource0 --- resource = http://www.dogworld.com/Aug96.doc
 ::Member-::rp::topNode0::seq1::member2 --- rdf:li (rdf:_3)
-::Resource-::rp::topNode0::seq1::member2::resource0 --- resource = http://www.webnuts.net/Jan97.html  
+::Resource-::rp::topNode0::seq1::member2::resource0 --- resource = http://www.webnuts.net/Jan97.html
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -658,7 +659,7 @@
     <rdf:li resource = "http://www.dogworld.com/Aug96.doc"/>
     <rdf:li resource = "http://www.webnuts.net/Jan97.html"/>
   </rdf:Seq>
-</rdf:RDF>  
+</rdf:RDF>
 } {
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#type S: rdfdoc#JSPapersByDate O: http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#_1 S: rdfdoc#JSPapersByDate O: http://www.dogworld.com/Aug96.doc
@@ -674,8 +675,8 @@
 rp test "aggregates" {
   <rdf:RDF
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-    xmlns:dc="http://purl.org/metadata/dublin_core#"> 
-    <rdf:Description about="http://www.foo.com/cool.html"> 
+    xmlns:dc="http://purl.org/metadata/dublin_core#">
+    <rdf:Description about="http://www.foo.com/cool.html">
       <dc:Creator>
         <rdf:Seq ID="CreatorsAlphabeticalBySurname">
           <rdf:li>Mary Andrew</rdf:li>
@@ -684,7 +685,7 @@
       </dc:Creator>
 
       <dc:Identifier>
-        <rdf:Bag ID="MirroredSites"> 
+        <rdf:Bag ID="MirroredSites">
           <rdf:li rdf:resource="http://www.foo.com.au/cool.html"/>
           <rdf:li rdf:resource="http://www.foo.com.it/cool.html"/>
         </rdf:Bag>
@@ -696,7 +697,7 @@
           <rdf:li xml:lang="it">Il Pagio di Web Fuba</rdf:li>
         </rdf:Alt>
       </dc:Title>
-    </rdf:Description> 
+    </rdf:Description>
   </rdf:RDF>
 } {
 ::RDFTag-::rp::topNode0 --- rdf:RDF
@@ -723,7 +724,7 @@
 ::StringNode-::rp::topNode0::description0::property2::alt0::member0::string0 --- The Coolest Web Page
 ::Member-::rp::topNode0::description0::property2::alt0::member1 --- rdf:li (rdf:_2)
 ::XMLAttr-::rp::topNode0::description0::property2::alt0::member1::xmlattr0 --- xml:lang = it
-::StringNode-::rp::topNode0::description0::property2::alt0::member1::string0 --- Il Pagio di Web Fuba 
+::StringNode-::rp::topNode0::description0::property2::alt0::member1::string0 --- Il Pagio di Web Fuba
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -777,11 +778,11 @@
 rp test "bagReification" {
 <rdf:RDF xmlns:s = "http://description.org/schema/">
   <rdf:Bag>
-     <rdf:li parseType = "Literal">  
-       <rdf:Description> literal, well-formed tag </rdf:Description> 
+     <rdf:li parseType = "Literal">
+       <rdf:Description> literal, well-formed tag </rdf:Description>
      </rdf:li>
-     <rdf:li parseType = "Resource"> 
-       <s:x>xyz</s:x> 
+     <rdf:li parseType = "Resource">
+       <s:x>xyz</s:x>
      </rdf:li>
    </rdf:Bag>
 </rdf:RDF>
@@ -834,13 +835,13 @@
        <rdf:Description>xyz</rdf:Description>
      </s:students>
   </rdf:Description>
-  
+
   <rdf:Description about="http://mycollege.edu/">
     <s:students parseType ="Literal">
       <rdf:Description about="http://mycollege.edu/">
        xyz
       </rdf:Description>
-      <rdf:Bag>          
+      <rdf:Bag>
         <rdf:li resource="http://mycollege.edu/students/Amy"/>
         <rdf:li resource="http://mycollege.edu/students/Tim"/>
         <rdf:li resource="http://mycollege.edu/students/John"/>
@@ -851,14 +852,14 @@
   </rdf:Description>
 
   <rdf:Bag>
-     <rdf:li parseType = "Literal">  
-       <rdf:Description> literal, well-formed tag </rdf:Description> 
+     <rdf:li parseType = "Literal">
+       <rdf:Description> literal, well-formed tag </rdf:Description>
      </rdf:li>
-     <rdf:li parseType = "AllOtherMustbeLiteral">  
-        <rdf:Description> literal, well-formed tag </rdf:Description> 
+     <rdf:li parseType = "AllOtherMustbeLiteral">
+        <rdf:Description> literal, well-formed tag </rdf:Description>
      </rdf:li>
-     <rdf:li parseType = "Resource"> 
-       <s:x>xyz</s:x> 
+     <rdf:li parseType = "Resource">
+       <s:x>xyz</s:x>
      </rdf:li>
    </rdf:Bag>
 </rdf:RDF>
@@ -897,7 +898,7 @@
 ::Member-::rp::topNode0::bag0::member2 --- rdf:li (rdf:_3)
 ::ParseTypeResource-::rp::topNode0::bag0::member2::parsetype0 --- parseType = Resource
 ::PropertyNode-::rp::topNode0::bag0::member2::property0 --- s:x
-::StringNode-::rp::topNode0::bag0::member2::property0::string0 --- xyz 
+::StringNode-::rp::topNode0::bag0::member2::property0::string0 --- xyz
 } {
 <rdf:RDF
   xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@@ -999,6 +1000,53 @@
 P: http://www.w3.org/1999/02/22-rdf-syntax-ns#type S: http://www.xyz.com O: typed
 }
 
+
+rp test nestedProperty {<?xml version="1.0"?>
+<RDF
+    xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns:dc="http://purl.org/metadata/dublin_core#"
+    xmlns:l="http://mycorp.com/schemas/my-schema#">
+    <Description about="http://www.webnuts.net/Jan97.html">
+      <dc:Subject
+        rdf:value="020 - Library Science"
+        l:Classification="Dewey Decimal Code"/>
+    </Description>
+</RDF>
+} {
+::RDFTag-::rp::topNode0 --- RDF
+::Description-::rp::topNode0::description0 --- Description
+::About-::rp::topNode0::description0::about0 --- about = http://www.webnuts.net/Jan97.html
+::PropertyNode-::rp::topNode0::description0::property0 --- dc:Subject
+::PropertyNode-::rp::topNode0::description0::property0::property0 --- rdf:value
+::StringNode-::rp::topNode0::description0::property0::property0::string0 --- 020 - Library Science
+::PropertyNode-::rp::topNode0::description0::property0::property1 --- l:Classification
+::StringNode-::rp::topNode0::description0::property0::property1::string0 --- Dewey Decimal Code
+} {
+<RDF
+  xmlns:l = "http://mycorp.com/schemas/my-schema#"
+  xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+  xmlns:xmlns = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+  xmlns:dc = "http://purl.org/metadata/dublin_core#"
+  xmlns:rdfs = "http://www.w3.org/TR/1999/PR-rdf-schema-19990303#">
+  <Description about = "http://www.webnuts.net/Jan97.html">
+    <dc:Subject>
+      <rdf:value>
+        020 - Library Science
+      </rdf:value>
+      <l:Classification>
+        Dewey Decimal Code
+      </l:Classification>
+    </dc:Subject>
+  </Description>
+</RDF>
+} {
+P: http://purl.org/metadata/dublin_core#Subject S: http://www.webnuts.net/Jan97.html O: rdfdoc#id2
+P: http://www.w3.org/1999/02/22-rdf-syntax-ns#value S: rdfdoc#id2 O: 020 - Library Science
+P: http://mycorp.com/schemas/my-schema#Classification S: rdfdoc#id2 O: Dewey Decimal Code
+}
+#########################################################################
+
 Class AgentInfo -parameter {
   {name ""}
 }
@@ -1039,7 +1087,7 @@
 	[string first "::Description" [[$objName info parent] info class]] == 0} {
       [self]::ai name [$objName set string]
     }
-  } else {  
+  } else {
     switch -exact $cl {
       ::PropertyNode {
 	[self] openProperty [$objName set propertyName]
--- ./xml/xoXML.xotcl~	Wed Jul 26 13:43:44 2000
+++ ./xml/xoXML.xotcl	Thu Jul 27 15:47:43 2000
@@ -56,8 +56,8 @@
   #puts stderr "[self proc]: Searching for $prefix in [self]"
   #puts stderr "[self proc]: There are: [array names [self]::nsArray]"
 
-  if {[array names [self]::nsArray $prefix] != ""} {
-    return [[self] set nsArray($prefix)]
+  if {[info exists [self]::nsArray($prefix)]} {
+    return [set [self]::nsArray($prefix)]
   } else {
     return ""
   }
@@ -67,7 +67,7 @@
 # search the chain for a prefix -> return the responisble namespace name
 #
 Namespace instproc searchNamespaceByPrefix {prefix} {
-  if {[array names [self]::nsArray $prefix] != ""} {
+  if {[info exists [self]::nsArray($prefix)]} {
     return [self]
   } else {
     return ""
--- ./mos/Agent.xotcl~	Tue Jun 27 12:31:23 2000
+++ ./mos/Agent.xotcl	Thu Jul 27 17:02:12 2000
@@ -25,7 +25,7 @@
 AgentMemSink instproc incCb {r t c} {next}
 AgentMemSink instproc endCb {r} {
   set rc [$r set responseCode]
-  if {[Agent array names responseCodes [$r set responseCode]] != ""} {
+  if {[info exists Agent::responseCodes([$r set responseCode])]} {
     [self] set responseCode OK
   } else {
     [self] set responseCode ERROR
--- ./mos/AgentManagement.xotcl~	Fri May 19 17:46:05 2000
+++ ./mos/AgentManagement.xotcl	Thu Jul 27 17:03:03 2000
@@ -142,11 +142,7 @@
   if {[llength $args] > 0 &&
       [lindex $args 0] == "agents"} {
     if {[llength $args] > 1} {
-      if {[array names [self]::agents [lindex $args 1]] == ""} {
-	return 0
-      } else {
-	return 1
-      }
+      return [info exists [self]::agents([lindex $args 1])]
     } else {
       return [array names [self]::agents]
     }
--- ./patterns/ChainOfResponsibility.xotcl~	Fri May 19 17:48:48 2000
+++ ./patterns/ChainOfResponsibility.xotcl	Thu Jul 27 15:51:05 2000
@@ -6,7 +6,7 @@
 ChainOfResponsibility instproc chainingFilter args {
   set cp [[self] info calledproc]
   #puts stderr "CHAIN [array names [[self] info regclass]::chainedOperations ]---$cp"
-  if {[array names [[self] info regclass]::chainedOperations $cp] != ""} {
+  if {[info exists [[self] info regclass]::chainedOperations($cp)]} {
     #
     # a value is found on the chain, if it differs from the failure value !
     #
--- ./patterns/SortedComposite.xotcl~	Wed Apr 19 19:59:29 2000
+++ ./patterns/SortedComposite.xotcl	Thu Jul 27 17:12:35 2000
@@ -63,9 +63,7 @@
     }
   }
   [self] instproc appendChildren args {
-    foreach c $args {
-      lappend [self]::children $c
-    }
+    eval lappend [self]::children $args
   }
 
   next
--- ./registry/Registry.xotcl~	Wed May 17 15:52:31 2000
+++ ./registry/Registry.xotcl	Thu Jul 27 17:04:36 2000
@@ -24,7 +24,7 @@
   foreach serviceTriple [[self]::tripleVisitor::db queryPredicate \
 			   "http://nestroy.wi-inf.uni-essen.de/schema/service#name"] {
     set service [$serviceTriple object]
-    if {[[self] array names services $service] != ""} {
+    if {[info exists services($service)]} {
       puts stderr "we have already such a service '$service'"
       # hier koennte man ueberlegen, den service zu loeschen oder nicht
       # zZT: loesche altes service
@@ -36,7 +36,7 @@
 
 Registry instproc query {service} {
   [self] showCall
-  if {[[self] array names services $service] != ""} {
+  if {[info exists services($service)]} {
     set s [set [self]::services($service)]
     return [[Place getInstance]::rdfCreator createFromTriples [[self]::tripleVisitor::db querySubject $s]]
   }
