From waterbug at step.nasa.gov  Sat Feb  3 12:33:47 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Sat Feb  3 12:33:49 2007
Subject: [pangalactic-commits] Add new "Python Powered" image.
Message-ID: <200702031733.l13HXlGO025812@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/node/images/maketoolkitimages.py 1.20 1.21
PanGalactic/pangalactic/node/images/toolkitimages.py 1.17 1.18
PanGalactic/pangalactic/node/images/PythonPowered.gif 1.1.1.1 None

Log message:
Add new "Python Powered" image.

Index: PanGalactic/pangalactic/node/images/maketoolkitimages.py
diff -u PanGalactic/pangalactic/node/images/maketoolkitimages.py:1.20 PanGalactic/pangalactic/node/images/maketoolkitimages.py:1.21
--- PanGalactic/pangalactic/node/images/maketoolkitimages.py:1.20	Tue Sep 26 00:40:55 2006
+++ PanGalactic/pangalactic/node/images/maketoolkitimages.py	Sat Feb  3 12:33:45 2007
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# $Id: maketoolkitimages.py,v 1.20 2006/09/26 04:40:55 waterbug Exp $
+# $Id: maketoolkitimages.py,v 1.21 2007/02/03 17:33:45 waterbug Exp $
 """
 Generate all the PanGalactic images in python code.
 
@@ -54,7 +54,7 @@
     "-a -n PLM plm.gif toolkitimages.py",
     "-a -n GridItem grid_item_16.gif toolkitimages.py",
     "-a -n wxPythonLogo wxPyButton.png toolkitimages.py",
-    "-a -n PythonPowered PythonPowered.gif toolkitimages.py",
+    "-a -n PythonPowered python-powered-w-100x40.png toolkitimages.py",
     "-a -n GreenDot greendot.gif toolkitimages.py",
     "-a -n meatball meatball_new.gif toolkitimages.py",
     "-a -n smalltwisted smalltwisted.png toolkitimages.py",

Index: PanGalactic/pangalactic/node/images/toolkitimages.py
diff -u PanGalactic/pangalactic/node/images/toolkitimages.py:1.17 PanGalactic/pangalactic/node/images/toolkitimages.py:1.18
--- PanGalactic/pangalactic/node/images/toolkitimages.py:1.17	Tue Sep 26 00:40:55 2006
+++ PanGalactic/pangalactic/node/images/toolkitimages.py	Sat Feb  3 12:33:45 2007
@@ -1579,48 +1579,245 @@
 #----------------------------------------------------------------------
 def getPythonPoweredData():
     return cPickle.loads(zlib.decompress(
-'x\xda\xc5XM\x8f\x9c0\x0c\xbd\xef\xaf\x18\x89\x8f\xad\x16\r\x82\x19`\xbe\xb4\
-\x12]\xb5=\x96C/\xb9VUO\xad\xca\xfe\xffS\xf3\x9c\x84\xc4N\xd8\xa1\xeaa\x13\
-\xcd$yqx\x18\'\xb6\xe1\xc3\xef\xd7\xf6\xe1\xdbc\xdb6\xbb\xae\xdb\xb5\xc3\xae\
-}|x=<|\xff\xf6\xa8v?v/\xbf\xbf\xff\xf8\xa5\x81#\x80\x9b\x06\xb2\xe6\x8c\xaa\
-\xa1\x0eP\t\xe8\x0b\x15\r\xf5\x80f@m\x83\xaa\xa1\x01PE\xd0\x19UC\'@9\xa0\x97\
-O\xa8\x1a:\x03\xda\x03:\\P5t\x01\xf4\x0c\xe8\xd8\xa2j\xa8m\x80\xd5t\x17\xcdp\
-\xfc\xd8\x03k\x81=\x01\xfb4\xa0\x02\xa3\xdb\xbf\xd2\xda\x0b*0\xd2`\x04v\xeeP\
-\x81\x91\n\x19\xad\xfd\x8c\n\x8ct\xd8i\xec\xeb\xfc\xe7\'\x00\xd2`\x82Pw@\x05\
-F*\x14\xc0>\x9fP\x81\x9d\xcd\xc2\xcd\xa5^)\xffp\t\xd0^6\xd2\xd6\x1b\xcb6\xda\
-Cs\x9f\xb6\xfe\xe7r\x9f\xb6}\x93\xb6\xfe\x8f\xf2&\xed!I\xabd\xd1\x97Q\xa9r\
-\x0f_\xa3=\xa6h\x95\x9a\xa7\x8a\xea\xac\xd0\xd7\xff\xb5i\x1d^Q\xdf\xe3n\x85\
-\x94W+\xb4]\x92v\x1e\xb3\xbc\xd05\x1b+\xf4G\xba\x9an+\x8b\xd3L\x80\xcf\xca\
-\xccHy\xf0\xd7)\xda>\xa6\xd5\xcfg\xcaJS\x8a\xb1\xd2\xfdl\xd2\x97\xd1m1:\xbc,\
-\xb3\xb1X\xf0l\xaa\xf4(\x96\xa7623h\x07I\x8b\xdd\xa0\xaa\xbc,H\xab\xa7b|\xce\
-\xcb\xbc\xd2\xcb5\x96?C\xa7\x02s\x99\xc0\xb5dB\xbe2\xb4\x9c\x18\xb4\'Nk6\xa1\
-\x9a\n\xbao\xe8P\xe0Gw\x8f\xd6a\xb0c\x80\x8fB^?k\xe5\xe6\xa3\x8d\rZ\xe6\xa5\
-\xdc\xde\xa7;\xdd\xab\x9b\xda\xeb\xf6*\xee>\xd5^y\xbf\x00/\xd36$\x06m\xe8\
-\xa5\x16\x81H[\\e\xb1e\xa8e\xe2\x89\x90\x951\xc3\xb5\xf5\xbc\x88Z\xdeK\x05\'\
-\x9d\xd9\xb6\x82\xdd\xc6=\xfd\xcf\\K#S$\xb4\xd5\xb2W\xa9\xad#\x06\xed\xe2\
-\xa5\xc2Y\xdc\xf5\xb2\x93IO}uc1\xa6m\xb9H\t;\xe7\xf67\t\xda\xda\xd1:/\xc5&\
-\x17M2b"}\x9f,\xeb\x16m\xf3+V\x14\xb1\xb6\xc4\x0bZ\xeb\xa5\xf8\xdcb7\xf2:JU\
-\xe3\xa2\xeb&\xdb\x16\xf6\x1c\xc7\xda\x82\x17\xb4]\x92\xd6i\xe4J8\xde\xb0\
-\x93s\xb2LR[Kk\xbcT\x9d\xd0v\xf2~=\x18\xd7L\xdb\xb5s;\xd9\'\x94\xd0\xb6&\xda\
-!I\xcb\xb4\r\xc7A\xbf\xda\xe8\xa5\\Db\xb4\xe4\xa5\xeaH[\xefO\xe5XI\x9f{\xcf\
-\'\xdb\x88\xe4\x0bh\xcfIZ\x17E\x12c\x19a\xeeE \x1f\x89B\xdaK\x92\xd6\xc6P\
-\x95\x18/}\xd1\x8ax\xeb[\xf1\xe4\x88\xb6k"Zc\x8c\x9b3\xab\xcc\x1a\x969\xd9\
-\xde\x16\xa1\x1b[\x12\xf9f\xd0\xb6\x92\x96e\x16\xf5j\xd6 \xf0y9\xe3\x1ew}\
-\xb9\xa3A{\x88h\xc3\xccB\xad\xda\x8c\xe3{=\x92\xf2\xa6\x9f\xc5\xbe\x19\xb4Gy\
-\x80Xf\xa1\xd6v(\xc7\xe1\x7f#y\xdb\x8f|3\x0eP\xd7E\xb4Q\xf4If\x19\x0c/h$\xe4\
-m?\xf2\xcdD\xdbK\xe7H^\'\x9f\xc6I\xdfe\x16y\x1fk\xab\xd1\xcb\xb8\xf8\xba\x1f\
-\xad|\x80\x1b\xb4\x14Y\x06h\x87\x88v-\x8f\xba\x9a\\\x8a\xb0+\x8f>&\x9b0s"*E\
-\xbe\xd9\xd0\x9ed\xe0c\xb16\xf2\xbb\xfe\xc7b-\xed\xa0\x99\x9e\x84\x8c\xc1\
-\xc27\x9b\xc0\xd7\x9de\x98g\xb1VF\x99\xc9\xfe\x16m\x83\x0cR\x8518\xc0\xf72\
-\x83\x04\xedE&5,\xd6Rn\x1c\xd8\xd6e\r\xd6\x86\xd7\xf1\xd9\x9fK\xeb\x91<\x1e\
-\xacu\xda\xba\xa4\xa6od\n\xc7"\xc7,w\xe6\x93\xcd3\x1c\x1e<\x11&O\xe7\xd9\xf6\
-\x17\xdb\xfa\x14\xaeoe\xc2\xea#\x87\xcb+R9\x95\xc3\xb3\xe9\x16F\xa7\x00\xf7\
-\xfd\xd2\xce\x07\tk\x7f\x90\xe9\xf9\xe2\x8d\x1c/\xf3:\xf0G\xcc\x1b\xcd,Z\x85\
-\xb8\xeb\xbbQ\x98\x9e\xf7\xd1\x1b\x1f\x8f>\xd2\xc7\xceA|\x11\x11\')\xef\xdf\
-\x1b9m\xfc\xc6\xc7\x13\x02\xb5\xb9\xdc\x93g\xb4\x897>\x9e\x87\x84\x17^\xe9o\
-\x91\x17\xb4C\xe2\xfd\x96g?\xc97\xf7:\x11\x89\xdf\x92\x0f\xdf\xafA{Z\xffvQ\
-\xffwY\xfdv\xd1\x9f\xdf\xe5\x93I\x7fy\x97\x0fDC\xf3.\x9f\xc3\x86\xf6]>\xfe\r\
-\xdaK\xd5\x7f\x01\x90E\x88\n' ))
+'x\xda\xdd\x9biW\x159\xdb\x85\xbf\xf7\xaf\x88\x8d\xe2P\x18O\xcdU*,kt6\n\xa8Q\
+\x97\n\xa28!\x01\x11\x15\xa7\xdf\xfe&{\xa7\xceQ@\xd1n\xbb\x9fw5Y\xab\x91}R\
+\xa9\\I\xea\xae}\'\xa7\x8f\xadm\x84\x7f,\x1c\rG#\x91\x8cD\x1aF":\xfa\xc7F\
+\xf4\xc7\xf2\xc2\xd1i!V\xc4T\xdd4}\xdbY-v\xda\x15hy\xec\x8a\xd5\x12\xa7\x19\
+\x83zq\xd3t#\xab\xa5NK\xb4\xd3\xba\xcc\x15\xabeN;\xa7\x9c\xd6V]\xd4\x15V\xcb\
+q\xadD{\x8d+V+\x9c\xb6\x8ezQ\x97\x96yk\xb5\xd2i1\xeau\xbd+V\x0bGN|,|\x83)\
+\xc5\xd0\x89-\xef\xdc\xf4a\xefHB\xa0l\xa1f\x91\xba\xe2D\xb0\xdcD\x9b}\xdfTq\
+\xe5D\xc0\\4\xbe\xe3}\x8f\x9a\xa0\xd9\xa6\xd8\xf7\x11E\xe0\x88\xc0\x89q\x95\
+\xc5l\x13<\x1aw\xef\x0bW\x9c\x08\xa0\xcb\xc3\x8d\xda\x18\xfd\x04Q\x04\xb1\
+\xe8\\q#\x0e\xa2gz\xa8\x99\x84N\x04\xd1{\xdc=)\xb3\xaep\xe3\x11\x81h4\xa9\
+\x998\x11D\xf3^lG\x89\x1b\xf5\x88D\x83\x18\'\xb5\x13A\xf4V\x8ekB\x04\xd1\xf5\
+IM7\x19\x11\x88\x9eb6\xd2:o\xcb\xd2\x89 \xba0\xd4\xccR\xf4\x13D\xe7\x82\xe1r\
+\x881\x88^\xa1\xf3YXD\xa5\xeb|\x0c\xa2\x87\x93\xcb\xdd\x1c\xc5 :\x89.U#W\x9c\
+\x08\xa2\xf3\x93\x9a\x0e3\x06\xd1\x94\x19:O\x11D\x1fpy2\xca\xf3\xca\xad\xcc\
+\x18D\xf7Q3\x1f\x15m\xe5\x06$\x06\xd1{5\xee\xa7#\x8aA\x14\xaa\xf1\x8d\xdcb\
+\x88A\xf4!\x18\x8bn\x94\x12\x10\xd5\xa8\x99geT\xb9\xcb\x13\x10=A?\xe36\xcf\
+\xaa\xdc\x89 *\xb1\xea\xd2\xa8\x18Un1$ Z\x97\xe3\xbb\xbbAN@t\x0cm\x16u\x15\
+\xd5\xae\x9f\t\x88\xa6\xd0f\xd6\x96Q\xed0\x13\x10]@\xcd2\xac\xf2\xda\xf53!\
+\xd1\xd0\xcf&w\xe3\x99\x80h\x035\xab\xb8\xce\x1a\xb7>\x13\x10=`\x9bUY5n\x94R\
+\x10\xb5\xa8YGM\xd8\xb8\xf5\x99\x82\xe8\xbe\xe6#S\xd9\xc7\xda\x89 J\xd0\xf96\
+s\xc5\x89 :\x05\xcc\xacq\xc5\x89 \xca\x87\xf1\xec\xf1t\xa4\x8c\n\x98\x8e\xa6\
+j\xd3\xd6-\x86\x14D\x91\x1e\xd7D\x9b$b\xec\xa9\xdb\x11c\n\x88"\xdff\x17\x15\
+\x8e=\x05\xd1MF\x9f\xa2\xe9;\xb7\xea2\x10\xcd\xa1\xcd<u\xc5\x89 Z\t\xc6\x97\
+\xbb~f :\xc3\x9a\x9d+N\x04Q\x816\xdb\xde\x06\x167\xef\x19\x88N\xe3r+U\x886\
+\x19\x88>\xa2K\xf1\xc8>\x1f\xb8\x1cDK\x9c\xe2\xd0\x15\'\x82\xa8C\xcd\xaevQ\
+\xc4\x89 z\xc3\xcb\xedR(\x1cf\x06\xa2\xcb\x03fZ"N\x82h\x8a5\xb3lT\xb8\xcbs\
+\x10\xcdp\x8erW\x9c\x08\xa2\x8b\xacY\xdag\xce-\x9b\x1cD\xbd\x1f\xe4\xae\xc0c\
+\x98\x83(\xa3X\xb9\xe2DF\x06F\x9b4\xab\x0b\xc7\x9e\x83h\x99A \xcc\xd3\xd2-\
+\x9b\x1cD\x171G%~\x9c\x08\xa2\xa7\xc3 \xd7\x15n\x04\xa2\x1d\xe1;\xdf\x94\xee\
+F\x05\x88\xce\xe9\xb1\xe8nT\x80\xe8\xb6\x19.\xaf\xdd\x80\x14 \x12\x8c\x0c\
+\x91+N\x04Q7\xa9\xe9\x06\xb9\x00\xd1\xe1\xf1\xddk\xd4\x04\xd1\x12:\x9f\x95E\
+\xc9\xcbA\x94\x0c]\xeaK7\x9b\x05\x88\xde\xb2fST\x88!\x05\xe7\xc8\xd7\xcc\xa3\
+\xca\x8dg\x01\xa2yv\xa9v\xc5\xbd\xa3@\xd4K_3Ed(A\xa4\xccXt\xec%\x88^2.ueY\
+\xb9eS\x82\xe8\x9e\x1f\x90\xbc\xa0\x08\xa2e>\x08\x89+N\x04\xd1!\xbfB\xfa\xb0\
+q\xec%c\x9d\x1c_\xee\x88J\x10}D\x9bIQ\x84\x18\xcf\x12D\xd3\x01\x97M\xd9\xb3M\
+\x10m3\x04\xb5UR\xe7x\xc3\x02\xe9\xc10\xca\x1d\xe2E8\x02\xd353\xae\x8b\xb7\
+\xdc\x08P+\x0cMqU\xd65TP\xddB\xb7\xea\xd6\x15\xa8\xc0\n\xf8Zh\xca\xb2\xe6\
+\xfb\x1c\\\xa5_\xa5}\xd2&P\x01\xb6\x15\x8cU\xbchG \xfb"\xc7j\x06\x15h;\x0ceI\
+\x13\xb7#\xa8`\x9bF\xdd,u\x05F\x01l\xd3\xac[5E\x0b6\xfa\x87\x10}\xa8\xc3&e\
+\xbb4\x10!\x03_\xe1\nT\xb0\x9dE\xcf\x9aQ\xd3z\x15lw\xd1n\x93\xb5Q\x8bq\xa0\
+\x87\xb84\xf47G\x9c\ni"\xa6\xd83\x18%\xa8\x8c~\x93\xba\x18\x07\xda\x88G\x8cJ\
+Q\xdbt\xec/\xd8\xce\xd0\x91\xe1\x07~\x87F\x02jS\xb6%\xfcWH\'!\xfcl\xf6U\x87\
+\xb9\xa0\x958EoU\xb9\x02\x15l3\xf4\'#W\xa0\x82\xed9\x9dPn\xfd\x15U\xb0iZ\xa1\
+(m}]\xb0\x19\xe5\xdbm\x11\x06C\xfa\t\x83\x9euaWy\x15l\xaf\x19\xb4\xd2\xb4+\
+\xa8\xd2Qp\x1cbW`\xdb\xc06\xcb\xd5?\x1a\xdc\x18=\xc5\xd5a\xccZ:/\x9a\x8a\x1d\
+\xe3[\xc8z\x8c\x0e]\xc5\t\xc6\xcd\xd2\x15\xa8`{\xc2ufk\xfa\x16\xc0v\x97\xf10\
+\xcc\n_\x17l\xd3z|\xb7\x06*\xd8n\x82\xado\\\x81\n\xb6\xd3\x13\x15\xa3Noq\x92\
+\xd13r\x05\xee\x13lGp\xb74\xce\xf3\x123Owq\x9a\xaa}\xb4K\xcc&\xed\xc5I\xf4\
+\xa1\xac]\x81\n\xb6\x861,\xb2\x86\x0b+\x8a\x06\xa3\xe1\xf3\xd6\x15M\x851\xa3\
+\xc3\xa8\x18\xda\x8a<\xa9\xd8.\xd8z\x06\xa7\xdc\x1a\x1c\xfab\xb0\xbd\xa4\xbf\
+J\xac\xef\xc0\xe8\xd0d\xbc\x98\xa8\x18\x1d\xba\x8c\xb7\x18\xc9\xbc*3\xbc\x04\
+B\xda\x8c\xc7C\xdd\xce\xab`\xdbd0\x8a\xcb\x06q<\xa4\xd1\xd8\x9a\xd4\x05\x05\
+\x9d\xc6\xf2DE\xd4\xa0\xd5x\xc0\x10\x99\xb9\x02\x15l\x87\x19\xcf\xca*\xaci\
+\xe4\xc1\xb6A\xff\x93\x16}\x8d\x15E\xb7\xf1|\xa2b\xd4i7\xae\xb3\x85\xbe\xcaj\
+\xb0\xd1o\xbc\xf1u\xad+\xc38\xd0p\xdc\x95\x9c\xb7\xa2d]:\x8eC\x8c%\xbd+P\xc9\
+\xc68\xd9\xd9\x18\x83\x99\xa7\xe7\xa8\xd1BS\xb8\x02\x15l\xe7\xe9nF6\xc6`\x1c\
+\xe8:\xe6\xe9\xb8rW\xa0\x82\xed\xa5\xf2\xf9Z\xc5\xc8E\xdf\xf1\x86\x9e+\xb2\
+\x8b\x8f=\x03\x9ba\xe4J\xdbQ\x8b9\x86\xf3\xf8\xf3(\xeb\x16m\xd26\x7f\xba\x94\
+f\x04\x95\x11f\xe4\nT\xb0\xbdc\x94\xab\xad\x97C\xcfh>\nF\xfb\xb2i\xe0\xf0B\
+\xba\x8f\x87\x8c0\xb1+P\xc1\xb6 |\x1f2F9\xfa\x8f\xab\xcc\x12s\xeb\xbe@A\x03\
+\xf2\xc1\xf8T/\xee@A\x07r\x9c\xb1\xa4q\x05*\xd8F\xc6\xdf\xadd\x94\xa3\x07\
+\xb9\xca\xa70u\x05\x99\x19\xe6\xed\xe2\x90\x9a\xd9\xf4\x15*\xd8>1\x1aY\xdb\
+\x0fK\x1a\xd2\x86\xe4>\x07\xb5\xd1\x04\xa3N\x1fr}\xd2\x02\xeeF#\xd2L\xea2\
+\x0f\xe4\x9adL\xad\x0bz\xab\x90V\xe4$\xee\x96\xc4Y\x05[\x1b\xd2\x8b\xdc\xa1\
+\x9aeC]\xb05C\xda\xd7%X;t#\xb7\x18\xa3\x9a|T"\xfe\xd2\x8e\\b\x84I\\\x81\n\
+\xb6\xc5\xc1n\xdb\xe7\x1a*\xd8\x9e\x9aq\xbbT\xc1vgR\x17\x14\xb4$+r\xacb\xcc\
+\xe8I\xae\x0cu\x93\x04\xe3@S\xb2\xc2\xc8U\xd8X\xc0v\xc1v\x99j\x97\xf7\xf0\
+\x83!m\xc9\xcb!\x8bI\x90?\x86\xf4%\xc7\x87v\xf34F\x9e\x0c6\xc1(\x97\x14\t\
+\xec[D_\xf2E\x8d[@RL_\xf2i\xd2\x02\xb2b\xfa\x92\x0e\xa3Se\xae@\xe5\xf3\x065\
+\xe9\xf3\xb6b\x0b`\xbb\xc7\xa7;\xb2q\x87u\xc1v\x89q\xb2)\xe9\xd7"\xfa\x92U\
+\xfa\xbd\xdc\xda0$\xd1\xf4%\x1b\x03[\x95a\x7fe\xc4\xe7\x8d\x11&\xb5\xb1 \xfe\
+\xd3\xa5\xfb`[\xa0g+\xbdg\x8b\xe8K6\xa4W\x13X\xdb\x88\xbe\xe4\x1ec\x1f\x96\
+\x14T\xb0\xbd\x98\xdc-\x87\n\xb65\xc6\x9d\xc4\xfa3\xf4\x8c\xbed\x8b\tPoSOP\
+\xd0\x97\xdc\x19\xe68\xcf\xa8\x82m\xd90E\xb7\x0f\x0bF\x87\xbedy|7\xec\tE\xde\
+\x97\x18\x9f~\xe6\r\xfa@_\x92\xa2ne\xc3F\x83}\x07\xfa\x92\xcfr\xdc\x02\xeb\
+\x82maHK#\xa4\xa5\x11}\xc9\x9c_\xd5u\x8a\x88\x18\xd1\x97<\xa6#\xb53\xe1U\xb0\
+\x05tm\xb1+P\xb9\x0f%<E\xd3b$\xe9K\x96\x18SKW\xa0\x82\xed\xd9\x90P\x8c\xe0K"\
+\xfa\x92#l\xa1\xb1.\x13\xeb\x81\xbed\x83\xd13\xf4n0\xa2/y+<E\x017\x18\xd1\
+\x97<\xe6\x9b\xa1n:\xc4\xc9\x88\xbe\xe4.\xdb\xed\x9b\xbc\xc5\x0c\xd1\x97dj\
+\xdc\x07\x8c\x0e}\xc9{\xed\xf3\xde\x16\xf17\xa2/\x99\xe5lF\xae@\x05[\xcc\x9e\
+\xb5m\x8el:\xa2/Q\x8c\xbf\xd6k#*G\xf4%\xaf\xe4\xf8n\xe8\x19}\xc9"[\xc8\xdb\
+\xa2C\x1f\xe8K\xf2at2\xa4\x85\x11}I1\xf47.S\xa81\xd6\xba\xdf:\xb0q\xb9wk\x9d\
+\xbe\xe4!cu\xed\xdc\x1c\xea\x82\xed\x06\xb7\xeb\x12W\xa0\x82\xed\xc5\x90,\
+\xb7\x9c\x0b\xfa\x92\x17|\x07\x146\xd6\xb2.\xd8r\xe3S\xf0\xb4\xe7N\x18\xd8\
+\x8e1\xfe\xc2\xc6c+\x0cl\x91\xf1i\xb0}MC\x05[&\xc7*\xe6\x82\xbed\x87\xaa}\\\
+\xbcJ?\x190\xcb\xca\x86v\xc16b\x04\xaf\xf3\xb0\xc0\xfa\xa5/\xb91d\xe2\x19#\
+\x0c}I\x12\xf8\x04\xdb\x8f$}\x89\xc6\xdd\xb0$AA_r\x9a\xc9x\xe5"\x0fT\xb0]\
+\x1b\xda-+\xee\xe8\x81\xed\x8b\x19\xab\xe8/}\xc9q\xbaA\xbb\xa6K\xaa\xf4\x93\
+\x93\xba\xa0\xa0/Yd\x1f\xfa\x92\x89rD_R\x0c\xe9s[\xf2n`{\xc6v\xb3"\xf3u\xc1\
+\x96O\xea\xf2n\xf4\\\xc3\xdai\x18\xcf\xe8K\xe2!\xd9\xe6&`\xc4\x1d\x91h\xa2b\
+\xe6\xb9%2\xc7\x1c\xbcp\x05*\xd8^\x0fuc8\xdd\x88\xbe$\xa4#M\xcb\x10>5\xa2/y\
+\xa0\xc6}`\x0b`[\x9d\xb4\x80Q\xa7/9\xac\xc7u\xd9\x02\xd8V\xb9\x19X{\xa7\x1b\
+\xd1\x97\xb4C*\x9e\xc1AG\xf4%_|f\xe9\nT\xb0-L\xeab$\xe9K>1\x9e%\xa5\x1f\x1d\
+\xfa\x92e\xed\xc7\xb7\xf7*\xd8^C\xb5OE\x03\xf7\x1a\xd1\x97\x08\xde\r[\x14P\
+\xc1\xd63\xcae\xde\xbdF\xf4%+T\xad{\xf0*\xb7\xb1\x06\xe2\x9e\x11\x9c\xbe\xe4\
+\xd5\x90\xf9D\r\xeb\x82\xad\xf0\xdbh.\xaaB\x05\xdbs\xe9\xdb\x8d\xa9\xd2\x97\
+\xacOZ@\xcf\xe8K\x1eMT\x8c\x03}\xc91\x8c\x83\x1d\x85Q\xc3\x8df\xb0]`\xe4\x8a\
+]\x81\xca\xfc\x8d\x14}Y\xc3mG\xf4%\xb7\xa5\'.\xe0\xb6#\xfa\x92\xd7t\xdb\xf8\
+\x81\xca\xfd\x9f\xa1\x0f)v\x1a"\xfa\x92\xab|\x93\xd9 \xd5`\x8e\xe9KF\xc1\xb8\
+.6\x8c\xe9KZ\xfa\xf5\xdc\xbaZ\xecl\xd3\x97\xdc\xe7AE\xda\xb2\xdd\x98\xbed$\
+\xfcNC\xd6\xe6P\xc1v\x88\x14Hg\xa0\x82\xed\x0e\xfbP\xd87\x0e\xef\x06\xb6\x9b\
+\xcag\xf9\t\xde"1}\x89\xe6\xdd:W\xa0\x82-\x18\xfa[t\xec\x03\xf7\x14&*6\xc8\
+\xb9_r\x8d\xa72\x89+\xd8\xb4\xe7\xc6\xb7\xf0\xb9\x7f\x8ew@L_rJs.\xda\x94\xed\
+\xd2\x97\x9c\xe0\x0c\xf5m\xe3\xeb\x82\xed4\xdbm]\x81\n\xb6\xcf\xc3\xa8\xd7\
+\xd8X\x8d\xe9K\xdep\xbb5\xf1.>\xa6/95\xec`\xd4\xd8\x7f\x88\xfd\xa9\x0bO\x8cz\
+\x1b\x13AL_\xa2\xb4\xdf\'\x18\xf9\xba`[\xd1>\x1b\xaf\xf0f\x88\xe9K\xd6\xe8\
+\xdaj\xeb(\xa92\xc71~G\xa0\xc0\x06iL_"\x19\xd7\x13\xef\xd7c\xfa\x92\xd9!\xcb\
+o\x91\xe5\xc7\xf4%\x92o\x86\xca6\x81\x9e\xd1\x97\x9ceL\xc5\x06\x04T\x1e\xbf\
+\xd0\x157n[\x10*\xd8J\xe5sS:\xdd\x98\xbe\xe4>\xd5\xda\xe6\xb78\xed\xa0/Y\r|\
+\xe6\x1e#\x96\xc4\xf4%\xcfy\x0c\xd1X\x13N\x15l\xcf\x86\\\xbaA\x8c\x8a\xe9K\
+\x8eqM\xc6\xae@\xe5\xce$\xa3Q\xe6|*T\xb0\x1d\xa1{m\x9c\xc7\x83\xca\xb3\xb2!?\
+\x1e!\xef\x8e\xe9Kf\xe8=\xa3\xaa\xa8\xd9\x07\xee)p\xad\x17\xd6\xcd\x81\x98\
+\xbe\xa4b<\x1b\xf9\\:\xa6/Y`$(\xaa\x16>5\xa6/\xf9\xe0wQ\xac\xefC\x1f\xe8K\
+\x16\xd9n\xe2\nTze\xe5s\xd3\x1cn0\xe6~\xc9q\xaa\xbd\xcdX\xd9\x02\xd8\xce\x1a\
+\x9f\xddf|\x86\xe8Kf\x99\xd5\x8d:\x9eJ\xc4\xf4%\x8f\xf8\x14v-w\xf6b\xfa\x92\
+\x80ylh\xbb\xcb\xbb\xf1(\x90\xb94Rw\xa8\xcc\xdf\xf8d\x95\xae\xe0@\x0bl\xd9p\
+\x14\xe9\xd7:}\xc9\':\x90\xc8\x15\xa8`\x8b\x87\xbc\xb0\x8c\xb1\xa2\xe8K^\x07\
+\xfe,t\x84\xfd\xb3\x98\xbe\xe4\x90\x1c\xd7\xe5\xdd\xc0\xb6Io\x84\x1f\xa8`;2i\
+\x17\xf3F_\xf2\xc4\xf8>\xa4\xc8\x84c\xfa\x92\xd2\xf8\x0c;\xeb\xd9\x02\xd8\
+\xae\x0cwkb\x8c$}\xc9+>-\xb5\xf7\\1}Ij\xfc\xe9i\xe5Uz\xae`\\\xb7\x81\n\xb6\r\
+1\xaeK\x95\xfb\x93C\xd6\xdc\x14T\xf9\x0e\x18(\xfa\x84g\x83`\xeb&*V\t}\xc9\
+\xad\x89\x8a\xf5K_rs\xc8!\xad\x93\x84\xca=\xbc\xc0\xe7\x85\x192\xec\x98\xbed\
+-\x18\xd7\x05\x05}\xc9y\xba\xb6\xd4>\x9dh\x97\xbe\xa4d$\xa8\\\x81\n\xb6Gr\
+\xdc\x07\xb6\x00\xb6\xcbC\x1f\xd2\x04#I_ri\xa2">\xd0\x97\x9c\xe5\xdd\xbabT\
+\xb2\x05\xb0}P\xfe06\xe4a,}\xc9\xcc\x90\xfb\xf7)\xd6\x19}\xc9\x95!\x97\x8exF\
+K_r\x83-\xe4E\xc6CZ\xfa\x92s\xc3\x81l\x91\x82\x8d\xbe\xe4\x0e\xb3\x99\xd8\
+\x15\xa8\xccM\xe9\x11m\xec\xac\xd8.\xd8\x9e\x8e\xc7\xd7\xb7\x006\x15\xf0\x04\
+\xb4\xa8\xe1\x95c\xfa\x92\x13\xf4}\x8d+P\xc1\xf6\x99N\xac,S\xaf\xf2\xfd&<q\
+\x05\x7f\x16\xd3\x97<f\x9c\xec\xadU\x06\x05}\xc9\xa9\x818\xcd\xa8\x82\xed\
+\x03\xb3\xf1\xcc\xefZ\xc6\xf4%\xb7\x18\xfb\xa2\x92\xa7O1}\xc9\xfcx\x1c\x90\
+\xe5\xc7\xf4%3~O\xa1H\xb0k\x19\xd3\x97\x14\xc1\xb8.F\x87\xbe\xe4%\xcf\x80\
+\xaa|\xe8\x19\xd8\xdei\x7f\xb6M\xdf\x17\xd3\x97\xdcf\x1f\xba*\x85k\x8b\xe9K\
+\xa6\x8d?t\xae\x11=\x13\xfa\x92K\x03[\x9d\x8f\xa0\x82\xed\x04w0\xec\\\xc2G%\
+\xf4%\xb7\xf9\xee\xc6\x972\xa0\xd2s\xd1\x81\x94u\xd5\xb0]\xb0u\xcc\xeaF\xae@\
+e\x1e\xc0\x98\x9a\xda\xdc2\x84\n\xb6O\xde{\xba\x1f\xa8`\x9bS>\x13.q\xe6\x93\
+\xd0\x97\x04\xdc\xdb\x0e\xeb\xb4e\xcf\xc0V\x0f\xab\xa4\xc39CB_r$\x18\xab\xb8\
+\x1b}\xc9\x19\xe5\xb3\xf1\xae\xe51=\xbd2\xe3zb_\xd38>\xa7/y\xa2|v\x1b#\xefN\
+\xe8K$\x9dc\xef\nT\xb0\xa5C\xce\x10"\x1bO\xe8K\x92\x89\x8a\xa3~\xfa\x929\xe3\
+s\xff\xa6e\x0b\xccq&u\xd93\xb0\x95\xc1XE\xcf"\xee\xbdj?\xbee\x17\xfd\xe9T\
+\xb0\xdd\x9d\x8c\x03\xeb2\xc71\xfep\xbe\x83\x13K\xe8KN\xd3\x99\xe3\x90\x18*\
+\xd8\xd6\x85?\x8d\xaeq\xc2\x9d\xd0\x97<\xe0; t\x05*\xd86\x8d\xcf\xb0y\x8e\
+\x93\xd0\x97l\xfa\x03\xe9\xb4\xf7u\xc1\xf6J\xf9\xbc;\x86\xbbJ\xe8K\x8e\r\x99\
+D\x8eh\x94\xd0\x97d\xf4FQ\xc6S\x98\x84\xbed&\xf0\x196=WB_\x12O\xeaR\x05\x9b\
+\xe4;\xa0\xf5\x9e+\xa1/y1\xdc\x8d\x8e)\xa1/\xd9\x9c\xd4\xa5\n6\xc9u\x16\xbb\
+\x02\x95~\xd2\xf8l<\xc1\xd9LB_2\xcbho\x038\xf62\x13\xfa\x92\x87t \x8d+\xf8>\
+\x07\xdf\x01C\xce[\xc3\xe1%\xf4%\x87\x86\x0c\x9b\xd1(\xa1/\xd9\x9e\xd4\xc58\
+\xd0\x97\xcc1\xf6\xd9\xa8\x89s\x9c\x84\xbe\xe4\xc6\xa4\x05P\xd0\x97dC\x0b]\
+\xc9v\xc1\xf6\xd9\xf8s\xef\x02YsB_\x92N\xea\xb2]\xb0\x1dgLM]\x81\n6\xc5h\xdf\
+\x17-U\xfa\x92p\xc8\x8fCD\xf0\x84\xbe\xe4\xecD\xc5H\xd2\x97<\xa5Z\xe6i\xc5/\
+\xb60\x96\x0c9o\xc2o\xcb\xd0\x97\x9c\x9f\xa8\x183\xfa\x12\xa3\x99}U<\tJ\xe8K\
+f\x87<\x80\xf9fB_R\r\xd9x\xee\xeb\xd2O\x0e\xed\xe6\x15\xeb\x82mM\x8fU\x8c\
+\x19}\xc9\xe6\xb0v\xe82\x13\xfa\x92z\xc8\xc6[\xc4\xdf\x84\xbe\xe4\xc6\xa4]\
+\xd6\x05\xdb\x1b\x9e\x80\xe4\xae@\x05\xdbG\xb6P\r_\xf0\xa1/\xb9:d>#\xe4\xd2\
+\t}I\x14\xf0{\x15\xd6\xe9b\x8e\xe9KV\x87\xbaqC\x15l\x8f\xf9%\x1f\xdbj\xc3v\
+\xc1\xf6\xd1\x9f\xfe\xba\x82/\t\x81M2\x82\xdbP\x8b\x0c;\xa1/\x99\xe2\xfa\x8d\
+m\x1eJ\x15l\x87\xfd\xaa\xb6\x99,\xeeF_\xf2Y\xf8\x13\xe8\x08\xd9mB_2\xcf\x08\
+\xde\xba\xb3 \xa8`\xbb\xee\xbd\xbd+P\xc1\xf6q8\xa5\xcd\x18\x11\xe9K\xce\xf0-\
+\x82/\t@\xe5;`\xc8\x8fs\xaf\x82\xad\x11>/Lpj\x94\xd0\x97T\x8c}\x85u\xe6\x18\
+\x07\xfa\x92/t\xdb\x95+P\xc1\xf6\x90\xce\xbcs_\xe5\x81\n\xb6\x94\xdf\x1bD\
+\xda\x0c\x15lK\xc6\x9fl79\xfaK_\xf2\x8eq2v\x05*\xcf\xf2\x87\\\xba\xc1\tSB_\
+\xd2\x0eYs\xd7\xb3\xbf`\xbb&|f\x991N\xd2\x97\x9cP>\x0b\x8d\n~e\x0blW\xd8\x87\
+\xce\xed\xabA\xe5w0\xd4X\xc5:\xa3/y\xc7\x9dS\x1c#B\x05\xdb\xf6\xd0\xb3\xbe\
+\xa7\n6!\xc6*\xd8\xe8K\xd6y\x96T\xe5\xa3\x82*\xbf\x83\xc1\x88X\xbag\x0b*\xd8\
+\x16\x95?U\xa6?K\xe8K\xde\xd1]\xd9\xde\xf39\xa6/Y\x1b\xf2\xcd\n\xcf|J_\xf2tP\
+[\xe4\xa6)}\xc9\x13>C#W\xa0\x82muR\x17\xdf3\xa3/Q\xfe\xc4\xb1f\xb6\x98\xd2\
+\x97\xec\x0cYh\x88\xe7-\xa5/9\xc3\'+\xad\xaa\x9a-0\xc7\x91\xfe\x844\xc2\x0eQ\
+J_\x923\x0b-m\x1e\x8b\xef\xaa\xd1\x97\xf4|\xde\x92\xbahH\x01\xb6\xb3|\xc7&UD\
+\x95\xbe\xe40\x9f7;dx\nS\xfa\x92\x94w\xab]\x81\xca\xbd >\x01I\xcbo\xbe\xa4\
+\xf4%\xdb\xcc\x0e\xea\xba\xe6\xd7\xed\xc2a\xde\xfe\x13? J\xffsD\xd9\xff\'")\
+\xf4\xdf\'\xca\x7f\x8e\xc8\x08%\x02qNL\x89\xc3\xe2\x88\x98\x16\'\xc4\xec?@tR\
+\x9c\xf9\xfbD\xc5AD\xa7\xc5\x9c\x98\x11gE("\x11\x8bD\xa4"\x13\xb9(D)Fb\xf37\
+\x13\xbd\xfb\x1dD\xe5ADO\xc4k\xf1f\x1f\xa2\x1d\xb1-\x9e\x8b\x8d\xdf\xc0\xb1,\
+\xb6~#\x11\xf7e\xbf_\xe7\xb1X\x15O\xc53\xf1B\xbc\xdc\x87hM|\xf8\xad3\xf3[\
+\x88\xc2\x1f\x13\xbd\xb7D+\xf8\xd7\xdb}\x89\x1e\xfd\xc4}\xd6\xc5\xab\xaf\xfe\
+\xba\xfa\x17\x88\xae\x89zO\x0c\xb9%\x1a\xfb\xdf}\x88\xdc\xbb\xeb\xcf\xef\xf7\
+\xe6\xae%\xaa\xc4\x82hE\xbf/\xd1\xf9\x1f\xb2\\\x10\x97\xc4eqE\\\x17\x17\xc5M\
+(\x97\xc5\x9d\xf1\xa7W\xac\xea(\x16m\x99\x17\x9d\'\xba-n\x88C\xe2\x8bx\xe0k\
+\xd5\xf6\xefyq\xca\x96c^9.\x1e\x8a%q\xd4^\xf5E\xdc\xff\xe6~\x7f:\xa2\xf8\xc7\
+s\xe4\x88\xbe\xff\x1c\xfd\x98\xe8\x9e\xbd\xe7G\x90|\x16\x9f\x04\x07t\xf1+")\
+\xb5\xdc=G\x8b\xc2H%k\xa1\xe5\xa2\x08\xec\xa7\xe7\xe4\x94<,\xaf\xda\x8b\x8f\
+\xc8iy\xc2*\xb3r^\x9c\x946\x9f\x17g\xe4)qZ\xee\x99\xa3\xe4\x9f#\x9a\xb3\xbd\
+\x1a~f\xe4\x92\xed\xdd\xc1D\x97\xc7\xebl^\x9c\xb5\x9fv\xf6\x8a\xd0\xf7:\x92\
+\xd7E,\x13\xdbj\xea\x95\x87\xf6\xd3X\xee":\xc03d2\xff\xa6\x14\xf2\xaf\x11\
+\x95\xf6\xdf\xa3\x9f \x9a<G_\xc4\xa6\xfd\xf4\x9d\x1d\x89\x9bC\xd4\xb5m\xbc\
+\xfe\x86\xe8\x8d\xfd\xf7\xf1\xdds\xb4\x8fg\xd8\x91\xdb\xf2\xb9\xdc\x90\xcbrK\
+>\x96\xab\xf2\xa9|&_\xc8\x97r\xcd\x96\x0f{\x88\xde\xcb\x15\xf9V>\x92\xeb\xf2\
+\x95\xbc*\xbfG\xb4lY.\x88_!2\xd2\x11]\x93f\xdcfm\xdb\xbbu0\xd1\x1e\xcf\xd0\
+\xc8\xbb\xb2\x92\x0b\xb2\x95\xbd<//\xc8\x83V\xdd%yY^\x91\xd7\xe5EyS\xde\xf9.\
+\xd1"\xc6\xf7\xd7\x89\xdc\x1c\r\x8d\xce\xdb6\xba\x83\x89\xf6x\x86\xdb\xf2\
+\xc6_&:$\xbf\xc8\xfd\x89\x1e\xd8\x7f\x9f\xb2\x9fM\xcbcr7\xd11\xf9}\xa2\xe3\
+\xf6\xba\x87r\xf8tI,\x1dLT~\x1b\xbd\x8f\xca\xfb\xbfDtO~\xfc\x86\xe8\xf3.\xa2\
+[\xf2\x93\xb4\x92\x9e\x17R\x93l\xda\xf6\xc9\n\xfa\x88}\xceId\xf4\'\xa1\xf4\
+\xfeDJ\x9f\xf2W>\xb4\x91m\xce*?"r\xd1;\xde\xe5\x19\x02\xfdsD\xe74\x89\xa6\
+\xf4a\xfd5\xd1\x11=\xad\xbf&:)\xa6\xe4\x15\xbb\xd6N\xe8k\xd0f\xe5\x8cU\xaf\
+\x88Y\xbde\xdf0\'QwI\x9e\xd1\xa7\xf5\x85}\x89,\xbb\xad;\xa7g\xf4!\xbb^\x9dp\
+\xd0\x1c\xc5\xbb<\xc3\xd9_$\nu\xf4\rQ\xac?\xcaoW\xddM\xfb\x16\xfc\xf6\x8d\
+\x9f\xe8Y7o\xb6\xa7O\xc6u\x8f[U\xd8H\xbc\xfe\x95\xd3H\xf5\xe0\x0ff\xe5g\xc4~\
+D_m\xdfVz\xf0\x1f\xf58\x12\x8e\x89\xa2o\x89\xf2_"*t\xa9G\xbb\x886\xf5~\xcf\
+\xd1>\xef\x05\xbdh\xa3\xd7\xef\xcf\xf8\xe2]\x9e\xe1\xdd\xbeDO\xf4k\xfdF\xef\
+\xe8m[\x9e\xeb\r[\x96\xf5\x96~\xacW\xf5S\xfdl\x17\xd1\x8b\x9f$r+\xa6\xf9\x07\
+r\xd8\xf8\x1b\xcf\xb0)^Z\xa25\xfd5\xd1\x07\xfd^\xaf\xe8\xb7\xfa\x91-\xeb(\
+\xaf\xf4U[\xae\xe9Z\xdf\xd2\xcd\x1e\xa2\xbb\x07\x12\xad\xdb7\xd3I\xfb\x14\
+\xa5\xbfy\x86<\xd1.\xcfP\xed"Z\xd0\xad\xee\xf5y}A_\xd2\x97\xf5\x15}]_\xd47\
+\xf5\x1d\xbd\xa8\xe7u\xa7o\xefCtcL\x14\xcaw\xfb\xde\xf7\x90\x96\xfa\x8b\xae\
+\xff\xa1}\x06\x9c_|\x15\xbd\x1f\xec":\xa5\x8f\xe9\xe3\xfa\xe1/\x10-i\xf1\xaf\
+\xfd\xcc\x8a\xa3z\xb7\xf7\x8ewy\x86\xfb\xfa\x9e\x9e\x10}\xd4\x9f\xf5\xa7_$\
+\x12\xe6_\xdci1\xda\xec\x99\xa3]\x9e\xc1\x98\x81H\x99^\x06\xe6\x95>g~\x85h\
+\xea_\xe4\x11\xe2\xb09\xb2\x97h\xd7>\xc3\xac\x986\x13\xa2\x13f\xd6\xfc\x1a\
+\xd1\xc9\x7f\x95\xe8\x8c9\xbd\x87\x08\xe7u\xdf\xe4\xb0s\x7f\x83h\xc6L\xefz\
+\x8an\x8a\xb3&4\xc3NXdb\x93\x98\x14\xbd\xc8Ln\xa8\x15\xf8]\x9a\x11~o\x9a\xa3\
+\xfa\xdd\xb8\x9fO\xcck\xf3\x06\x7f\xed\xd8k\xb7\xc7\xfas\xb3a\xffZ6[f\xf7s\
+\x94\xec\xd9g\xd8\x14\x8f\xcd\xaa\xf9+DO\xcd\xb7Q!3\xcf\xcc\x0b\xf3\xd2\xac\
+\xd9\xdf\xee\xcd\xfe\xc1\xbc7+Vyk\x1e\xd9~\xac\x9b3\xe8\xcd+\xab\xe1\xfdo\
+\xae\xd9\xdf\xb5\xb9e\x1as\xd7T\xc6\xad\x97\x05\\+\xed\xbf[\xab\xf5\xf6\xaf\
+\xf3\xa8{\xc1\xfe\xeb\x92\xb9l\xae\x98\xeb{\xe7h\xdf}\x86\x8b\xe6\xa6\xb9c\
+\xcb\xe2\x1e\xa2y\xd3\x99\xdb(7l9d\xcb\x17[\xae\xe9/\xe6\x819\xb5k\xc5\x1d3\
+\xc7\xa1<4K\xc6\xfd\xcf\x89\xf7\xcd=\xfc\xfd\xd1|\xb6\xbf?\xb9MM;\xf2Rie\xec\
+\xbf\x94\n\xd495\xa5\xdc\x0c\x1eVG\xac2\xadN\xa8Y\xe5\xf7&\xd5k\xab\x9fQ\xa7\
+\x95\x9b\xd5)5\x07}F\x9dU{\xe6(\xfe\xf1\xce\xc9n\xa2PE*V\x89JU\xa6"\x9d\xabB\
+}\xff\xda\x05S\xfaOGjF\x95fS\xbd\xc3\xdfO\xd4k\xf5\xce2\xbeQ;fGm\xab\xe7jC\
+\xcd\x8ae\xfb\xd9\x96Z\xb7+\xe9\xb1ZUO\xed_\xcf\xd4]?F\xe7\xd4\x92\xd9R\x8f\
+\xd5\x96za\x89_Zn\xba\xb95\xf5a/Q\xf2kD\xbbW\xdd\xfb\x1f\x10\xad\xa8\xcf\xbe\
+G\xaf\xcc[\xf5H\xad\xabW\xa8]\x98uuUIqM\x9d7\xb5:\xaao\xa9F\xddU\x95r\xb3\
+\xb8e\x16\x94+n\x0eZ%}\xeb\xbd\x9d\xad\x05_v\xcc\xb6:\xef\xf5\x0bJ\xec%:`\
+\x9f\xe1{D\x97\xd4euE\xfd\x98\xe8\xbaz\xeb?\xbdk\x16\xec\x93tQ\xddT|b\xee\
+\xe0wo\x16\x95\x8b\xbew\xd5\x1b\xcb3\xaf\xdcJ\x1c}\xd5\xdeU\xf3\xdc\xff5mG\
+\xa3\x1b\x7f2\xa7\xd6\xfcH\xddV7\xd4\x9e\xe7(\xfb\xf1\x1c\x1dR\xfb\x11}QnG\
+\xe1\x81%:\xf5\x03\xa2c\xea\xb8\xd9\xb1\xf7>n\xfb\xf3\xd0\xd6[RG\xf1\x14\xdc\
+W5ztO}T\x9f\x95\x8b\x00\x9f\x94\x08"\xe3\xd6\xe3G\xf5D1\x96\xb9\xf7\xa7\x0c\
+\xfc\xb8\xaakjE\xcdz\xbd4:0\x81\xcb2V\xed\xc3\xb7g\x8e\x0e8\x9b\x08\x82\xfd\
+\x88\xce\x05S\xb6\xa5\xc3\xc1m}$\xf8\xfe\xb5\xd3\xc1\x89`68\x19\xe8\xe0\x0cj\
+\x9d\x0eV\xcc\\ \x03\x15\xec\x80h&8\xa1\xce\xe2\x93Z\x85\xbe\x9d(\x88\x83-K\
+\xe2b\xc8a\x1b\xf7\xc6N\xdd$\xf6\xca\x93\xc1\\\xe0Vn\x1ad\xb6\x95#f:\xc8\xf7\
+\xc6\xba\x03\xcf&\xf2`\xbfUW\x04e\xf0V\xbe\x95\xa3\x1f\x10m\x06\xef\x027\xaa\
+O\xbe\xaa\xf3:\xf8\xfa\xaf\xd4|\xfb\xdb\xf7>\xd8\xd9\xb7Uc\xa3\xcb\xe4=\xb7m\
+\xf6w\xaa\xc9\x81g\x13\xdb\xc1\xf3`#\xd8/2,\x07[\xc1\x8f\xae|\x1c\xac\x06\
+\xff\xfe\x19_:\xfa\x99\x13\xb1\xab\xf2i\xf0,x\x11\xbc\x0c\xae\xeb\xb5\xe0C\
+\xf0>X\t\xca\x03=\xf6\xaaz\xfb\xbf \n\x7f\xe5\xd4rZ?\n\xae\xfet\x9e\xb6a\x0e\
+\x9b\xff\x01Q\xf4_;YN\xe3\xff\x1c\x91\xf5\x0c\xf2\xff\x00\x16I\xb2\xa7' ))
 
 def getPythonPoweredBitmap():
     return wxBitmapFromXPMData(getPythonPoweredData())

From waterbug at step.nasa.gov  Sat Feb  3 12:37:52 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Sat Feb  3 12:37:53 2007
Subject: [pangalactic-commits] ... and actually add the image file.  :P
Message-ID: <200702031737.l13Hbqwu025857@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/node/images/python-powered-w-100x40.png None 1.1

Log message:
.. and actually add the image file.  :P

From waterbug at step.nasa.gov  Mon Feb  5 16:04:34 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Mon Feb  5 16:04:36 2007
Subject: [pangalactic-commits] Mods to add uri's and url's.
Message-ID: <200702052104.l15L4YFI023564@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/meta/metaobjects/classes.py 1.6 1.7
PanGalactic/pangalactic/meta/metaobjects/properties.py 1.7 1.8
PanGalactic/pangalactic/node/defaults.py 1.2 1.3
PanGalactic/src/owl/pgef.owl 1.3 1.4

Log message:
Mods to add uri's and url's.

Index: PanGalactic/pangalactic/meta/metaobjects/classes.py
diff -u PanGalactic/pangalactic/meta/metaobjects/classes.py:1.6 PanGalactic/pangalactic/meta/metaobjects/classes.py:1.7
--- PanGalactic/pangalactic/meta/metaobjects/classes.py:1.6	Sat Jan  6 23:39:14 2007
+++ PanGalactic/pangalactic/meta/metaobjects/classes.py	Mon Feb  5 16:04:30 2007
@@ -58,9 +58,19 @@
  'id_ns': 'pgef',
  'name': 'Versionable'}
 
+NetLocatable = {'_schema_name': 'PmofClass',
+ 'abbreviation': '',
+ 'bases': ['PanGalacticFu'],
+ 'comment': '',
+ 'definition': '',
+ 'description': 'Able to be found on a network.\n',
+ 'id': 'NetLocatable',
+ 'id_ns': 'pgef',
+ 'name': 'NetLocatable'}
+
 PanGalacticObject = {'_schema_name': 'PmofClass',
  'abbreviation': '',
- 'bases': ['Identifiable', 'Manageable', 'Securable'],
+ 'bases': ['Identifiable', 'Manageable', 'NetLocatable', 'Securable'],
  'comment': '',
  'definition': '',
  'description': 'PanGalacticObject is the base class of the Pan Galactic Engineering Framework ontology.  PanGalacticObjects have some administrative Properties that allow them to be identified, persisted, and managed in a PanGalactic environment.',
@@ -81,6 +91,7 @@
 PmofMetaObject = {'_schema_name': 'PmofClass',
  'abbreviation': '',
  'bases': ['Identifiable',
+           'NetLocatable',
            'Manageable',
            'Securable',
            'Representable',

Index: PanGalactic/pangalactic/meta/metaobjects/properties.py
diff -u PanGalactic/pangalactic/meta/metaobjects/properties.py:1.7 PanGalactic/pangalactic/meta/metaobjects/properties.py:1.8
--- PanGalactic/pangalactic/meta/metaobjects/properties.py:1.7	Sat Jan  6 23:39:15 2007
+++ PanGalactic/pangalactic/meta/metaobjects/properties.py	Mon Feb  5 16:04:30 2007
@@ -1,3 +1,17 @@
+url = {'_schema_name': 'PmofProperty',
+ 'base_id': 'url',
+ 'description': "The Universal Resource Locator for an object.",
+ 'domain': 'NetLocatable',
+ 'functional': 'True',
+ 'id': 'url v. 0',
+ 'id_ns': 'pgef',
+ 'inverse_functional': 'True',
+ 'iteration': '0',
+ 'name': 'URL',
+ 'property_type': 'datatype',
+ 'range': 'str',
+ 'version': '0'}
+
 user_file_name = {'_schema_name': 'PmofProperty',
  'base_id': 'user_file_name',
  'description': "The user's local name for the file.",
@@ -1652,8 +1666,8 @@
 
 uri = {'_schema_name': 'PmofProperty',
  'base_id': 'uri',
- 'description': 'Unique name of the object. This may be a real URI or it may be a faux URI (such as those permitted in RDF/OWL), but it must at least have the scheme://authority/path structure specified in IETF RFC 2396.',
- 'domain': 'PmofMetaObject',
+ 'description': 'A unique name of an object.  It may or may not be resolvable to a network address, but it must have at least the scheme://authority/path structure specified in IETF RFC 2396.',
+ 'domain': 'Identifiable',
  'functional': 'True',
  'id': 'uri v. 0',
  'id_ns': 'pgef',

Index: PanGalactic/src/owl/pgef.owl
diff -u PanGalactic/src/owl/pgef.owl:1.3 PanGalactic/src/owl/pgef.owl:1.4
--- PanGalactic/src/owl/pgef.owl:1.3	Mon Nov 20 16:28:00 2006
+++ PanGalactic/src/owl/pgef.owl	Mon Feb  5 16:04:32 2007
@@ -1,7 +1,6 @@
 <?xml version="1.0"?>
 <rdf:RDF
     xmlns="http://pangalactic.us/pgef/"
-    xmlns:pgef="http://pangalactic.us/pgef/"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
@@ -9,40 +8,43 @@
   xml:base="http://pangalactic.us/pgef/">
   <owl:Ontology rdf:about=""/>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PanGalacticObject">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >PanGalacticObject is the base class of the Pan Galactic Engineering Framework ontology.  PanGalacticObjects have some administrative Properties that allow them to be identified, persisted, and managed in a PanGalactic environment.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
     <rdfs:subClassOf>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Securable"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/NetLocatable"/>
+    </rdfs:subClassOf>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Manageable"/>
     </rdfs:subClassOf>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Identifiable"/>
     </rdfs:subClassOf>
     <rdfs:subClassOf>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Manageable"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Securable"/>
     </rdfs:subClassOf>
+    <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >PanGalacticObject is the base class of the Pan Galactic Engineering Framework ontology.  PanGalacticObjects have some administrative Properties that allow them to be identified, persisted, and managed in a PanGalactic environment.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PartsList">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A documented collection of parts and related information.  Parts Lists occur in various contexts in the product life cycle, e.g.: to document component technology research, to document candidate parts for assemblies, to document Parts used in Model development, to track Parts procurement information, to document Part stocks and inventory, etc.</rdfs:comment>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Document"/>
     </rdfs:subClassOf>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A documented collection of parts and related information.  Parts Lists occur in various contexts in the product life cycle, e.g.: to document component technology research, to document candidate parts for assemblies, to document Parts used in Model development, to track Parts procurement information, to document Part stocks and inventory, etc.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Mime">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Multi-purpose Internet Mail Extension (MIME) types.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Activity">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A piece of work with an input, an output, resources, and controls, that forms one logical unit. An activity's definition may or may not be configuration managed.  If its definition is under configuration management, its definition is contained in a Process (which see).  An activity may be a manual activity, which does not involve computer automation, or a workflow (automated) activity. A workflow activity requires human and/or machine resources(s) to support process execution; where human resource is required an activity is allocated to a workflow participant. [Based on WfMC definition]  Synonyms:  step, node, task, work element, process element, operation, instruction.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Relationship">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A well-defined and identifiable connection between PanGalacticObjects.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/ProcessDefinition">
     <rdfs:subClassOf>
@@ -52,23 +54,23 @@
     >A model of a structured Activity.  A ProcessDefinition may itself be composed of one or more ProcessDefinitions.  [Based on the WfMC definition of "Business Process"]  Synonyms:  Business Process.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Organization">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A well-defined, persistent, and identifiable collection of Person instances.</rdfs:comment>
-    <rdfs:subClassOf>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Actor"/>
-    </rdfs:subClassOf>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Person"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/FileLink"/>
     </owl:disjointWith>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
     </owl:disjointWith>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
     </owl:disjointWith>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/FileLink"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Person"/>
     </owl:disjointWith>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Actor"/>
+    </rdfs:subClassOf>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A well-defined, persistent, and identifiable collection of Person instances.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Representation">
     <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
@@ -76,19 +78,26 @@
     >A file-like object (FileLink) or a set of file-like objects that are used in publishing, displaying, importing, exporting, or exchanging a PanGalacticObject.  The concept is general and can apply to serialization, presentation, or data exchange use-cases, among others.  A Representation can be thought of as a reified relationship between a PanGalacticObject (which has the Representation as one of the items in its representations property) and one or more FileLink instances (its 'files' property).  As defined in the PGEF ontology, a Representation represents a single domain object (such as a Document or Model).  In serialization and data exchange use-cases it is common for a file or a collection of files to represent many objects -- in PGEF, the latter is defined to be a DataSet or DataPackage.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Qacu">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >Quantified Assembly Component Usage represents some number of instances or some measured quantity of a PanGalacticObject used in the assembly of another PanGalacticObject.</rdfs:comment>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Acu"/>
     </rdfs:subClassOf>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >Quantified Assembly Component Usage represents some number of instances or some measured quantity of a PanGalacticObject used in the assembly of another PanGalacticObject.</rdfs:comment>
   </owl:Class>
-  <owl:Class rdf:about="http://pangalactic.us/pgef/Identifiable">
+  <owl:Class rdf:about="http://pangalactic.us/pgef/NetLocatable">
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/PanGalacticFu"/>
     </rdfs:subClassOf>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >Able to be found on a network.</rdfs:comment>
+  </owl:Class>
+  <owl:Class rdf:about="http://pangalactic.us/pgef/Identifiable">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Having a name or identifier (a.k.a., ID, OID, etc.).
 </rdfs:comment>
+    <rdfs:subClassOf>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/PanGalacticFu"/>
+    </rdfs:subClassOf>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Process">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
@@ -98,29 +107,29 @@
     </rdfs:subClassOf>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/VersionableProduct">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The common ancestor of all Versionable objects.</rdfs:comment>
     <rdfs:subClassOf>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Versionable"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Product"/>
     </rdfs:subClassOf>
     <rdfs:subClassOf>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Product"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Versionable"/>
     </rdfs:subClassOf>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The common ancestor of all Versionable objects.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/FileLink">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The class of file-like PanGalacticObjects.</rdfs:comment>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
     </owl:disjointWith>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <owl:disjointWith>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Person"/>
     </owl:disjointWith>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
     </owl:disjointWith>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The class of file-like PanGalacticObjects.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/ProjectPerson">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
@@ -131,12 +140,12 @@
     </rdfs:subClassOf>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Representable">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >Able to be encoded in some digital form.
-</rdfs:comment>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/PanGalacticFu"/>
     </rdfs:subClassOf>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >Able to be encoded in some digital form.
+</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/DataSet">
     <rdfs:subClassOf>
@@ -146,12 +155,12 @@
     >A Document whose function is to serve as a wrapper for a serialized population of objects in a file-like object, governed by a single schema (a.k.a. an "ontology").  The file can be a STEP (ISO 10303) file (in a number of possible encoding options), a CAD file, or in general any data exchange or serialization file.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Versionable">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >Evolvable in a set of discrete, identifiable incarnations.
-</rdfs:comment>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/PanGalacticFu"/>
     </rdfs:subClassOf>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >Evolvable in a set of discrete, identifiable incarnations.
+</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PartsListItem">
     <rdfs:subClassOf>
@@ -161,9 +170,9 @@
     >A PartsListItem is a Document that is a component of a PartsList, and represents a single line or item on its parent PartsList.  The PartsListItem references an Acu (a usage of one or more PanGalacticObject instances in the assembly of another PanGalacticObject).</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Actor">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An entity that can take on Roles and create, modify, and own PanGalacticObjects</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PhysicalPart">
     <rdfs:subClassOf>
@@ -178,29 +187,29 @@
 </rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Model">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Representable"/>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A constructed realization of the properties and/or behaviors of a concept or a real-world thing.  A pgef:Model instance can be used for analysis, simulation, description, specification, or presentation of some aspect(s) of a domain object.
 
 pgef:Model generally maps to step:product_definition, but there may be other mappings for particular STEP Application Protocols and other types of models.
 
 (Note that the characteristics of any pgef:Model instance can be the subject of a pgef:Model at a higher level of abstraction.  The higher-level pgef:Model instance in this context is sometimes referred to as a "meta-model" relative to the pgef:Model instance whose characteristics it models.)</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Representable"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PartModel">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The relationship between a Part and a Model that represents it.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/RoleAssignment">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Relationship that assigns a Role (the "parent") to an Actor (the "child").</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Product">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The output of a process or activity.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/ObjectDocument">
     <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
@@ -208,40 +217,40 @@
     >A Relationship between a PanGalacticObject and a Document.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Acu">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The relationship between a PanGalacticObject (the component) and an assembled PanGalacticObject (the assembly) of which it is a constituent part.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Relationship"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Person">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A human being.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Actor"/>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
     </owl:disjointWith>
     <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <owl:disjointWith>
-      <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
+      <owl:Class rdf:about="http://pangalactic.us/pgef/Role"/>
     </owl:disjointWith>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A human being.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Actor"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/DataPackage">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A collection of one or more DataSet instances.  A DataPackage instance may include one or more file-like objects and may be governed by more than one schema (ontology).  The primary purpose of the DataPackage Class is to enable the tracking and management of arbitrary collections of exchanged data.</rdfs:comment>
     <rdfs:subClassOf>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Document"/>
     </rdfs:subClassOf>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A collection of one or more DataSet instances.  A DataPackage instance may include one or more file-like objects and may be governed by more than one schema (ontology).  The primary purpose of the DataPackage Class is to enable the tracking and management of arbitrary collections of exchanged data.</rdfs:comment>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Role">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The name (type) of a Relationship that can be assigned to an Actor within a context.  The context will typically be an Organization or a Project.  A Role will typically have an associated set of privileges.</rdfs:comment>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/FileLink"/>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Person"/>
     <owl:disjointWith>
       <owl:Class rdf:about="http://pangalactic.us/pgef/Project"/>
     </owl:disjointWith>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Person"/>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The name (type) of a Relationship that can be assigned to an Actor within a context.  The context will typically be an Organization or a Project.  A Role will typically have an associated set of privileges.</rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/PhysicalObject">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
@@ -255,17 +264,17 @@
     <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticFu"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Part">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A concept that has some functionality that can be realized in a product or thing that is physically sensible and measurable (the PhysicalPart).
 
 pgef:Part maps to the combination of STEP (ISO 10303) 'product' and 'product_definition_formation'.  STEP 'frame_of_reference' (-> product_context.id) is not represented within the PGEF ontology.  STEP 'description' maps to description.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Document">
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Representable"/>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A readable thing.</rdfs:comment>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/VersionableProduct"/>
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/Representable"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Securable">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
@@ -274,41 +283,41 @@
     <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticFu"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/OrgPerson">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/RoleAssignment"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Relationship between a Role with an Organization context and a Person.
 </rdfs:comment>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/RoleAssignment"/>
   </owl:Class>
   <owl:Class rdf:about="http://pangalactic.us/pgef/Project">
-    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An activity that has the purpose of producing and/or maintaining something, and which involves contributions from Persons and Organizations.</rdfs:comment>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Role"/>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/FileLink"/>
-    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Person"/>
     <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Person"/>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <owl:disjointWith rdf:resource="http://pangalactic.us/pgef/Role"/>
+    <rdfs:subClassOf rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:Class>
   <owl:ObjectProperty rdf:about="http://pangalactic.us/pgef/pl_items">
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PartsListItem"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsList"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The PartsListItem instances contained by a PartsList.</rdfs:comment>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PartsListItem"/>
   </owl:ObjectProperty>
   <owl:ObjectProperty rdf:about="http://pangalactic.us/pgef/data_sets">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataPackage"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The DataSets contained in a DataPackage.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataPackage"/>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/DataSet"/>
   </owl:ObjectProperty>
   <owl:DatatypeProperty rdf:about="http://pangalactic.us/pgef/alt_emails">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Alternate email addresses of the Actor.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
   </owl:DatatypeProperty>
   <owl:DatatypeProperty rdf:about="http://pangalactic.us/pgef/dataset_object_ids">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The local identifiers assigned to the objects in a DataSet.</rdfs:comment>
   </owl:DatatypeProperty>
@@ -318,120 +327,120 @@
     >The number of instances or measured quantity of the component object(s) used.</rdfs:comment>
   </owl:DatatypeProperty>
   <owl:DatatypeProperty rdf:about="http://pangalactic.us/pgef/part_number_aliases">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Other equivalent identifiers for a Part.</rdfs:comment>
   </owl:DatatypeProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/sic_code2">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Second of a possible 4 Standard Industrial Classification (SIC) codes for an Organization.  See:  http://www.census.gov/epcd/www/sic.html (From the CAGE data structure.)</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/type_code">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The CAGE type code.  (From the CAGE data structure.)</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/mi_or_name">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Person's middle initial or name.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_vendor">
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Organization from which a PhysicalPart was procured.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/file_sequence">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An integer that can be used to specify the ordering of this file within an ordered set of files -- attachments, for example.  NOTE:  Sequence is intepreted as applying within Sequence Context (which see).</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/modifier">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that last modified an object.</rdfs:comment>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/sic_code3">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Third of a possible 4 Standard Industrial Classification (SIC) codes for an Organization.  See:  http://www.census.gov/epcd/www/sic.html (From the CAGE data structure.)</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/specification_screening">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The identifier for a screening specification that applies to a Part.</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/lname">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Person's last name (surname).</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/version_sequence">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An integer indicating the sequence of versions (since the version attribute itself may not have a well-defined sort order).</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/rep_purpose">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The purpose or meaning of this Representation -- e.g.  "publication", "presentation", "exchange", etc.  The semantics of this Property are heavily context-dependent.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The purpose or meaning of this Representation -- e.g.  "publication", "presentation", "exchange", etc.  The semantics of this Property are heavily context-dependent.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/creator">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that created an object.</rdfs:comment>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/pli_component_usage">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsListItem"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Acu"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Acu instance referenced by a PartsListItem.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/bytes">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The size of a file in bytes.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/sic_code4">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Fourth of a possible 4 Standard Industrial Classification (SIC) codes for an Organization.  See:  http://www.census.gov/epcd/www/sic.html (From the CAGE data structure.)</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/originating_system">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The system from which the data in a DataSet originated.</rdfs:comment>
   </owl:FunctionalProperty>
@@ -439,102 +448,102 @@
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The MIME Media Type per &lt;http://www.iana.org/assignments/media-types/> (or a custom type).</rdfs:comment>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Mime"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Mime"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/location">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >Location == URL to get the file (from the repository if it is a 'secured' file; from elsewhere if not).</rdfs:comment>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >Location == URL to get the file (from the repository if it is a 'secured' file; from elsewhere if not).</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/zip_or_postal_zone">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An Organization's zip code (if in the U.S.) or postal zone.  (From the CAGE data structure.)</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/dataset_schema_id">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The name of the schema that governs the DataSet.</rdfs:comment>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/id_ns">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The namespace within which an id is unique.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/phone">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An Actor's primary phone number.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_number_model">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The identifier for a Part's 'Model', a somewhat arbitrary identifier usually specified by the manufacturer.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Part of which a PhysicalPart is a realization.</rdfs:comment>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/mime_type">
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Mime"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The MIME type/subtype of a file's content.</rdfs:comment>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Mime"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/iteration">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An identifier for incremental snapshots of working copies of a specific version of a Versionable.  Iterations are a zero-based sequence of integers in which the unmodified version is itself the 0th iteration.
 
 Working copies of iterations can be used as parallel evolution threads toward the next version.  Iterations are analogous to experimental branches in CVS:  they are used to identify and manage experimental configurations of the Versionable that may never become a version but which need to be documented as part of the design and analysis process.  Since Versionables cannot be changed once checked in, their iteration also cannot be changed once checked in to the repository, and must be regarded as "frozen."  The policy for saving iterations in the repository can be set by the project or user: all iterations, all iterations since the last version, etc.  In early prototyping exercises, iterations may be used exclusively for CM (on, say, the 0th version of everything).</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/fname">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Person's first name (given name).</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/content_mime_type">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Mime"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The MIME type of the value of the 'content' attribute.  (This does not imply that a Document has an intrinsic MIME type.  In general, each representation of the Document will have a MIME type, and they may all be different.)
 </rdfs:comment>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Mime"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/record_creator">
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that first added an object's record to the repository.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name1">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The first of a possible 5 segments of an Organization's name.  (From the CAGE data structure.)</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/is_composable">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
@@ -544,39 +553,39 @@
     >A flag, for which a True value indicates that a Representation is able to be used (e.g., by an editor or a parser/importer) to (re)create or edit itself and/or some other Representation.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/record_mod_datetime">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Date-time of last modification of an object's record in the repository.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/country_code">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An integer code:  1=U.S., 2=Foreign, 3=Canada (From the CAGE data structure.)</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/specification_military">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The identifier of the military specification that applies to a Part.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/base_id">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The id for a Versionable object will often be derived by combining its base_id and version.  Since this is not always the case, the specifics of the relationship between an object's id, base_id, version, and iteration are left to the internal rules of an application.  Versionable objects cannot be changed once they are checked in to the repository, so applications should treat versions that have been (or are about to be) checked in as "frozen."</rdfs:comment>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/fsc_code">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Federal Supply Classification code for a Part (this is also the first four digits of the NSN).</rdfs:comment>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/life_cycle_stage">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Model"/>
@@ -588,181 +597,188 @@
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/ref_designator">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Acu"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A symbolic name that serves as an identifier for a component usage within the context of an assembly.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Acu"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/cm_authority">
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that has primary responsibility for configuration management of the object.  Often, this will be a Project, but it sometimes may be an Organization, a Person, or some other entity.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/org">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An Actor's primary Organizational affiliation.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_number_nsn">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The National Stock Number for a Part.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/street_address2">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The second of a possible 2 segments of an Organization's Street Address.  (From the CAGE data structure.)</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+  </owl:FunctionalProperty>
+  <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/url">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The Universal Resource Locator for an object.</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/NetLocatable"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/owner">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that owns an object.</rdfs:comment>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_mfr">
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Organization that was primarily responsible for producing a PhysicalPart.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/documentation_purpose">
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/ObjectDocument"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The purpose of a Document in the context of an Object.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/ObjectDocument"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/role_context">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Role"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The context within which a Role is defined.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Role"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/status_code">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The status of an Organization's record (active or inactive).  (From the CAGE data structure.)</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/user_file_name">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The user's local name for the file.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/lot_date_code">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >An alphanumeric string used by a manufacturer to identify the collection (lot) of PhysicalParts of which a specific PhysicalPart was a member.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >An alphanumeric string used by a manufacturer to identify the collection (lot) of PhysicalParts of which a specific PhysicalPart was a member.</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/record_modifier">
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The Identifiable entity that last modified an object's record in the repository.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/is_object_source">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Indicates whether this Representation is the original source from which its parent Object was instantiated in the repository (PGER) or in the current application context.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/org_name_code">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An abbreviation for an Organization's name.  Maps to a Part's Manufacturer Name Code.  Corresponds to the parent Organization identifier (Association CAGE) but is a "mnemonic" string.  Therefore, it is not unique among known Organizations, since several locations of the same Organization will have the same Organization Name Code.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/pl_status">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsList"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The state of a PartsList relative to some possibly extensible set of standard states, e.g. 'in-process', 'reviewed', etc.  The set of standard states should be agreed upon by the Project(s) or Organization(s) using the PartsList.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsList"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/abstract">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A capsule summary of the Document's content.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/content">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The content of the Document in a text-based format (usually text/plain, but may be any format with a MIME type of "text", such as text/html, text/xml, or text/tab-separated-values).</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/pli_id">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An identifier for a PartsListItem within the context of its PartsList.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsListItem"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/definition_context">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The context within which a Model is defined.
 
 From the STEP PDM Schema Usage Guide: "[Definition context] distinguishes the type of the associated product_definition ...".  Examples given in the STEP PDM Schema Usage Guide all use name == "part definition" ... a set of values meaningful within the context of a Project or Organization should be defined for this attribute to be useful.  Maps to STEP "product_definition_context.name".</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Model"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Model"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/version">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A user-modifiable alphanumeric string used to identify a baseline, release, or version.  Similar to a CVS release tag.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/record_create_datetime">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Date-time of addition of an object's record to the repository.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/email">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Actor"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The primary email address of the Actor.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name2">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The second of a possible 5 segments of an Organization's name.  (From the CAGE data structure.)</rdfs:comment>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/is_head">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A flag indicating whether a Versionable object is the most recent version.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Versionable"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/authorization">
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Person"/>
@@ -772,53 +788,53 @@
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/create_datetime">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The date and time of an object's creation.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name3">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The third of a possible 5 segments of an Organization's name.  (From the CAGE data structure.)</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name4">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The fourth of a possible 5 segments of an Organization's name.  (From the CAGE data structure.)</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/id">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >An identifier that is unique within a specified namespace.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >An identifier that is unique within a specified namespace.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/god">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A boolean indicating whether an Actor has the capability to assign any Role to itself in a PanGalactic application.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/structural_role">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An indicator of whether the document is intended to be (1) stand-alone, (2) the parent in an assembly of documents, or (3) a component in another document.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/replacement_cage">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The CAGE code that a CAGE code replaces.  (From the CAGE data structure.)</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The CAGE code that a CAGE code replaces.  (From the CAGE data structure.)</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/city">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
@@ -829,36 +845,36 @@
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/mod_datetime">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The date and time of last modification of an object.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/comment">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Information about an object that may be incidental, temporal, or contextual.  The meaning is determined by the application context.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/security_mask">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Securable"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#int"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Securable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An Actor's access permissions to an Object will be determined by testing whether the security_mask of the Object contains the Actor's oid or the oids of any Role assignments the Actor has.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/description">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A narrative about the characteristics and identifying features of an object.</rdfs:comment>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A narrative about the characteristics and identifying features of an object.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_number_generic">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The generic identifier for a Part, which in some cases is specified by a standard (e.g., JEDEC for electronic parts).</rdfs:comment>
   </owl:FunctionalProperty>
@@ -870,23 +886,23 @@
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/specification">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The identifier of the specification document that applies to a Part.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_number_spec">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The identifier for a Part given by its specification.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/serial_number">
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An identifier assigned by a manufacturer to a specific PhysicalPart.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PhysicalPart"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
@@ -900,177 +916,177 @@
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/frame_of_reference">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Model"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An activity or context within which a Model is intended to be used.
 
 pgef:frame_of_reference maps directly to STEP "product_definition.frame_of_reference.application".  In STEP, f_o_r points to an application_context, which refers to the general application domain that defined the data ... the values recommended in the STEP PDM Schema Usage Guide are: "digital mock up" "assembly study" "process planning" "electrical design" "mechanical design", but a set of values meaningful within the context of a specific Project or Organization should be defined for this attribute to be useful.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_model_purpose">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartModel"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The purpose of a Model of a Part.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartModel"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/file_sequence_context">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The name of the attribute within the context of which the Sequence attribute is meaningful.  If the value of the Sequence Context attribute is 'role', and the value of Role is 'attachment', then Sequence is the position of this file within the set of files that have a Role of 'attachment'.</rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/is_generable">
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A flag which, if True, indicates that a Representation that can be generated -- e.g., from a Model.
 </rdfs:comment>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/pl_type">
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The type of a PartsList, selected from a set of standard parts list types, such as 'as-designed' (ADPL), 'as-built' (ABPL), 'preliminary' (PRPL), etc., which should be agreed upon by the Project(s) or Organization(s) using the PartsList.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsList"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PartsList"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/is_secured">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A flag assigned to a FileLink object which, if True, indicates that the file is stored in the repository's file vault; if False, the file is not stored in the repository but is referenced elsewhere.</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/org_email">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Person's email address at an Organization.</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/OrgPerson"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/org_phone">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/OrgPerson"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A Person's telephone number at an Organization.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/OrgPerson"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/state_or_country">
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >An Organization's state (if in the U.S.) or country.  (From the CAGE data structure.)</rdfs:comment>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >An Organization's state (if in the U.S.) or country.  (From the CAGE data structure.)</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A human-readable identifier for an object -- usually the one by which the object is known to the end-user, but it may be used for any type of identification, including aliases and local nomenclatures.  Its meaning is dependent on the application context.  This concept is analogous to a person's given name.</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/processor_version">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The version of the software application that was used to produce a DataSet.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/DataSet"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/part_number_drawing">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >If a Part has a 'drawing' (a type of specification), this is its identifier.</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Part"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/file_role">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The purpose of a File relative to a Representation to which it is related.  Possible values are: "attachment", "content", "stylesheet", "DTD", etc.</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/record_owner">
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The Identifiable entity that owns an object's record in the repository.  pgef:record_owner and pgef:record_creator may be different.  The default is for them to be the same.  The pgef:record_owner always has the privilege of modifying the record of the object in the repository (or deleting it, if deletion is allowed for members of the object's Class).</rdfs:comment>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Manageable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
-  </owl:FunctionalProperty>
-  <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/media_subtype">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The MIME Media Subtype per &lt;http://www.iana.org/assignments/media-types/> (or a custom subtype).</rdfs:comment>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Mime"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    >The Identifiable entity that owns an object's record in the repository.  pgef:record_owner and pgef:record_creator may be different.  The default is for them to be the same.  The pgef:record_owner always has the privilege of modifying the record of the object in the repository (or deleting it, if deletion is allowed for members of the object's Class).</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/sic_code1">
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >First of a possible 4 Standard Industrial Classification (SIC) codes for an Organization.  See:  http://www.census.gov/epcd/www/sic.html (From the CAGE data structure.)</rdfs:comment>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+  </owl:FunctionalProperty>
+  <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/media_subtype">
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Mime"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The MIME Media Subtype per &lt;http://www.iana.org/assignments/media-types/> (or a custom subtype).</rdfs:comment>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/name5">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The fifth of a possible 5 segments of an Organization's name.  (From the CAGE data structure.)</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/parent_organization">
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An Organization's parent Organization.  (In the CAGE data structure, this is called the 'association_cage'.)</rdfs:comment>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/Organization"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Organization"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
   </owl:FunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/publish_datetime">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >Date (and time, if relevant) a Document was published.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Document"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
   </owl:FunctionalProperty>
   <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/child">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Relationship"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The child Object in a Relationship.</rdfs:comment>
     <rdfs:range rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Relationship"/>
   </owl:InverseFunctionalProperty>
   <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/files">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/FileLink"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >The file-like Objects (e.g., FileLinks) that constitute a Representation.</rdfs:comment>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/FileLink"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representation"/>
   </owl:InverseFunctionalProperty>
   <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/representations">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representable"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A digital representation of an object (e.g., a CAD model, a spreadsheet, an HTML document).  Representations include both "presentations", such as PDF or HTML for a document, and more general representations such as exchange data sets (e.g., for an engineering model:  STEP, VRML, etc.).</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Representable"/>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
   </owl:InverseFunctionalProperty>
   <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/oid">
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A globally unique identifier.  The canonical form for oids is a URL, but other forms are acceptable.</rdfs:comment>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
   </owl:InverseFunctionalProperty>
   <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/parent">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Relationship"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >The parent Object in a Relationship.</rdfs:comment>
+    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
-    <rdfs:range rdf:resource="http://pangalactic.us/pgef/PanGalacticObject"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >The parent Object in a Relationship.</rdfs:comment>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Relationship"/>
   </owl:InverseFunctionalProperty>
 </rdf:RDF>
 
-<!-- Created with Protege (with OWL Plugin 2.2, Build 341)  http://protege.stanford.edu -->
+<!-- Created with Protege (with OWL Plugin 2.2, Build 346)  http://protege.stanford.edu -->

Index: PanGalactic/pangalactic/node/defaults.py
diff -u PanGalactic/pangalactic/node/defaults.py:1.2 PanGalactic/pangalactic/node/defaults.py:1.3
--- PanGalactic/pangalactic/node/defaults.py:1.2	Thu Jan  4 05:04:11 2007
+++ PanGalactic/pangalactic/node/defaults.py	Mon Feb  5 16:04:31 2007
@@ -1,4 +1,4 @@
-# $Id: defaults.py,v 1.2 2007/01/04 10:04:11 waterbug Exp $
+# $Id: defaults.py,v 1.3 2007/02/05 21:04:31 waterbug Exp $
 """
 Functions and settings that determine the default display characteristics
 (display names, sets of displayed Properties, ordering and grouping of
@@ -8,7 +8,7 @@
 This is automated as much as possible, based on the attributes of the registered
 C{PgefInterfaces} (i.e., the contents of C{orb.interfaces}).
 """
-__version__ = "$Revision: 1.2 $"[11:-2]
+__version__ = "$Revision: 1.3 $"[11:-2]
 
 # special attributes of Versionable, not editable directly
 VERSION_PROPERTIES = ['base_id',
@@ -19,6 +19,8 @@
 
 # default administrative group Properties
 ADMIN_PROPERTIES = ['oid',
+                    'uri',
+                    'url',
                     'security_mask',
                     'owner',
                     'creator',
@@ -58,6 +60,8 @@
         'create_datetime': 'Create Date-Time',
         'id': 'ID',
         'id_ns': 'ID Namespace',
+        'uri': 'URI',
+        'url': 'URL',
         'mod_datetime': 'Last Mod Date-Time',
         'oid': 'OID',
         'record_create_datetime': 'Record Create Date-Time',
@@ -133,6 +137,8 @@
         'id',
         'id_ns',
         'name',
+        'uri',
+        'url',
         'description',
         'comment',
         'security_mask',
@@ -247,10 +253,9 @@
     }
 
 
-# Everything from here on is legacy, and has been superceded by the new method
-# for defining default display maps (see uberorb) WITH THE EXCEPTION OF
-# 'columns', which are used in defining the default grid columns to be displayed
-# for any objects whose _schema Interface name appears as a key here.
+# Everything from here on is legacy, but is currently still used.  If a default
+# interface map doesn't exist for a given interface, the new method
+# for defining default display maps (see uberorb) will be used.
 
 DEFAULT_INTERFACE_MAPS = {
     'Actor': {
@@ -272,6 +277,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -302,6 +309,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -328,6 +337,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -362,6 +373,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -397,6 +410,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -430,6 +445,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -457,6 +474,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -478,6 +497,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -506,6 +527,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -532,6 +555,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -553,6 +578,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -581,6 +608,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'org_name_code',
                             'name',
@@ -628,6 +657,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -663,6 +694,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -690,6 +723,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -721,6 +756,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -747,6 +784,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -774,6 +813,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -793,6 +834,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -815,6 +858,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -839,6 +884,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -861,6 +908,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -874,6 +923,8 @@
                     'domain',
                     'range'],
         'groups': {'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -919,6 +970,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -944,6 +997,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -968,6 +1023,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -994,6 +1051,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',
@@ -1018,6 +1077,8 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
+                            'uri',
+                            'url',
                             'id_ns',
                             'name',
                             'description',

From waterbug at step.nasa.gov  Mon Feb  5 16:33:24 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Mon Feb  5 16:33:26 2007
Subject: [pangalactic-commits] Correct some OWL typo/thinko's.
Message-ID: <200702052133.l15LXOLe023916@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/src/owl/pgef.owl 1.4 1.5
PanGalactic/src/owl/pgef_meta.owl 1.8 1.9

Log message:
Correct some OWL typo/thinko's.

Index: PanGalactic/src/owl/pgef.owl
diff -u PanGalactic/src/owl/pgef.owl:1.4 PanGalactic/src/owl/pgef.owl:1.5
--- PanGalactic/src/owl/pgef.owl:1.4	Mon Feb  5 16:04:32 2007
+++ PanGalactic/src/owl/pgef.owl	Mon Feb  5 16:33:22 2007
@@ -815,6 +815,14 @@
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An identifier that is unique within a specified namespace.</rdfs:comment>
   </owl:FunctionalProperty>
+  <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/uri">
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
+    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
+    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
+    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
+    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
+    >A unique name of an object.  It may or may not be resolvable to a network address, but it must have at least the scheme://authority/path structure specified in IETF RFC 2396.</rdfs:comment>
+  </owl:InverseFunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/god">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>

Index: PanGalactic/src/owl/pgef_meta.owl
diff -u PanGalactic/src/owl/pgef_meta.owl:1.8 PanGalactic/src/owl/pgef_meta.owl:1.9
--- PanGalactic/src/owl/pgef_meta.owl:1.8	Sat Jan  6 23:39:16 2007
+++ PanGalactic/src/owl/pgef_meta.owl	Mon Feb  5 16:33:22 2007
@@ -174,14 +174,6 @@
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >A shorter version of the name (could be considered a special-purpose alias).</rdfs:comment>
   </owl:FunctionalProperty>
-  <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/uri">
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/PmofMetaObject"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >Unique name of the object. This may be a real URI or it may be a faux URI (such as those permitted in RDF/OWL), but it must at least have the scheme://authority/path structure specified in IETF RFC 2396.</rdfs:comment>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-  </owl:InverseFunctionalProperty>
 </rdf:RDF>
 
 <!-- Created with Protege (with OWL Plugin 2.2, Build 341)  http://protege.stanford.edu -->

From waterbug at step.nasa.gov  Wed Feb  7 12:26:35 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Wed Feb  7 12:26:37 2007
Subject: [pangalactic-commits] Decided 'uri' property shouldn't be
	universal. ; )
Message-ID: <200702071726.l17HQZHO021976@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/meta/metaobjects/properties.py 1.8 1.9
PanGalactic/pangalactic/node/defaults.py 1.3 1.4
PanGalactic/src/owl/pgef.owl 1.5 1.6

Log message:
Decided 'uri' property shouldn't be universal. ;)

Index: PanGalactic/pangalactic/meta/metaobjects/properties.py
diff -u PanGalactic/pangalactic/meta/metaobjects/properties.py:1.8 PanGalactic/pangalactic/meta/metaobjects/properties.py:1.9
--- PanGalactic/pangalactic/meta/metaobjects/properties.py:1.8	Mon Feb  5 16:04:30 2007
+++ PanGalactic/pangalactic/meta/metaobjects/properties.py	Wed Feb  7 12:26:32 2007
@@ -1664,20 +1664,6 @@
  'range': 'bool',
  'version': '0'}
 
-uri = {'_schema_name': 'PmofProperty',
- 'base_id': 'uri',
- 'description': 'A unique name of an object.  It may or may not be resolvable to a network address, but it must have at least the scheme://authority/path structure specified in IETF RFC 2396.',
- 'domain': 'Identifiable',
- 'functional': 'True',
- 'id': 'uri v. 0',
- 'id_ns': 'pgef',
- 'inverse_functional': 'True',
- 'iteration': '0',
- 'name': 'uri',
- 'property_type': 'datatype',
- 'range': 'str',
- 'version': '0'}
-
 record_modifier = {'_schema_name': 'PmofProperty',
  'base_id': 'record_modifier',
  'description': "The Identifiable entity that last modified an object's record in the repository.",

Index: PanGalactic/pangalactic/node/defaults.py
diff -u PanGalactic/pangalactic/node/defaults.py:1.3 PanGalactic/pangalactic/node/defaults.py:1.4
--- PanGalactic/pangalactic/node/defaults.py:1.3	Mon Feb  5 16:04:31 2007
+++ PanGalactic/pangalactic/node/defaults.py	Wed Feb  7 12:26:33 2007
@@ -1,4 +1,4 @@
-# $Id: defaults.py,v 1.3 2007/02/05 21:04:31 waterbug Exp $
+# $Id: defaults.py,v 1.4 2007/02/07 17:26:33 waterbug Exp $
 """
 Functions and settings that determine the default display characteristics
 (display names, sets of displayed Properties, ordering and grouping of
@@ -8,7 +8,7 @@
 This is automated as much as possible, based on the attributes of the registered
 C{PgefInterfaces} (i.e., the contents of C{orb.interfaces}).
 """
-__version__ = "$Revision: 1.3 $"[11:-2]
+__version__ = "$Revision: 1.4 $"[11:-2]
 
 # special attributes of Versionable, not editable directly
 VERSION_PROPERTIES = ['base_id',
@@ -19,7 +19,6 @@
 
 # default administrative group Properties
 ADMIN_PROPERTIES = ['oid',
-                    'uri',
                     'url',
                     'security_mask',
                     'owner',
@@ -60,7 +59,6 @@
         'create_datetime': 'Create Date-Time',
         'id': 'ID',
         'id_ns': 'ID Namespace',
-        'uri': 'URI',
         'url': 'URL',
         'mod_datetime': 'Last Mod Date-Time',
         'oid': 'OID',
@@ -137,7 +135,6 @@
         'id',
         'id_ns',
         'name',
-        'uri',
         'url',
         'description',
         'comment',
@@ -277,7 +274,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -309,7 +305,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -337,7 +332,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -373,7 +367,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -410,7 +403,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -445,7 +437,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -474,7 +465,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -497,7 +487,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -527,7 +516,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -555,7 +543,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -578,7 +565,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -608,7 +594,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'org_name_code',
@@ -657,7 +642,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -694,7 +678,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -723,7 +706,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -756,7 +738,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -784,7 +765,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -813,7 +793,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -834,7 +813,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -858,7 +836,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -884,7 +861,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -908,7 +884,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -923,7 +898,6 @@
                     'domain',
                     'range'],
         'groups': {'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -970,7 +944,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -997,7 +970,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -1023,7 +995,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -1051,7 +1022,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',
@@ -1077,7 +1047,6 @@
                              'modifier',
                              'mod_datetime'],
                    'main': ['id',
-                            'uri',
                             'url',
                             'id_ns',
                             'name',

Index: PanGalactic/src/owl/pgef.owl
diff -u PanGalactic/src/owl/pgef.owl:1.5 PanGalactic/src/owl/pgef.owl:1.6
--- PanGalactic/src/owl/pgef.owl:1.5	Mon Feb  5 16:33:22 2007
+++ PanGalactic/src/owl/pgef.owl	Wed Feb  7 12:26:33 2007
@@ -815,14 +815,6 @@
     <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
     >An identifier that is unique within a specified namespace.</rdfs:comment>
   </owl:FunctionalProperty>
-  <owl:InverseFunctionalProperty rdf:about="http://pangalactic.us/pgef/uri">
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
-    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
-    <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Identifiable"/>
-    <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
-    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
-    >A unique name of an object.  It may or may not be resolvable to a network address, but it must have at least the scheme://authority/path structure specified in IETF RFC 2396.</rdfs:comment>
-  </owl:InverseFunctionalProperty>
   <owl:FunctionalProperty rdf:about="http://pangalactic.us/pgef/god">
     <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
     <rdfs:domain rdf:resource="http://pangalactic.us/pgef/Person"/>

From waterbug at step.nasa.gov  Fri Feb  9 17:33:11 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Fri Feb  9 17:33:13 2007
Subject: [pangalactic-commits] Refactoring services; some web2 work ...
Message-ID: <200702092233.l19MXBS3022865@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/pger.py 1.140 1.141
PanGalactic/pangalactic/repo/pgercred.py 1.17 1.18
PanGalactic/pangalactic/repo/pgerupload.py 1.5 1.6
PanGalactic/pangalactic/repo/pgerwebupload.py 1.9 1.10
PanGalactic/pangalactic/repo/pgerxmlrpc.py 1.42 1.43
PanGalactic/pangalactic/test/test_pger_addObjectsE.py 1.14 1.15
PanGalactic/pangalactic/test/test_pger_addObjectsO.py 1.14 1.15
PanGalactic/pangalactic/test/test_pger_addVersions.py 1.15 1.16
PanGalactic/pangalactic/test/test_pger_updateObjects.py 1.1 1.2
PanGalactic/pangalactic/test/test_registry.py 1.26 1.27
PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py 1.12 1.13
PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py 1.1 1.2
PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py 1.17 1.18
PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py 1.13 1.14
PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py 1.1 1.2
PanGalactic/pangalactic/vger/vgerd.py 1.7 1.8

Log message:
Refactoring services; some web2 work ...
* the web2 basic auth stuff isn't working yet
* the old basic auth stuff appears to be working
* relationship between pger and pgercred was refactored
* tests fixed to work with refactored stuff
* next
  - more work on web2 basic auth
  - make services more configurable, eventually at runtime

Index: PanGalactic/pangalactic/vger/vgerd.py
diff -u PanGalactic/pangalactic/vger/vgerd.py:1.7 PanGalactic/pangalactic/vger/vgerd.py:1.8
--- PanGalactic/pangalactic/vger/vgerd.py:1.7	Thu Jan 18 16:31:33 2007
+++ PanGalactic/pangalactic/vger/vgerd.py	Fri Feb  9 17:33:08 2007
@@ -3,10 +3,10 @@
 Galactic Services.  The first service is the repository service, PGER (the
 Pan Galactic Entropy Reverser).
 
-@version: $Revision: 1.7 $
+@version: $Revision: 1.8 $
 """
 
-__version__ = "$Revision: 1.7 $"[11:-2]
+__version__ = "$Revision: 1.8 $"[11:-2]
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/vger/vgerd.py,v $
 
 import os
@@ -16,7 +16,9 @@
 from twisted.application.service  import Application
 from twisted.cred                 import portal
 from twisted.internet             import ssl
+from twisted.web2.auth            import basic, wrapper
 from twisted.web2.channel         import HTTPFactory
+from twisted.web2.iweb            import IResource
 from twisted.web2.resource        import Resource
 from twisted.web2.server          import Site
 
@@ -25,7 +27,7 @@
 
 # PanGalactic
 from pangalactic.repo.pger import Pger
-from pangalactic.repo import pgercred
+from pangalactic.repo import pgercred2
 
 # Uncomment this when there *is* a soap service ... 
 # for now, we don't need any unnecessary dependencies!
@@ -51,7 +53,7 @@
 # TODO:  make this more elegantly configured
 pgerhub = Pger(home=home)
 pgerhub.setServiceParent(application)
-pgerchkr = pgerhub.credchkr
+pgerchkr = pgercred2.UserDbCredChecker(userdb=pgerhub.db)
 
 ###  PGER Perspective Broker Interface  ###
 # PgerPB is temporarily disabled (until we look at what needs
@@ -70,11 +72,16 @@
 mux = Resource()
 
 ###  PGER XML-RPC interface  ###
-xr = pgercred.XmlrpcRealm('PGER XML-RPC',
-                          engine=pgerhub)
+# TODO:  make a general VGER xml-rpc service, of which the PGER xml-rpc
+# interface is an instance ...
+xr = pgercred2.XmlrpcRealm('PGER XML-RPC')
 xp = portal.Portal(xr)
 xp.registerChecker(pgerchkr)
-mux.putChild('RPC2', pgercred.BasicAuthResource(xp))
+mux.putChild('RPC2',
+             wrapper.HTTPAuthResource(
+                 pgercred2.XmlrpcAvatar,
+                 (basic.BasicCredentialFactory(xr),),
+                 xp, (IResource,)))
 
 ###  PGER SOAP interface  ###
 # TODO:  not implemented yet (just copied from XML-RPC ;)
@@ -82,25 +89,34 @@
 
 ###  PGER HTTP file-upload interface  ###
 # non-browser upload interface (for direct http uploads)
-ur = pgercred.FileUploadRealm('PGER HTTP File Upload',
-                              engine=pgerhub)
+ur = pgercred2.PgerFileUploadRealm('PGER HTTP File Upload')
 up = portal.Portal(ur)
 up.registerChecker(pgerchkr)
-mux.putChild('upload', pgercred.BasicAuthResource(up))
+mux.putChild('upload',
+             wrapper.HTTPAuthResource(
+                 pgercred2.PgerFileUploadAvatar,
+                 (basic.BasicCredentialFactory(ur),),
+                 up, (IResource,)))
 
-###  PGER HTTP file-upload interface  ###
+###  VGER web browser file-upload interface  ###
 # web browser upload interface
-wur = pgercred.WebUploadRealm('PGER HTTP File Upload',
-                              engine=pgerhub)
+wur = pgercred2.WebUploadRealm('Web File Upload Service')
 wup = portal.Portal(wur)
 wup.registerChecker(pgerchkr)
-mux.putChild('webupload', pgercred.BasicAuthResource(wup))
+mux.putChild('webupload',
+             wrapper.HTTPAuthResource(
+                 pgercred2.WebUploadAvatar,
+                 (basic.BasicCredentialFactory(ur),),
+                 up, (IResource,)))
 
-###  PGER Static web server  ###
-sr = pgercred.StaticHttpRealm('PGER Web', 'web')
+###  VGER Static web server  ###
+sr = pgercred2.StaticHttpRealm('PGER Web', 'web')
 sp = portal.Portal(sr)
 sp.registerChecker(pgerchkr)
-res = pgercred.BasicAuthResource(sp)
+res = wrapper.HTTPAuthResource(
+                 pgercred2.StaticResourceAvatar,
+                 (basic.BasicCredentialFactory(sr),),
+                 sp, (IResource,))
 mux.putChild('', res)
 
 xmlrpc_port = 8888

Index: PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.1 PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.2
--- PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.1	Thu Oct 26 13:49:48 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py	Fri Feb  9 17:33:08 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_changePassword.py,v 1.1 2006/10/26 17:49:48 waterbug Exp $
+# $Id: test_xmlrpc_changePassword.py,v 1.2 2007/02/09 22:33:08 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.pgerxmlrpc.changePassword
@@ -9,7 +9,7 @@
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 pgr = Pger(home='_trial_temp')
-xrs = PgerXmlrpcService(pgr, userid='admin')
+xrs = PgerXmlrpcService(userid='admin')
 
 def success(res):
     print res

Index: PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.13 PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.14
--- PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.13	Wed Oct 11 07:28:26 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py	Fri Feb  9 17:33:08 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_getObjectsByOids.py,v 1.13 2006/10/11 11:28:26 waterbug Exp $
+# $Id: test_xmlrpc_getObjectsByOids.py,v 1.14 2007/02/09 22:33:08 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_getObjects
@@ -26,7 +26,7 @@
 ORB.initCache(home='_trial_temp')
 
 pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(engine=pgr, userid='Fester.Bestertester@earth.milkyway.univ')
+xmlsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
 
 oids = ['banzai@banzai.earth',
         'bigboote@yoyodyne.planet10',

Index: PanGalactic/pangalactic/repo/pgercred.py
diff -u PanGalactic/pangalactic/repo/pgercred.py:1.17 PanGalactic/pangalactic/repo/pgercred.py:1.18
--- PanGalactic/pangalactic/repo/pgercred.py:1.17	Sat Jan 27 17:56:44 2007
+++ PanGalactic/pangalactic/repo/pgercred.py	Fri Feb  9 17:33:07 2007
@@ -1,9 +1,9 @@
-# $Id: pgercred.py,v 1.17 2007/01/27 22:56:44 waterbug Exp $
+# $Id: pgercred.py,v 1.18 2007/02/09 22:33:07 waterbug Exp $
 """
 Authentication and credential management for PGER.
-@version: $Revision: 1.17 $
+@version: $Revision: 1.18 $
 """
-__version__ = "$Revision: 1.17 $"[11:-2]
+__version__ = "$Revision: 1.18 $"[11:-2]
 
 import sha
 
@@ -20,8 +20,8 @@
 from zope.interface import implements
 
 from pangalactic.repo.pgerxmlrpc    import PgerXmlrpcService
-from pangalactic.repo.pgerupload    import FileUploadService
-from pangalactic.repo.pgerwebupload import WebUploadResource
+from pangalactic.repo.pgerupload    import PgerFileUploadService
+from pangalactic.repo.pgerwebupload import WebUploadService
 
 
 class AvatarResource(resource.Resource):
@@ -53,9 +53,8 @@
 
     implements(resource.IResource)
 
-    def __init__(self, userid, realm='', engine=None):
-        PgerXmlrpcService.__init__(self, engine=engine,
-                                   userid=userid)
+    def __init__(self, userid, realm=''):
+        PgerXmlrpcService.__init__(self, userid=userid)
         self.userid = userid
         self.realm = realm
 
@@ -67,25 +66,21 @@
 
     implements(portal.IRealm)
 
-    def __init__(self, name='', engine=None):
+    def __init__(self, name=''):
         self.name = name
-        self.engine = engine
 
     def requestAvatar(self, avatarId, mind, *interfaces):
         av = XmlrpcAvatar(userid=avatarId,
-                          realm=self.name,
-                          engine=self.engine)
+                          realm=self.name)
         return resource.IResource, av, av.logout
 
 
-class FileUploadAvatar(FileUploadService):
+class FileUploadAvatar(PgerFileUploadService):
 
     implements(resource.IResource)
 
-    def __init__(self, userid, realm='HTTP File Upload', engine=None):
-        FileUploadService.__init__(self, 
-                                   engine=engine,
-                                   userid=userid)
+    def __init__(self, userid, realm='HTTP File Upload'):
+        PgerFileUploadService.__init__(self, userid=userid)
         self.userid = userid
         self.realm = realm
 
@@ -97,25 +92,21 @@
 
     implements(portal.IRealm)
 
-    def __init__(self, name='HTTP File Upload', engine=None):
+    def __init__(self, name='HTTP File Upload'):
         self.name = name
-        self.engine = engine
 
     def requestAvatar(self, avatarId, mind, *interfaces):
         av = FileUploadAvatar(userid=avatarId,
-                              realm=self.name,
-                              engine=self.engine)
+                              realm=self.name)
         return resource.IResource, av, av.logout
 
 
-class WebUploadAvatar(WebUploadResource):
+class WebUploadAvatar(WebUploadService):
 
     implements(resource.IResource)
 
-    def __init__(self, userid, realm='Web File Upload', engine=None):
-        WebUploadResource.__init__(self, 
-                                   engine=engine,
-                                   userid=userid)
+    def __init__(self, userid, realm='Web File Upload'):
+        WebUploadService.__init__(self, userid=userid)
         self.userid = userid
         self.realm = realm
 
@@ -127,14 +118,12 @@
 
     implements(portal.IRealm)
 
-    def __init__(self, name='Web File Upload', engine=None):
+    def __init__(self, name='Web File Upload'):
         self.name = name
-        self.engine = engine
 
     def requestAvatar(self, avatarId, mind, *interfaces):
         av = WebUploadAvatar(userid=avatarId,
-                             realm=self.name,
-                             engine=self.engine)
+                             realm=self.name)
         return resource.IResource, av, av.logout
 
 

Index: PanGalactic/pangalactic/test/test_registry.py
diff -u PanGalactic/pangalactic/test/test_registry.py:1.26 PanGalactic/pangalactic/test/test_registry.py:1.27
--- PanGalactic/pangalactic/test/test_registry.py:1.26	Tue Jan  9 02:53:18 2007
+++ PanGalactic/pangalactic/test/test_registry.py	Fri Feb  9 17:33:08 2007
@@ -70,7 +70,6 @@
                          property_type='datatype',
                          range='str',
                          security_mask=0,
-                         uri='http://pangalactic.us/pgef/version',
                          version='0')
         klas_extract = {'_schema_name': 'PmofClass',
                         'abbreviation': '',
@@ -100,10 +99,9 @@
                          iteration=0,
                          name='PmofMetaObject',
                          security_mask=0,
-                         uri='http://pangalactic.us/pgef/PmofMetaObject',
                          version='0')
-        value = [pv._schema, pv.abbreviation, pv.base_id, pv.description, pv.domain, pv.functional, pv.id, pv.id_ns, pv.inverse_functional, pv.iteration, pv.name, pv.property_type, pv.range, pv.security_mask, pv.uri, pv.version, kv._schema, kv.abbreviation, kv.base_id, kv.bases, kv.description, kv.id, kv.id_ns, kv.iteration, kv.name, kv.security_mask, kv.uri, kv.version]
-        expected = [pe._schema, pe.abbreviation, pe.base_id, pe.description, pe.domain, pe.functional, pe.id, pe.id_ns, pe.inverse_functional, pe.iteration, pe.name, pe.property_type, pe.range, pe.security_mask, pe.uri, pe.version, ke._schema, ke.abbreviation, ke.base_id, ke.bases, ke.description, ke.id, ke.id_ns, ke.iteration, ke.name, ke.security_mask, ke.uri, ke.version]
+        value = [pv._schema, pv.abbreviation, pv.base_id, pv.description, pv.domain, pv.functional, pv.id, pv.id_ns, pv.inverse_functional, pv.iteration, pv.name, pv.property_type, pv.range, pv.security_mask, pv.version, kv._schema, kv.abbreviation, kv.base_id, kv.bases, kv.description, kv.id, kv.id_ns, kv.iteration, kv.name, kv.security_mask, kv.version]
+        expected = [pe._schema, pe.abbreviation, pe.base_id, pe.description, pe.domain, pe.functional, pe.id, pe.id_ns, pe.inverse_functional, pe.iteration, pe.name, pe.property_type, pe.range, pe.security_mask, pe.version, ke._schema, ke.abbreviation, ke.base_id, ke.bases, ke.description, ke.id, ke.id_ns, ke.iteration, ke.name, ke.security_mask, ke.version]
         self.assertEquals(expected, value)
 
 #     def test_02_createPmofObjectFromExtract(self):

Index: PanGalactic/pangalactic/test/test_pger_addVersions.py
diff -u PanGalactic/pangalactic/test/test_pger_addVersions.py:1.15 PanGalactic/pangalactic/test/test_pger_addVersions.py:1.16
--- PanGalactic/pangalactic/test/test_pger_addVersions.py:1.15	Tue Jan  9 11:39:40 2007
+++ PanGalactic/pangalactic/test/test_pger_addVersions.py	Fri Feb  9 17:33:08 2007
@@ -18,7 +18,7 @@
 
 PGER = Pger(home='_trial_temp')
 
-test_objects = genLinkedTestObjects('TPaV', PGER.infum.registry, addable=True,
+test_objects = genLinkedTestObjects('TPaV', PGER.db.registry, addable=True,
                                     versionable=True)
 extracts = [o.extract() for o in test_objects]
 print '------------------------------------------------------'

Index: PanGalactic/pangalactic/repo/pgerxmlrpc.py
diff -u PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.42 PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.43
--- PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.42	Fri Jan 19 17:39:21 2007
+++ PanGalactic/pangalactic/repo/pgerxmlrpc.py	Fri Feb  9 17:33:07 2007
@@ -1,14 +1,15 @@
 """
 PGER XML-RPC Interfaces module
-@version: $Revision: 1.42 $
+@version: $Revision: 1.43 $
 """
 
-__version__ = "$Revision: 1.42 $"[11:-2]
-# $Id: pgerxmlrpc.py,v 1.42 2007/01/19 22:39:21 waterbug Exp $
+__version__ = "$Revision: 1.43 $"[11:-2]
+# $Id: pgerxmlrpc.py,v 1.43 2007/02/09 22:33:07 waterbug Exp $
 
-from twisted.python import log
-from twisted.web.xmlrpc import XMLRPC
-from twisted.web import resource
+from twisted.python        import log
+from twisted.web.xmlrpc    import XMLRPC
+from twisted.web           import resource
+from pangalactic.repo.pger import Pger
 
 
 class PgerXmlrpcService(XMLRPC):
@@ -20,10 +21,10 @@
 
     __implements__ = resource.IResource
 
-    def __init__(self, engine=None, userid=None):
+    def __init__(self, userid=None):
         XMLRPC.__init__(self)
-        self.engine = engine
         self.userid = userid
+        self.engine = Pger()
 
     def _getFunction(self, functionPath):
         """

Index: PanGalactic/pangalactic/repo/pgerwebupload.py
diff -u PanGalactic/pangalactic/repo/pgerwebupload.py:1.9 PanGalactic/pangalactic/repo/pgerwebupload.py:1.10
--- PanGalactic/pangalactic/repo/pgerwebupload.py:1.9	Sat Dec  2 15:45:09 2006
+++ PanGalactic/pangalactic/repo/pgerwebupload.py	Fri Feb  9 17:33:07 2007
@@ -1,33 +1,37 @@
-# $Id: pgerwebupload.py,v 1.9 2006/12/02 20:45:09 waterbug Exp $
+# $Id: pgerwebupload.py,v 1.10 2007/02/09 22:33:07 waterbug Exp $
 
 """
-PGER Web File Upload Resource
+A simple browser-based file upload service
 
-@version: $Revision: 1.9 $
+@version: $Revision: 1.10 $
 """
-__version__ = "$Revision: 1.9 $"[11:-2]
+__version__ = "$Revision: 1.10 $"[11:-2]
 
 from pprint         import pprint
 from twisted.python import log
 from twisted.web    import server
 
-from pangalactic.repo.pgerupload import FileUploadService
+from pangalactic.repo.pger       import Pger
+from pangalactic.repo.pgerupload import PgerFileUploadService
 
 
-class WebUploadResource(FileUploadService):
+class WebUploadService(PgerFileUploadService):
+    """
+    A simple browser-based file upload service.
 
-    def __init__(self, engine, userid):
-        """
-        Initialize a FileUploadService resource
+    @type engine:  L{pangalactic.repo.pger.Pger}
+    @ivar engine:  back-end processor; PGER in this case
+    """
 
-        @type engine:  L{pangalactic.repo.pger.Pger}
-        @param engine: back-end processor; PGER in this case
+    def __init__(self, userid):
+        """
+        Initialize a WebUploadService instance.
 
-        @type userid:  string
-        @param userid: userid of the requestor
+        @type  userid:  string
+        @param userid:  userid of the requestor
         """
-        FileUploadService.__init__(self, engine, userid)
-        self.engine = engine
+        FileUploadService.__init__(self, userid)
+        self.engine = Pger()
         self.userid = userid
 
     def getChild(self, name, request):

Index: PanGalactic/pangalactic/repo/pgerupload.py
diff -u PanGalactic/pangalactic/repo/pgerupload.py:1.5 PanGalactic/pangalactic/repo/pgerupload.py:1.6
--- PanGalactic/pangalactic/repo/pgerupload.py:1.5	Sat Dec  2 15:45:09 2006
+++ PanGalactic/pangalactic/repo/pgerupload.py	Fri Feb  9 17:33:07 2007
@@ -1,30 +1,30 @@
-# $Id: pgerupload.py,v 1.5 2006/12/02 20:45:09 waterbug Exp $
+# $Id: pgerupload.py,v 1.6 2007/02/09 22:33:07 waterbug Exp $
 
 """
 PGER HTTP File Upload Service
 
-@version: $Revision: 1.5 $
+@version: $Revision: 1.6 $
 """
-__version__ = "$Revision: 1.5 $"[11:-2]
+__version__ = "$Revision: 1.6 $"[11:-2]
 
-from twisted.python import log
-from twisted.web    import resource
-from twisted.web    import server
+from twisted.python        import log
+from twisted.web           import resource
+from twisted.web           import server
 
-class FileUploadService(resource.Resource):
+from pangalactic.repo.pger import Pger
 
-    def __init__(self, engine, userid):
+
+class PgerFileUploadService(resource.Resource):
+
+    def __init__(self, userid):
         """
         Initialize a FileUploadService resource
 
-        @type engine:  L{pangalactic.repo.pger.Pger}
-        @param engine: back-end processor; PGER in this case
-
         @type userid:  string
         @param userid: userid of the requestor
         """
         resource.Resource.__init__(self)
-        self.engine = engine
+        self.engine = Pger()
         self.userid = userid
 
     def getChild(self, name, request):

Index: PanGalactic/pangalactic/test/test_pger_addObjectsE.py
diff -u PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.14 PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.15
--- PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.14	Mon Sep 25 17:22:04 2006
+++ PanGalactic/pangalactic/test/test_pger_addObjectsE.py	Fri Feb  9 17:33:07 2007
@@ -16,7 +16,7 @@
 
 # create test objects
 test_objects = genLinkedTestObjects('TPaOE', addable=True, versionable=False,
-                                    registry=PGER.infum.registry)
+                                    registry=PGER.db.registry)
 extracts = [o.extract() for o in test_objects]
 
 def success(result):

Index: PanGalactic/pangalactic/test/test_pger_updateObjects.py
diff -u PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.1 PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.2
--- PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.1	Tue Sep 26 00:45:15 2006
+++ PanGalactic/pangalactic/test/test_pger_updateObjects.py	Fri Feb  9 17:33:08 2007
@@ -13,7 +13,7 @@
 from pangalactic.test.utils4test import genLinkedTestObjects
 
 PGER = Pger(home='_trial_temp')
-r = PGER.infum.registry
+r = PGER.db.registry
 
 # create test objects
 test_objects = genLinkedTestObjects('TPaOE', r, updateable=True)

Index: PanGalactic/pangalactic/test/test_pger_addObjectsO.py
diff -u PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.14 PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.15
--- PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.14	Mon Sep 25 17:22:04 2006
+++ PanGalactic/pangalactic/test/test_pger_addObjectsO.py	Fri Feb  9 17:33:08 2007
@@ -1,4 +1,4 @@
-# $Id: test_pger_addObjectsO.py,v 1.14 2006/09/25 21:22:04 waterbug Exp $
+# $Id: test_pger_addObjectsO.py,v 1.15 2007/02/09 22:33:08 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.Pger.addObjects()
@@ -18,7 +18,7 @@
 
 # create test objects
 test_objects = genLinkedTestObjects('TPaOO', addable=True, versionable=False,
-                                    registry=PGER.infum.registry)
+                                    registry=PGER.db.registry)
 
 def success(results):
     print "\nAdded %s objects:\n" % len(results)

Index: PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.12 PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.13
--- PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.12	Mon Sep 25 19:10:22 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py	Fri Feb  9 17:33:08 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_addObjects.py,v 1.12 2006/09/25 23:10:22 waterbug Exp $
+# $Id: test_xmlrpc_addObjects.py,v 1.13 2007/02/09 22:33:08 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_addObjects
@@ -16,7 +16,7 @@
 
 PGER = Pger(home='_trial_temp')
 xmlrpcsrv = PgerXmlrpcService(PGER, userid='Fester.Bestertester@earth.milkyway.univ')
-test_objects = genLinkedTestObjects('TXaO', PGER.infum.registry, addable=True)
+test_objects = genLinkedTestObjects('TXaO', PGER.db.registry, addable=True)
 extracts = [o.extract() for o in test_objects]
 
 def success(res):

Index: PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.1 PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.2
--- PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.1	Tue Sep 26 00:45:15 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py	Fri Feb  9 17:33:08 2007
@@ -15,7 +15,7 @@
 
 PGER = Pger(home='_trial_temp')
 xmlrpcsrv = PgerXmlrpcService(PGER, userid='Fester.Bestertester@earth.milkyway.univ')
-r = PGER.infum.registry
+r = PGER.db.registry
 
 # create test objects
 test_objects = genLinkedTestObjects('TPaOE', r, updateable=True)

Index: PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.17 PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.18
--- PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.17	Tue Oct 10 07:04:11 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py	Fri Feb  9 17:33:08 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_getObjects.py,v 1.17 2006/10/10 11:04:11 waterbug Exp $
+# $Id: test_xmlrpc_getObjects.py,v 1.18 2007/02/09 22:33:08 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_getObjects
@@ -24,7 +24,7 @@
     os.mkdir('_trial_temp')
 pgr = Pger(home='_trial_temp')
 
-xmlsrv = PgerXmlrpcService(engine=pgr, userid='Fester.Bestertester@earth.milkyway.univ')
+xmlsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
 
 U.initCache()
 

Index: PanGalactic/pangalactic/repo/pger.py
diff -u PanGalactic/pangalactic/repo/pger.py:1.140 PanGalactic/pangalactic/repo/pger.py:1.141
--- PanGalactic/pangalactic/repo/pger.py:1.140	Tue Jan  9 11:39:39 2007
+++ PanGalactic/pangalactic/repo/pger.py	Fri Feb  9 17:33:07 2007
@@ -1,10 +1,10 @@
-# $Id: pger.py,v 1.140 2007/01/09 16:39:39 waterbug Exp $
+# $Id: pger.py,v 1.141 2007/02/09 22:33:07 waterbug Exp $
 """
 Pan Galactic Entropy Reverser module
 
-@version: $Revision: 1.140 $
+@version: $Revision: 1.141 $
 """
-__version__ = "$Revision: 1.140 $"[11:-2]
+__version__ = "$Revision: 1.141 $"[11:-2]
 
 import base64
 import sys
@@ -20,7 +20,6 @@
 
 # PanGalactic imports ...
 from pangalactic.repo.chronosynclastic import Infundibulum
-from pangalactic.repo.pgercred import UserDbCredChecker
 from pangalactic.utils import pgefexceptions
 from pangalactic.utils.datetimes import dt2str, dtstamp
 from pangalactic.utils.identity  import generateOid
@@ -52,8 +51,7 @@
         MultiService.__init__(self)
         self.setName('PGER')
         self.vault = os.path.join(home, 'vault')
-        self.infum = Infundibulum(home=home)
-        self.credchkr = UserDbCredChecker(self.infum)
+        self.db = Infundibulum(home=home)
         log.msg('PGER started.', system='PGER')
 
     def changePassword(self, requestor, userid, password):
@@ -79,7 +77,7 @@
             userid = requestor
         # TODO: vet new passwords
         try:
-            d = self.infum.changePassword(
+            d = self.db.changePassword(
                            requestor,
                            userid=userid,
                            newpasswd=sha.sha(password).hexdigest())
@@ -157,8 +155,8 @@
         """
         logmsg = 'getObjects, %s, %s' % (schema_name, str(kw))
         log.msg(logmsg, system='%s:PGER' % requestor)
-        return self.infum.getObjects(requestor, schema_name, refs, subtypes,
-                                     **kw)
+        return self.db.getObjects(requestor, schema_name, refs, subtypes,
+                                  **kw)
 
     def getObjectsByOids(self, requestor, oids, ret='extracts'):
         """
@@ -184,7 +182,7 @@
         """
         logmsg = 'getObjectsByOids'
         log.msg(logmsg, system='%s:PGER' % requestor)
-        return self.infum.getObjectsByOids(requestor, oids)
+        return self.db.getObjectsByOids(requestor, oids)
 
     def search(self, requestor, schema_name, refs=True, subtypes=False,
                args=None, spec=None, distinct=False, count=False):
@@ -261,14 +259,14 @@
         logmsg = 'search, %s, %s' % (schema_name, str(args[0]))
         log.msg(logmsg, system='%s:PGER' % requestor)
         if args:
-            return self.infum.search(requestor=requestor,
-                                     schema_name=schema_name,
-                                     refs=refs,
-                                     subtypes=subtypes,
-                                     args=args,
-                                     spec=spec,
-                                     distinct=distinct,
-                                     count=count)
+            return self.db.search(requestor=requestor,
+                                  schema_name=schema_name,
+                                  refs=refs,
+                                  subtypes=subtypes,
+                                  args=args,
+                                  spec=spec,
+                                  distinct=distinct,
+                                  count=count)
         else:
             raise ValueError('Need some arguments!')
 
@@ -324,12 +322,12 @@
         logmsg = 'getCount(), %s, %s' % (schema_name, str(args[0]))
         log.msg(logmsg, system='%s:PGER' % requestor)
         if args:
-            return self.infum.search(requestor=requestor,
-                                     schema_name=schema_name,
-                                     refs=refs,
-                                     subtypes=subtypes,
-                                     count=True,
-                                     args=args)
+            return self.db.search(requestor=requestor,
+                                  schema_name=schema_name,
+                                  refs=refs,
+                                  subtypes=subtypes,
+                                  count=True,
+                                  args=args)
         else:
             raise ValueError('Need some arguments!')
 
@@ -388,10 +386,10 @@
 #         @type  extr:  C{dict}
 #         """
 #         if res:  # it's in the repo ->  update
-#             return self.infum.updateObjects(requestor, extr['_schema_name'],
-#                                             [extr['oid']], extr)
+#             return self.db.updateObjects(requestor, extr['_schema_name'],
+#                                          [extr['oid']], extr)
 #         else:    # not here ->  add
-#             return self.infum.addObjects(requestor, [extr])
+#             return self.db.addObjects(requestor, [extr])
 # 
 #     def _addOrUpdateError(self, error):
 #         """
@@ -433,7 +431,7 @@
             extracts = [o.extract() for o in objects]
         else:
             extracts = objects
-        return self.infum.addObjects(requestor, extracts)
+        return self.db.addObjects(requestor, extracts)
 
     def updateObjects(self, requestor, objects=None, input='extracts',
                    ret='extracts'):
@@ -443,7 +441,7 @@
            - usage:  updateObjects(list of PGER objects)
            - procedure:
                - create a list of extracts of the objects
-               - call infum.updateObjects
+               - call db.updateObjects
 
         @param requestor:  the userid associated with the request
         @type  requestor:  C{str}
@@ -473,12 +471,11 @@
             e['record_modifier'] = requestor
             updates = dict([(a, e[a])
                             for a in
-                            self.infum.registry.interfaces[e['_schema_name']]])
-            d = self.infum.updateObjects(
-                    requestor,
-                    e['_schema_name'],
-                    [e['oid']],
-                    updates)
+                            self.db.registry.interfaces[e['_schema_name']]])
+            d = self.db.updateObjects(requestor,
+                                      e['_schema_name'],
+                                      [e['oid']],
+                                      updates)
             dlist.append(d)
         dres = defer.gatherResults(dlist)
         dres.addCallback(lambda x: [rsl[0] for rsl in x])
@@ -550,9 +547,9 @@
         # too much information!
         logmsg = '_addVersionExtract for a %s' % schema_name
         log.msg(logmsg, system='%s:PGER' % requestor)
-        res = self.infum.getObjects(requestor, schema_name,
-                                    base_id=extr['base_id'],
-                                    is_head=True)
+        res = self.db.getObjects(requestor, schema_name,
+                                 base_id=extr['base_id'],
+                                 is_head=True)
         res.addCallbacks(lambda x: self._processIterationInfo(
                             requestor, schema_name, x),
                          self._addVersionsError)
@@ -603,10 +600,10 @@
         @rtype:   C{(str, str, str)}
         """
         if oid_tuple[2]:
-            self.infum.updateObjects(oid_tuple[0],        # requestor
-                                     oid_tuple[1],        # schema_name
-                                     [oid_tuple[2]],      # oids
-                                     {'is_head' : False}) # updates
+            self.db.updateObjects(oid_tuple[0],        # requestor
+                                  oid_tuple[1],        # schema_name
+                                  [oid_tuple[2]],      # oids
+                                  {'is_head' : False}) # updates
         return oid_tuple[0], oid_tuple[1], oid_tuple[3]
 
     def _actuallyAddVersion(self, requestor, extr, prev_iteration):
@@ -635,7 +632,7 @@
         extr['version'] = 'v.' + extr['iteration']
         extr['id'] = ' '.join([extr['base_id'], extr['version']])
         extr['is_head'] = 'True' # don't forget this!
-        return self.infum.addObjects(requestor, [extr])
+        return self.db.addObjects(requestor, [extr])
 
     def _addVersionsError(self, error):
         """
@@ -713,21 +710,20 @@
                 # pprint(r)
                 if len(r):
                     # print 'updating row ...'
-                    d = self.infum.updateObjects(requestor,
-                                                 'FileLink',
-                                                 oids=[updates['oid']],
-                                                 updates=updates)
+                    d = self.db.updateObjects(requestor,
+                                              'FileLink',
+                                              oids=[updates['oid']],
+                                              updates=updates)
                 else:
                     # print 'adding row ...'
                     updates['_schema_name'] = 'FileLink'
                     # print 'updates:'
                     # pprint(updates)
-                    d = self.infum.addObjects(requestor,
-                                              [updates])
+                    d = self.db.addObjects(requestor, [updates])
                 d.addErrback(self._addFileError)
                 return d
             # deferred chain begins here ...
-            res = self.infum.getObjects(requestor, 'FileLink', oid=roid)
+            res = self.db.getObjects(requestor, 'FileLink', oid=roid)
             res.addCallback(addOrUpdate)
             logmsg = 'addFile adding file %s%s as %s' % (
                                         updates['user_file_name'],

From waterbug at step.nasa.gov  Fri Feb  9 17:35:28 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Fri Feb  9 17:35:29 2007
Subject: [pangalactic-commits] New pgercred to go with web2 auth ...
Message-ID: <200702092235.l19MZS32023034@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/pgercred2.py None 1.1

Log message:
New pgercred to go with web2 auth ...
probably will refactor this a bit, too --
needs to be more general than just "pger", so probably
will go into utils as "realms" or something.

From waterbug at step.nasa.gov  Fri Feb  9 20:34:45 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Fri Feb  9 20:34:46 2007
Subject: [pangalactic-commits] Fix the last broken test.
Message-ID: <200702100134.l1A1YjvM025993@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py 1.13 1.14

Log message:
Fix the last broken test.

Index: PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.13 PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.14
--- PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.13	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py	Fri Feb  9 20:34:43 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_addObjects.py,v 1.13 2007/02/09 22:33:08 waterbug Exp $
+# $Id: test_xmlrpc_addObjects.py,v 1.14 2007/02/10 01:34:43 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_addObjects
@@ -15,7 +15,7 @@
 from pangalactic.test.utils4test import genLinkedTestObjects
 
 PGER = Pger(home='_trial_temp')
-xmlrpcsrv = PgerXmlrpcService(PGER, userid='Fester.Bestertester@earth.milkyway.univ')
+xmlrpcsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
 test_objects = genLinkedTestObjects('TXaO', PGER.db.registry, addable=True)
 extracts = [o.extract() for o in test_objects]
 

From waterbug at step.nasa.gov  Mon Feb 12 19:02:53 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Mon Feb 12 19:02:54 2007
Subject: [pangalactic-commits] PGER is now a singleton (module-level obj).
Message-ID: <200702130002.l1D02rUN030723@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/pger.py 1.141 1.142
PanGalactic/pangalactic/repo/pgerupload.py 1.6 1.7
PanGalactic/pangalactic/repo/pgerwebupload.py 1.10 1.11
PanGalactic/pangalactic/repo/pgerxmlrpc.py 1.43 1.44
PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py 1.16 1.17
PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py 1.16 1.17
PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py 1.1 1.2
PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py 1.18 1.19
PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py 1.3 1.4
PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py 1.4 1.5
PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py 1.8 1.9
PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py 1.5 1.6
PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py 1.13 1.14
PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py 1.3 1.4
PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py 1.3 1.4
PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py 1.5 1.6
PanGalactic/pangalactic/test/test_chronosynclastic_search.py 1.3 1.4
PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py 1.3 1.4
PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py 1.4 1.5
PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py 1.5 1.6
PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py 1.19 1.20
PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py 1.11 1.12
PanGalactic/pangalactic/test/test_pger_addFile.py 1.11 1.12
PanGalactic/pangalactic/test/test_pger_addObjectsE.py 1.15 1.16
PanGalactic/pangalactic/test/test_pger_addObjectsO.py 1.15 1.16
PanGalactic/pangalactic/test/test_pger_addVersions.py 1.16 1.17
PanGalactic/pangalactic/test/test_pger_changePassword.py 1.1 1.2
PanGalactic/pangalactic/test/test_pger_getBaseIds.py 1.3 1.4
PanGalactic/pangalactic/test/test_pger_getCount.py 1.3 1.4
PanGalactic/pangalactic/test/test_pger_getNames.py 1.4 1.5
PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py 1.4 1.5
PanGalactic/pangalactic/test/test_pger_getObjectsE.py 1.10 1.11
PanGalactic/pangalactic/test/test_pger_getObjectsO.py 1.13 1.14
PanGalactic/pangalactic/test/test_pger_gettuplers.py 1.14 1.15
PanGalactic/pangalactic/test/test_pger_search.py 1.13 1.14
PanGalactic/pangalactic/test/test_pger_searchWithSpec.py 1.4 1.5
PanGalactic/pangalactic/test/test_pger_updateObjects.py 1.2 1.3
PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py 1.14 1.15
PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py 1.2 1.3
PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py 1.3 1.4
PanGalactic/pangalactic/test/test_xmlrpc_getCount.py 1.4 1.5
PanGalactic/pangalactic/test/test_xmlrpc_getNames.py 1.3 1.4
PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py 1.18 1.19
PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py 1.14 1.15
PanGalactic/pangalactic/test/test_xmlrpc_search.py 1.13 1.14
PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py 1.4 1.5
PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py 1.2 1.3
PanGalactic/pangalactic/vger/vgerd.py 1.8 1.9

Log message:
PGER is now a singleton (module-level obj).

Index: PanGalactic/pangalactic/test/test_xmlrpc_search.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_search.py:1.13 PanGalactic/pangalactic/test/test_xmlrpc_search.py:1.14
--- PanGalactic/pangalactic/test/test_xmlrpc_search.py:1.13	Sat Sep 23 17:19:04 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_search.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_search.py,v 1.13 2006/09/23 21:19:04 waterbug Exp $
+# $Id: test_xmlrpc_search.py,v 1.14 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.search()
@@ -6,7 +6,6 @@
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 schema_name = 'Part'
@@ -22,9 +21,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(pgr)
-
+xmlsrv = PgerXmlrpcService()
 res = xmlsrv.xmlrpc_search(schema_name, 0, 0, [('owner', 'like', 'lizardo')],
                            None)
 res.addCallbacks(success, failure)

Index: PanGalactic/pangalactic/test/test_pger_getCount.py
diff -u PanGalactic/pangalactic/test/test_pger_getCount.py:1.3 PanGalactic/pangalactic/test/test_pger_getCount.py:1.4
--- PanGalactic/pangalactic/test/test_pger_getCount.py:1.3	Mon Sep 25 19:10:22 2006
+++ PanGalactic/pangalactic/test/test_pger_getCount.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,15 @@
-# $Id: test_pger_getCount.py,v 1.3 2006/09/25 23:10:22 waterbug Exp $
+# $Id: test_pger_getCount.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
+  - executes PGER interface call(s):
     - getResultSets()
   - outputs results of callback(s)
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(result):
     print
@@ -23,11 +22,9 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-out = pgr.getCount('test', 'Model', refs=0, subtypes=0,
-                   args=[('name', 'like', 'twang')]
-                   )
+out = PGER.getCount('test', 'Model', refs=0, subtypes=0,
+                    args=[('name', 'like', 'twang')]
+                    )
 
 out.addCallbacks(success, failure)
 

Index: PanGalactic/pangalactic/test/test_pger_updateObjects.py
diff -u PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.2 PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.3
--- PanGalactic/pangalactic/test/test_pger_updateObjects.py:1.2	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_pger_updateObjects.py	Mon Feb 12 19:02:47 2007
@@ -1,18 +1,14 @@
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/test/test_pger_updateObjects.py,v $
 
 """
-Functional test for pangalactic.repo.Pger.addOrUpdateObjects()
-  - initializes Pger
-  - executes Pger interface call:
-        addOrUpdateObjects()
+Functional test for PGER.addOrUpdateObjects()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-PGER = Pger(home='_trial_temp')
 r = PGER.db.registry
 
 # create test objects

Index: PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py:1.3 PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py:1.4
--- PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py:1.3	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped-sequence.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_runQueryMapped-sequence.py,v 1.3 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_runQueryMapped-sequence.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerDb running a query on a sequence value
@@ -25,7 +25,7 @@
     print error
     reactor.stop()
 
-inf = Infundibulum(home='_trial_temp')
+inf = Infundibulum()
 
 q = sql.buildSelect('_organization', 0, 
                     ('_id', 'in',

Index: PanGalactic/pangalactic/test/test_chronosynclastic_search.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_search.py:1.3 PanGalactic/pangalactic/test/test_chronosynclastic_search.py:1.4
--- PanGalactic/pangalactic/test/test_chronosynclastic_search.py:1.3	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_search.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_search.py,v 1.3 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_search.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -20,7 +20,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 res = fum.search(requestor='test',
                  schema_name='Actor',

Index: PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py:1.16 PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py:1.17
--- PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py:1.16	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_addObjects.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_addObjects.py,v 1.16 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_chronosynclastic_addObjects.py,v 1.17 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Test for pangalactic.repo.chronosynclastic addObjects method
@@ -12,7 +12,7 @@
 from pangalactic.repo.chronosynclastic import Infundibulum
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-inf = Infundibulum(home='_trial_temp')
+inf = Infundibulum()
 
 def success(stuff):
     pprint(stuff)

Index: PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py:1.5 PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py:1.6
--- PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py:1.5	Sat Dec  2 15:45:10 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_getResultByRowKey.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_getResultByRowKey.py,v 1.5 2006/12/02 20:45:10 waterbug Exp $
+# $Id: test_chronosynclastic_getResultByRowKey.py,v 1.6 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Test for getResultByRowKey
@@ -12,7 +12,7 @@
 from twisted.internet import defer
 from pangalactic.repo.chronosynclastic import Infundibulum as I
 
-inf = I(home='_trial_temp')
+inf = I()
 
 rk1 = ['_project', 'H2G2']
 

Index: PanGalactic/pangalactic/test/test_pger_getObjectsE.py
diff -u PanGalactic/pangalactic/test/test_pger_getObjectsE.py:1.10 PanGalactic/pangalactic/test/test_pger_getObjectsE.py:1.11
--- PanGalactic/pangalactic/test/test_pger_getObjectsE.py:1.10	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_pger_getObjectsE.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_getObjectsE.py,v 1.10 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_pger_getObjectsE.py,v 1.11 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getObjects()
-  - outputs results of callback(s)
+Functional test for PGER.getObjects() with extracts returned
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(objectlist):
     pprint(objectlist)
@@ -21,11 +17,9 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-res = pgr.getObjects(requestor='test',
-                     schema_name='Representation',
-                     id_ns='http://pangalactic.us/test/lib/')
+res = PGER.getObjects(requestor='test',
+                      schema_name='Representation',
+                      id_ns='http://pangalactic.us/test/lib/')
 res.addCallbacks(success, failure)
 
 reactor.run() # start the main loop

Index: PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py:1.1 PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py:1.2
--- PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py:1.1	Thu Oct 26 13:49:48 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_changePassword.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_changePassword.py,v 1.1 2006/10/26 17:49:48 waterbug Exp $
+# $Id: test_chronosynclastic_changePassword.py,v 1.2 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.pger.changePassword
@@ -8,7 +8,7 @@
 from twisted.internet import reactor
 from pangalactic.repo.chronosynclastic import Infundibulum as Fum
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 def success(res):
     print res

Index: PanGalactic/pangalactic/test/test_pger_getNames.py
diff -u PanGalactic/pangalactic/test/test_pger_getNames.py:1.4 PanGalactic/pangalactic/test/test_pger_getNames.py:1.5
--- PanGalactic/pangalactic/test/test_pger_getNames.py:1.4	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_pger_getNames.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_getNames.py,v 1.4 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_pger_getNames.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getResultSets()
-  - outputs results of callback(s)
+Functional test for PGER.getNames()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(resultsets):
     pprint(resultsets)
@@ -23,9 +19,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-out = pgr.getNames('test', 'http://pangalactic.us/test/lib/')
+out = PGER.getNames('test', 'http://pangalactic.us/test/lib/')
 
 out.addCallbacks(success, failure)
 

Index: PanGalactic/pangalactic/test/test_pger_addFile.py
diff -u PanGalactic/pangalactic/test/test_pger_addFile.py:1.11 PanGalactic/pangalactic/test/test_pger_addFile.py:1.12
--- PanGalactic/pangalactic/test/test_pger_addFile.py:1.11	Sat Dec  2 15:45:10 2006
+++ PanGalactic/pangalactic/test/test_pger_addFile.py	Mon Feb 12 19:02:47 2007
@@ -1,18 +1,14 @@
-# $Id: test_pger_addFile.py,v 1.11 2006/12/02 20:45:10 waterbug Exp $
+# $Id: test_pger_addFile.py,v 1.12 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger.Pger.addFile()
-  - executes Pger interface call:
-    - addFile()
+Functional test for PGER.addFile()
 """
 
 import base64
 from pprint import pprint
 from twisted.internet import reactor
 from pangalactic.utils.identity import generateOid
-from pangalactic.repo.pger import Pger
-
-PGER = Pger(home='_trial_temp')
+from pangalactic.repo.pger import PGER
 
 fileoid = generateOid('TEST.TPaF')
 headers = {}

Index: PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py:1.4 PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py:1.5
--- PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py:1.4	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_searchWithDistinct.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_searchWithDistinct.py,v 1.4 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_searchWithDistinct.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -22,7 +22,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 res = fum.search(requestor='test',
                  schema_name='VersionableProduct',

Index: PanGalactic/pangalactic/test/test_xmlrpc_getNames.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getNames.py:1.3 PanGalactic/pangalactic/test/test_xmlrpc_getNames.py:1.4
--- PanGalactic/pangalactic/test/test_xmlrpc_getNames.py:1.3	Sat Sep 23 17:19:04 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_getNames.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_getNames.py,v 1.3 2006/09/23 21:19:04 waterbug Exp $
+# $Id: test_xmlrpc_getNames.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.getNames()
@@ -6,7 +6,6 @@
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 
@@ -21,8 +20,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(pgr)
+xmlsrv = PgerXmlrpcService()
 
 res = xmlsrv.xmlrpc_getNames('http://pangalactic.us/test/lib/')
 res.addCallbacks(success, failure)

Index: PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py:1.3 PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py:1.4
--- PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py:1.3	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsByOids.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_getObjectsByOids.py,v 1.3 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_getObjectsByOids.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -22,7 +22,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 oids = ['banzai@banzai.earth',
         'bigboote@yoyodyne.planet10',
         'smallberries@yoyodyne.planet10',

Index: PanGalactic/pangalactic/test/test_pger_addObjectsE.py
diff -u PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.15 PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.16
--- PanGalactic/pangalactic/test/test_pger_addObjectsE.py:1.15	Fri Feb  9 17:33:07 2007
+++ PanGalactic/pangalactic/test/test_pger_addObjectsE.py	Mon Feb 12 19:02:47 2007
@@ -1,19 +1,14 @@
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/test/test_pger_addObjectsE.py,v $
 
 """
-Functional test for pangalactic.repo.Pger.addExtracts()
-  - initializes Pger
-  - executes Pger interface call:
-    - addExtracts()
+Functional test for PGER.addExtracts()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-PGER = Pger(home='_trial_temp')
-
 # create test objects
 test_objects = genLinkedTestObjects('TPaOE', addable=True, versionable=False,
                                     registry=PGER.db.registry)

Index: PanGalactic/pangalactic/test/test_pger_getObjectsO.py
diff -u PanGalactic/pangalactic/test/test_pger_getObjectsO.py:1.13 PanGalactic/pangalactic/test/test_pger_getObjectsO.py:1.14
--- PanGalactic/pangalactic/test/test_pger_getObjectsO.py:1.13	Tue Oct 10 07:04:11 2006
+++ PanGalactic/pangalactic/test/test_pger_getObjectsO.py	Mon Feb 12 19:02:47 2007
@@ -1,7 +1,7 @@
-# $Id: test_pger_getObjectsO.py,v 1.13 2006/10/10 11:04:11 waterbug Exp $
+# $Id: test_pger_getObjectsO.py,v 1.14 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
+Functional test for PGER.getObjects()
   - initializes Pger
   - executes Pger interface call(s):
     - getObjects()
@@ -11,7 +11,7 @@
 import os
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.node.uberorb import UberORB
 
 if not os.path.exists('_trial_temp'):
@@ -32,13 +32,9 @@
     print error
     reactor.stop()
 
-if not os.path.exists('_trial_pger'):
-    os.mkdir('_trial_pger')
-pgr = Pger(home='_trial_pger')
-
-out = pgr.getObjects(requestor='test',
-                     schema_name='Part',
-                     id_ns='http://pangalactic.us/test/lib/')
+out = PGER.getObjects(requestor='test',
+                      schema_name='Part',
+                      id_ns='http://pangalactic.us/test/lib/')
 out.addCallbacks(success, failure)
 
 reactor.run()

Index: PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py:1.5 PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py:1.6
--- PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py:1.5	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapped.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_runQueryMapped.py,v 1.5 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_runQueryMapped.py,v 1.6 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.pgerdb module
@@ -26,7 +26,7 @@
     print error
     reactor.stop()
 
-inf = Infundibulum(home='_trial_temp')
+inf = Infundibulum()
 
 q = sql.buildSelect('_representation', 0,
                     ('_id_ns', 'LIKE', 'test'))

Index: PanGalactic/pangalactic/test/test_pger_changePassword.py
diff -u PanGalactic/pangalactic/test/test_pger_changePassword.py:1.1 PanGalactic/pangalactic/test/test_pger_changePassword.py:1.2
--- PanGalactic/pangalactic/test/test_pger_changePassword.py:1.1	Thu Oct 26 13:49:48 2006
+++ PanGalactic/pangalactic/test/test_pger_changePassword.py	Mon Feb 12 19:02:47 2007
@@ -1,14 +1,12 @@
-# $Id: test_pger_changePassword.py,v 1.1 2006/10/26 17:49:48 waterbug Exp $
+# $Id: test_pger_changePassword.py,v 1.2 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger.changePassword
+Functional test for PGER.changePassword()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
-
-pgr = Pger(home='_trial_temp')
+from pangalactic.repo.pger import PGER
 
 def success(res):
     print res
@@ -18,7 +16,7 @@
     print f
     reactor.stop()
 
-d = pgr.changePassword('admin', 'zaphod@hog.univ', 'sekret')
+d = PGER.changePassword('admin', 'zaphod@hog.univ', 'sekret')
 d.addCallbacks(success, failure)
 
 reactor.run()

Index: PanGalactic/pangalactic/test/test_pger_gettuplers.py
diff -u PanGalactic/pangalactic/test/test_pger_gettuplers.py:1.14 PanGalactic/pangalactic/test/test_pger_gettuplers.py:1.15
--- PanGalactic/pangalactic/test/test_pger_gettuplers.py:1.14	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_pger_gettuplers.py	Mon Feb 12 19:02:47 2007
@@ -1,7 +1,7 @@
-# $Id: test_pger_gettuplers.py,v 1.14 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_pger_gettuplers.py,v 1.15 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test of Pger getting a result set for a list of docs
+Functional for PGER getting a result set for a list of docs
 obtained from a full text search
   - executes interface call:
     - [PyLucene].search(string)
@@ -11,7 +11,7 @@
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(result):
     print '\n Expected 4 result sets; got %s:\n' % len(result)
@@ -24,9 +24,6 @@
     print error
     reactor.stop()
 
-PGER = Pger(home='_trial_temp')
-
-
 # result = [pylucene].search('vacuum')
 # result.addCallback(lambda x: PGER.search('Alert', 
 #                                          'test', 0, 0, 0,

Index: PanGalactic/pangalactic/repo/pgerupload.py
diff -u PanGalactic/pangalactic/repo/pgerupload.py:1.6 PanGalactic/pangalactic/repo/pgerupload.py:1.7
--- PanGalactic/pangalactic/repo/pgerupload.py:1.6	Fri Feb  9 17:33:07 2007
+++ PanGalactic/pangalactic/repo/pgerupload.py	Mon Feb 12 19:02:46 2007
@@ -1,17 +1,17 @@
-# $Id: pgerupload.py,v 1.6 2007/02/09 22:33:07 waterbug Exp $
+# $Id: pgerupload.py,v 1.7 2007/02/13 00:02:46 waterbug Exp $
 
 """
 PGER HTTP File Upload Service
 
-@version: $Revision: 1.6 $
+@version: $Revision: 1.7 $
 """
-__version__ = "$Revision: 1.6 $"[11:-2]
+__version__ = "$Revision: 1.7 $"[11:-2]
 
 from twisted.python        import log
 from twisted.web           import resource
 from twisted.web           import server
 
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 
 class PgerFileUploadService(resource.Resource):
@@ -24,7 +24,6 @@
         @param userid: userid of the requestor
         """
         resource.Resource.__init__(self)
-        self.engine = Pger()
         self.userid = userid
 
     def getChild(self, name, request):
@@ -55,7 +54,7 @@
             raise ValueError, 'No file submitted.'
         else:
             rheaders = request.getAllHeaders()
-            self.engine.addFile(self.userid, rheaders, content
+            PGER.addFile(self.userid, rheaders, content
                 ).addErrback(self._ebRender
                 ).addCallback(self._cbRender, request)
         return server.NOT_DONE_YET

Index: PanGalactic/pangalactic/test/test_pger_search.py
diff -u PanGalactic/pangalactic/test/test_pger_search.py:1.13 PanGalactic/pangalactic/test/test_pger_search.py:1.14
--- PanGalactic/pangalactic/test/test_pger_search.py:1.13	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_pger_search.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_search.py,v 1.13 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_pger_search.py,v 1.14 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getResultSets()
-  - outputs results of callback(s)
+Functional test for PGER.search()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(resultsets):
     pprint(resultsets)
@@ -23,11 +19,9 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-out = pgr.search('test', 'Model', refs=0, subtypes=0,
-                 args=[('name', 'like', 'twang')]
-                 )
+out = PGER.search('test', 'Model', refs=0, subtypes=0,
+                  args=[('name', 'like', 'twang')]
+                  )
 
 out.addCallbacks(success, failure)
 

Index: PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py:1.3 PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py:1.4
--- PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py:1.3	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_runQueryMapToRowKeys.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_runQueryMapToRowKeys.py,v 1.3 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_runQueryMapToRowKeys.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -21,7 +21,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 sqlargs = sql.buildSelect('_actor', 1, # subtypes!
                           ['_id_ns', '=', 'http://pangalactic.us/test/lib/'])

Index: PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.2 PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.3
--- PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py:1.2	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_changePassword.py	Mon Feb 12 19:02:47 2007
@@ -1,14 +1,12 @@
-# $Id: test_xmlrpc_changePassword.py,v 1.2 2007/02/09 22:33:08 waterbug Exp $
+# $Id: test_xmlrpc_changePassword.py,v 1.3 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.pgerxmlrpc.changePassword
 """
 
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
-pgr = Pger(home='_trial_temp')
 xrs = PgerXmlrpcService(userid='admin')
 
 def success(res):

Index: PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py:1.3 PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py:1.4
--- PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py:1.3	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_getBaseIds.py	Mon Feb 12 19:02:47 2007
@@ -1,12 +1,11 @@
-# $Id: test_xmlrpc_getBaseIds.py,v 1.3 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_xmlrpc_getBaseIds.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for PgerXmlrpcService.getNames()
+Functional test for PgerXmlrpcService.getBaseIds()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 
@@ -21,8 +20,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(pgr)
+xmlsrv = PgerXmlrpcService()
 
 res = xmlsrv.xmlrpc_getBaseIds('http://pangalactic.us/test/lib/')
 res.addCallbacks(success, failure)

Index: PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.14 PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.15
--- PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py:1.14	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_getObjectsByOids.py	Mon Feb 12 19:02:47 2007
@@ -1,31 +1,25 @@
-# $Id: test_xmlrpc_getObjectsByOids.py,v 1.14 2007/02/09 22:33:08 waterbug Exp $
+# $Id: test_xmlrpc_getObjectsByOids.py,v 1.15 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_getObjects
-"getObjects" API call
-  - imports the UberORB and inits cache (needed for 'remember' function)
-  - initializes PgerDb, Pger, and PgerXmlrpcService
-  - executes PgerXmlrpcService interface call(s):
-    - xmlrpc_getObjects()
-  - pretty prints result of callback
-  - prints result of reconstitute() on extracts
 """
 
+import os
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.node import prefs
-from pangalactic.repo.pger import Pger
+# from pangalactic.node import prefs
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 from pangalactic.node.uberorb import UberORB
 
 
-prefs['home'] = '_trial_temp'
+if not os.path.exists('_trial_temp'):
+    os.mkdir('_trial_temp')
+# prefs['home'] = '_trial_temp'
 ORB = UberORB()
 # if trouble with ORB, use:
 # ORB = UberORB(debug=True)
 ORB.initCache(home='_trial_temp')
 
-pgr = Pger(home='_trial_temp')
 xmlsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
 
 oids = ['banzai@banzai.earth',

Index: PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py:1.16 PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py:1.17
--- PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py:1.16	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_addRecords.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_addRecords.py,v 1.16 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_chronosynclastic_addRecords.py,v 1.17 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Test for inserting a row using pangalactic.repo.pgerdb module
@@ -15,7 +15,7 @@
 from pangalactic.repo.chronosynclastic import Infundibulum
 from pangalactic.test.utils4test import initTestObject, genRunId
 
-inf = Infundibulum(home='_trial_temp')
+inf = Infundibulum()
 
 tmpid = genRunId()
 

Index: PanGalactic/pangalactic/test/test_pger_addVersions.py
diff -u PanGalactic/pangalactic/test/test_pger_addVersions.py:1.16 PanGalactic/pangalactic/test/test_pger_addVersions.py:1.17
--- PanGalactic/pangalactic/test/test_pger_addVersions.py:1.16	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_pger_addVersions.py	Mon Feb 12 19:02:47 2007
@@ -1,12 +1,12 @@
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/test/test_pger_addVersions.py,v $
 
 """
-Functional test for pangalactic.repo.Pger.addVersions()
+Functional test for PGER.addVersions()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.test.utils4test import genLinkedTestObjects
 
 #  Need to add something like this database command at the end of success to
@@ -16,8 +16,6 @@
 #  select _oid, _base_id, _id, _name, _iteration, _version, _is_head from _part
 #  where _name = 'Flux Capacitor';
 
-PGER = Pger(home='_trial_temp')
-
 test_objects = genLinkedTestObjects('TPaV', PGER.db.registry, addable=True,
                                     versionable=True)
 extracts = [o.extract() for o in test_objects]

Index: PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py:1.8 PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py:1.9
--- PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py:1.8	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_getRefdRowKeys.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_getRefdRowKeys.py,v 1.8 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_getRefdRowKeys.py,v 1.9 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -33,7 +33,7 @@
     print error
     reactor.stop()
 
-inf = I(home='_trial_temp')
+inf = I()
 
 out = inf._selectByObjectSchema(schema_name, 0, ('id_ns', 'like', 'test'))
 

Index: PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py:1.11 PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py:1.12
--- PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py:1.11	Tue Jan  9 11:39:40 2007
+++ PanGalactic/pangalactic/test/test_chronosynclastic_updateObjects.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_updateObjects.py,v 1.11 2007/01/09 16:39:40 waterbug Exp $
+# $Id: test_chronosynclastic_updateObjects.py,v 1.12 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Test for inserting a row using pangalactic.repo.pgerdb module
@@ -13,7 +13,7 @@
 from pangalactic.repo.chronosynclastic import Infundibulum
 from pangalactic.test.utils4test       import genRunId
 
-inf = Infundibulum(home='_trial_temp')
+inf = Infundibulum()
 
 tmpid = genRunId()
 

Index: PanGalactic/pangalactic/test/test_pger_searchWithSpec.py
diff -u PanGalactic/pangalactic/test/test_pger_searchWithSpec.py:1.4 PanGalactic/pangalactic/test/test_pger_searchWithSpec.py:1.5
--- PanGalactic/pangalactic/test/test_pger_searchWithSpec.py:1.4	Wed Oct 25 17:09:52 2006
+++ PanGalactic/pangalactic/test/test_pger_searchWithSpec.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_searchWithSpec.py,v 1.4 2006/10/25 21:09:52 waterbug Exp $
+# $Id: test_pger_searchWithSpec.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getResultSets()
-  - outputs results of callback(s)
+Functional test for PGER.search(..., spec=(...))
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(resultsets):
     pprint(resultsets)
@@ -23,17 +19,15 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-out = pgr.search('test', 'Model', refs=0, subtypes=0,
-                 args=[('name', 'like', 'twang')],
-                 spec=('id', 'name')
-                 )
-
-# out = pgr.search('test', 'PmofNamespace', refs=0, subtypes=0,
-#                  args=[('_schema_name', '=', 'PmofNamespace')],
-#                  spec=('oid', 'id')
-#                  )
+out = PGER.search('test', 'Model', refs=0, subtypes=0,
+                  args=[('name', 'like', 'twang')],
+                  spec=('id', 'name')
+                  )
+
+# out = PGER.search('test', 'PmofNamespace', refs=0, subtypes=0,
+#                   args=[('_schema_name', '=', 'PmofNamespace')],
+#                   spec=('oid', 'id')
+#                   )
 
 out.addCallbacks(success, failure)
 

Index: PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py:1.19 PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py:1.20
--- PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py:1.19	Sat Dec  2 15:45:10 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_transactionalInsert.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_transactionalInsert.py,v 1.19 2006/12/02 20:45:10 waterbug Exp $
+# $Id: test_chronosynclastic_transactionalInsert.py,v 1.20 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Test for inserting rows using transactionalInsert()
@@ -16,7 +16,7 @@
 from pangalactic.test.utils4test import genLinkedTestObjects
 from pangalactic.utils import sql
 
-infum = I(home='_trial_temp')
+infum = I()
 
 objs = genLinkedTestObjects('TCTI', registry=infum.registry, addable=True,
                             versionable=False)

Index: PanGalactic/pangalactic/repo/pgerxmlrpc.py
diff -u PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.43 PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.44
--- PanGalactic/pangalactic/repo/pgerxmlrpc.py:1.43	Fri Feb  9 17:33:07 2007
+++ PanGalactic/pangalactic/repo/pgerxmlrpc.py	Mon Feb 12 19:02:46 2007
@@ -1,15 +1,15 @@
 """
 PGER XML-RPC Interfaces module
-@version: $Revision: 1.43 $
+@version: $Revision: 1.44 $
 """
 
-__version__ = "$Revision: 1.43 $"[11:-2]
-# $Id: pgerxmlrpc.py,v 1.43 2007/02/09 22:33:07 waterbug Exp $
+__version__ = "$Revision: 1.44 $"[11:-2]
+# $Id: pgerxmlrpc.py,v 1.44 2007/02/13 00:02:46 waterbug Exp $
 
 from twisted.python        import log
 from twisted.web.xmlrpc    import XMLRPC
 from twisted.web           import resource
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 
 class PgerXmlrpcService(XMLRPC):
@@ -24,7 +24,6 @@
     def __init__(self, userid=None):
         XMLRPC.__init__(self)
         self.userid = userid
-        self.engine = Pger()
 
     def _getFunction(self, functionPath):
         """
@@ -84,9 +83,7 @@
             changed
         @type  userid:  C{str}
         """
-        return self.engine.changePassword(self.userid,
-                                          userid,
-                                          password)
+        return PGER.changePassword(self.userid, userid, password)
 
     def xmlrpc_getObjects(self, schema_name, refs, subtypes, criteria):
         """
@@ -123,11 +120,11 @@
                 kw = dict(criteria)
             else:
                 kw = criteria
-            res = self.engine.getObjects(requestor=self.userid,
-                                         schema_name=schema_name,
-                                         refs=refs,
-                                         subtypes=subtypes,
-                                         **kw)
+            res = PGER.getObjects(requestor=self.userid,
+                                  schema_name=schema_name,
+                                  refs=refs,
+                                  subtypes=subtypes,
+                                  **kw)
             return res
         else:
             return """I'm sorry, Dave, I'm afraid I can't do that."""
@@ -142,8 +139,7 @@
         @return:  a C{list} of extracts of the objects that were found
         """
         if oids:
-            res = self.engine.getObjectsByOids(requestor=self.userid,
-                                               oids=oids)
+            res = PGER.getObjectsByOids(requestor=self.userid, oids=oids)
             return res
         else:
             return []
@@ -192,8 +188,8 @@
         """
         if not spec:
             spec = None
-        result = self.engine.search(self.userid, schema_name, refs, subtypes,
-                                    args=params, spec=spec)
+        result = PGER.search(self.userid, schema_name, refs, subtypes,
+                             args=params, spec=spec)
         return result
 
     def xmlrpc_getCount(self, schema_name, refs, subtypes, params):
@@ -232,8 +228,8 @@
 
         @return:  C{int} indicating the number of objects that match.
         """
-        return self.engine.getCount(self.userid, schema_name, refs, subtypes,
-                                    args=params)
+        return PGER.getCount(self.userid, schema_name, refs, subtypes,
+                             args=params)
 
     def xmlrpc_updateObjects(self, extracts):
         """
@@ -245,7 +241,7 @@
             any relevant updates (e.g., timedate stamps)
         """
         if extracts:
-            return self.engine.updateObjects(self.userid, extracts)
+            return PGER.updateObjects(self.userid, extracts)
         else:
             return """I'm sorry, Dave, I'm afraid you didn't give me any objects."""
 
@@ -259,7 +255,7 @@
             any relevant updates (e.g., timedate stamps)
         """
         if extracts:
-            return self.engine.addObjects(self.userid, extracts)
+            return PGER.addObjects(self.userid, extracts)
         else:
             return """I'm sorry, Dave, I'm afraid you didn't give me any objects."""
 
@@ -274,7 +270,7 @@
             any relevant updates (e.g., timedate stamps)
         """
         if extracts:
-            return self.engine.addVersions(self.userid, extracts)
+            return PGER.addVersions(self.userid, extracts)
         else:
             return """I'm sorry, Dave, I'm afraid you didn't give me any objects."""
 
@@ -296,8 +292,7 @@
         """
         if extracts and blobs:
             try:
-                res = self.engine.addExtracts(self.userid,
-                                              extracts)
+                res = PGER.addExtracts(self.userid, extracts)
             except:
                 text = """I'm sorry, Dave, there was a problem"""
                 text += """with your objects."""
@@ -305,7 +300,7 @@
             # TODO:  if the extracts have been added successfully, write the
             # blobs to files ...
         elif extracts:
-            return self.engine.addExtracts(self.userid, extracts)
+            return PGER.addExtracts(self.userid, extracts)
         else:
             return """I'm sorry, Dave, I'm afraid I can't do that."""
 
@@ -313,11 +308,11 @@
         """
         Get all names currently registered for the specified namespace.
         """
-        return self.engine.getNames(self.userid, ns)
+        return PGER.getNames(self.userid, ns)
 
     def xmlrpc_getBaseIds(self, ns):
         """
         Get all base_ids currently registered for the specified namespace.
         """
-        return self.engine.getBaseIds(self.userid, ns)
+        return PGER.getBaseIds(self.userid, ns)
 

Index: PanGalactic/pangalactic/test/test_pger_getBaseIds.py
diff -u PanGalactic/pangalactic/test/test_pger_getBaseIds.py:1.3 PanGalactic/pangalactic/test/test_pger_getBaseIds.py:1.4
--- PanGalactic/pangalactic/test/test_pger_getBaseIds.py:1.3	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_pger_getBaseIds.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_getBaseIds.py,v 1.3 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_pger_getBaseIds.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getResultSets()
-  - outputs results of callback(s)
+Functional test for PGER.getBaseIds
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(resultsets):
     pprint(resultsets)
@@ -23,9 +19,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-out = pgr.getBaseIds('test', 'http://pangalactic.us/test/lib/')
+out = PGER.getBaseIds('test', 'http://pangalactic.us/test/lib/')
 
 out.addCallbacks(success, failure)
 

Index: PanGalactic/pangalactic/test/test_xmlrpc_getCount.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getCount.py:1.4 PanGalactic/pangalactic/test/test_xmlrpc_getCount.py:1.5
--- PanGalactic/pangalactic/test/test_xmlrpc_getCount.py:1.4	Mon Oct  2 05:47:04 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_getCount.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_getCount.py,v 1.4 2006/10/02 09:47:04 waterbug Exp $
+# $Id: test_xmlrpc_getCount.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.getCount()
@@ -6,7 +6,6 @@
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 schema_name = 'Identifiable'
@@ -21,9 +20,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(pgr)
-
+xmlsrv = PgerXmlrpcService()
 res = xmlsrv.xmlrpc_getCount(schema_name, 0, 1,
                              [('id_ns', '=', 'http://pangalactic.us/test/lib/')])
 res.addCallbacks(success, failure)

Index: PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.18 PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.19
--- PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py:1.18	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_getObjects.py	Mon Feb 12 19:02:47 2007
@@ -1,32 +1,21 @@
-# $Id: test_xmlrpc_getObjects.py,v 1.18 2007/02/09 22:33:08 waterbug Exp $
+# $Id: test_xmlrpc_getObjects.py,v 1.19 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_getObjects
-"getObjects" API call
-  - initializes PgerDb, Pger, and PgerXmlrpcService
-  - executes PgerXmlrpcService interface call(s):
-    - xmlrpc_getObjects()
-  - pretty prints result of callback
-  - prints result of reconstitute() on extracts
 """
+
 import os
 from pprint import pprint
 from twisted.internet import reactor
 from pangalactic.node.uberorb import UberORB
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 schema_name = 'PanGalacticObject'
-
-U = UberORB(debug=True)
-
-if not os.path.exists('_trial_temp'):
-    os.mkdir('_trial_temp')
-pgr = Pger(home='_trial_temp')
-
 xmlsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
-
-U.initCache()
+# need UberORB's cache because getObjects checks it
+U = UberORB(debug=True)
+if os.path.exists('_trial_temp'):
+    U.initCache(home='_trial_temp')
 
 parms = {'id_ns': 'http://pangalactic.us/test/lib/'}
 

Index: PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py:1.13 PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py:1.14
--- PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py:1.13	Thu Nov  2 14:58:12 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_record2RowKey.py	Mon Feb 12 19:02:47 2007
@@ -3,7 +3,7 @@
 from pangalactic.repo.chronosynclastic import Infundibulum as I
 from pangalactic.test.utils4test import popTestData
 
-infum = I(home='_trial_temp')
+infum = I()
 
 p = PgefObject(infum.registry.interfaces['Project'],
                id='THINGY',

Index: PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py:1.18 PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py:1.19
--- PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py:1.18	Tue Sep 26 00:40:57 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_extracts2Records.py	Mon Feb 12 19:02:47 2007
@@ -1,10 +1,10 @@
-# $Id: test_chronosynclastic_extracts2Records.py,v 1.18 2006/09/26 04:40:57 waterbug Exp $
+# $Id: test_chronosynclastic_extracts2Records.py,v 1.19 2007/02/13 00:02:47 waterbug Exp $
 
 from pangalactic.repo.chronosynclastic import Infundibulum as I
 from pangalactic.test.utils4test import genLinkedTestObjects
 from pprint import pprint
 
-infum = I(home='_trial_temp')
+infum = I()
 test_objects = genLinkedTestObjects(test_id='TCe2R', registry=infum.registry)
 extracts = [o.extract() for o in test_objects]
 

Index: PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py:1.3 PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py:1.4
--- PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py:1.3	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_searchWithCount.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_searchWithCount.py,v 1.3 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_searchWithCount.py,v 1.4 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -20,7 +20,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 res = fum.search(requestor='test',
                  schema_name='Identifiable',

Index: PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py:1.4 PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py:1.5
--- PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py:1.4	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_getObjectsE.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_getObjectsE.py,v 1.4 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_getObjectsE.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -20,7 +20,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 res = fum.getObjects(requestor='test',
                      schema_name='Representation',

Index: PanGalactic/pangalactic/repo/pger.py
diff -u PanGalactic/pangalactic/repo/pger.py:1.141 PanGalactic/pangalactic/repo/pger.py:1.142
--- PanGalactic/pangalactic/repo/pger.py:1.141	Fri Feb  9 17:33:07 2007
+++ PanGalactic/pangalactic/repo/pger.py	Mon Feb 12 19:02:46 2007
@@ -1,10 +1,10 @@
-# $Id: pger.py,v 1.141 2007/02/09 22:33:07 waterbug Exp $
+# $Id: pger.py,v 1.142 2007/02/13 00:02:46 waterbug Exp $
 """
 Pan Galactic Entropy Reverser module
 
-@version: $Revision: 1.141 $
+@version: $Revision: 1.142 $
 """
-__version__ = "$Revision: 1.141 $"[11:-2]
+__version__ = "$Revision: 1.142 $"[11:-2]
 
 import base64
 import sys
@@ -44,14 +44,18 @@
     # TODO:  role-based authorization checks for Pger operations
     # TODO:  if any operation fails, back out the transaction
 
-    def __init__(self, home=os.environ.get('VGER', '')):
+    def __init__(self):
         """
         Initializes the Pger C{MultiService} (a local singleton).
         """
         MultiService.__init__(self)
         self.setName('PGER')
-        self.vault = os.path.join(home, 'vault')
-        self.db = Infundibulum(home=home)
+        vgerpath = os.environ.get('VGER')
+        if vgerpath is None:
+            self.vault = 'vault'
+        else:
+            self.vault = os.path.join(vgerpath, 'vault')
+        self.db = Infundibulum()
         log.msg('PGER started.', system='PGER')
 
     def changePassword(self, requestor, userid, password):
@@ -780,3 +784,6 @@
         res.addCallback(lambda x: [r[0] for r in x])
         return res
 
+# Pger is a singleton, so import this instead of creating one
+PGER = Pger()
+

Index: PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.14 PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.15
--- PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py:1.14	Fri Feb  9 20:34:43 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_addObjects.py	Mon Feb 12 19:02:47 2007
@@ -1,20 +1,15 @@
-# $Id: test_xmlrpc_addObjects.py,v 1.14 2007/02/10 01:34:43 waterbug Exp $
+# $Id: test_xmlrpc_addObjects.py,v 1.15 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.xmlrpc_addObjects
-  - initializes Pger
-  - executes PgerXmlrpcService interface call:
-    - addObjects
-  - reports all added objects
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-PGER = Pger(home='_trial_temp')
 xmlrpcsrv = PgerXmlrpcService(userid='Fester.Bestertester@earth.milkyway.univ')
 test_objects = genLinkedTestObjects('TXaO', PGER.db.registry, addable=True)
 extracts = [o.extract() for o in test_objects]

Index: PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py
diff -u PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py:1.5 PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py:1.6
--- PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py:1.5	Sat Sep 23 17:19:03 2006
+++ PanGalactic/pangalactic/test/test_chronosynclastic_searchWithSpec.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_chronosynclastic_searchWithSpec.py,v 1.5 2006/09/23 21:19:03 waterbug Exp $
+# $Id: test_chronosynclastic_searchWithSpec.py,v 1.6 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for pangalactic.repo.chronosynclastic module
@@ -22,7 +22,7 @@
     print error
     reactor.stop()
 
-fum = Fum(home='_trial_temp')
+fum = Fum()
 
 res = fum.search(requestor='test',
                  schema_name='Identifiable',

Index: PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py
diff -u PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py:1.4 PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py:1.5
--- PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py:1.4	Wed Sep 27 16:08:11 2006
+++ PanGalactic/pangalactic/test/test_pger_getObjectsByOids.py	Mon Feb 12 19:02:47 2007
@@ -1,16 +1,12 @@
-# $Id: test_pger_getObjectsByOids.py,v 1.4 2006/09/27 20:08:11 waterbug Exp $
+# $Id: test_pger_getObjectsByOids.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.pger module
-  - initializes Pger
-  - executes Pger interface call(s):
-    - getObjectsByOids()
-  - outputs results of callback(s)
+Functional test for PGER.getObjects(..., oids=...)
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 
 def success(objectlist):
     pprint(objectlist)
@@ -22,34 +18,32 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-
-res = pgr.getObjectsByOids(requestor='test',
-                           oids=['zaphod@hog.univ',
-                                 'banzai@banzai.earth',
-                                 'bigboote@yoyodyne.planet10',
-                                 'smallberries@yoyodyne.planet10',
-                                 'lizardo@yoyodyne.planet10',
-                                 'H2G2',
-                                 'OTHER',
-                                 'OTHEROTHER',
-                                 'TEST.DOC-01.1',
-                                 'TEST.DOC-01.2',
-                                 'TEST.BTA-20.1',
-                                 'TEST.HM.200.1',
-                                 'TEST.FX-CAP.1',
-                                 'TEST.HOG.1',
-                                 'TEST.BTA-20.1-CAD.1',
-                                 'TEST.HM.200.1-CAD.1',
-                                 'TEST.FX-CAP.1-CAD.1',
-                                 'TEST.HOG.1-CAD.1',
-                                 'TEST.Representation.1',
-                                 'TEST.Representation.2',
-                                 'TEST.FileLink.1',
-                                 'TEST.FileLink.2',
-                                 'TEST.FileLink.3',
-                                 'TEST.FileLink.4'
-                                 ])
+res = PGER.getObjectsByOids(requestor='test',
+                            oids=['zaphod@hog.univ',
+                                  'banzai@banzai.earth',
+                                  'bigboote@yoyodyne.planet10',
+                                  'smallberries@yoyodyne.planet10',
+                                  'lizardo@yoyodyne.planet10',
+                                  'H2G2',
+                                  'OTHER',
+                                  'OTHEROTHER',
+                                  'TEST.DOC-01.1',
+                                  'TEST.DOC-01.2',
+                                  'TEST.BTA-20.1',
+                                  'TEST.HM.200.1',
+                                  'TEST.FX-CAP.1',
+                                  'TEST.HOG.1',
+                                  'TEST.BTA-20.1-CAD.1',
+                                  'TEST.HM.200.1-CAD.1',
+                                  'TEST.FX-CAP.1-CAD.1',
+                                  'TEST.HOG.1-CAD.1',
+                                  'TEST.Representation.1',
+                                  'TEST.Representation.2',
+                                  'TEST.FileLink.1',
+                                  'TEST.FileLink.2',
+                                  'TEST.FileLink.3',
+                                  'TEST.FileLink.4'
+                                  ])
 res.addCallbacks(success, failure)
 
 reactor.run() # start the main loop

Index: PanGalactic/pangalactic/repo/pgerwebupload.py
diff -u PanGalactic/pangalactic/repo/pgerwebupload.py:1.10 PanGalactic/pangalactic/repo/pgerwebupload.py:1.11
--- PanGalactic/pangalactic/repo/pgerwebupload.py:1.10	Fri Feb  9 17:33:07 2007
+++ PanGalactic/pangalactic/repo/pgerwebupload.py	Mon Feb 12 19:02:46 2007
@@ -1,17 +1,17 @@
-# $Id: pgerwebupload.py,v 1.10 2007/02/09 22:33:07 waterbug Exp $
+# $Id: pgerwebupload.py,v 1.11 2007/02/13 00:02:46 waterbug Exp $
 
 """
 A simple browser-based file upload service
 
-@version: $Revision: 1.10 $
+@version: $Revision: 1.11 $
 """
-__version__ = "$Revision: 1.10 $"[11:-2]
+__version__ = "$Revision: 1.11 $"[11:-2]
 
 from pprint         import pprint
 from twisted.python import log
 from twisted.web    import server
 
-from pangalactic.repo.pger       import Pger
+from pangalactic.repo.pger       import PGER
 from pangalactic.repo.pgerupload import PgerFileUploadService
 
 
@@ -31,7 +31,6 @@
         @param userid:  userid of the requestor
         """
         FileUploadService.__init__(self, userid)
-        self.engine = Pger()
         self.userid = userid
 
     def getChild(self, name, request):
@@ -49,7 +48,7 @@
         if args.has_key('file'):
             rheaders = request.getAllHeaders()
             content = args['file'][0]
-            self.engine.addFile(self.userid, rheaders, content
+            PGER.addFile(self.userid, rheaders, content
                 ).addErrback(self._ebRender
                 ).addCallback(self._cbRender, request)
         else:

Index: PanGalactic/pangalactic/test/test_pger_addObjectsO.py
diff -u PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.15 PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.16
--- PanGalactic/pangalactic/test/test_pger_addObjectsO.py:1.15	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_pger_addObjectsO.py	Mon Feb 12 19:02:47 2007
@@ -1,21 +1,14 @@
-# $Id: test_pger_addObjectsO.py,v 1.15 2007/02/09 22:33:08 waterbug Exp $
+# $Id: test_pger_addObjectsO.py,v 1.16 2007/02/13 00:02:47 waterbug Exp $
 
 """
-Functional test for pangalactic.repo.Pger.addObjects()
-  - initializes Pger
-  - executes Pger interface call:
-    - addObjects()
-  - returns a datetime stamp (the record_create_datetime and
-    record_mod_datetime for all committed objects)
+Functional test for PGER.addObjects()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-PGER = Pger(home='_trial_temp')
-
 # create test objects
 test_objects = genLinkedTestObjects('TPaOO', addable=True, versionable=False,
                                     registry=PGER.db.registry)

Index: PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.2 PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.3
--- PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py:1.2	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/test/test_xmlrpc_updateObjects.py	Mon Feb 12 19:02:47 2007
@@ -2,18 +2,14 @@
 
 """
 Functional test for pangalactic.repo.Pger.addOrUpdateObjects()
-  - initializes Pger
-  - executes Pger interface call:
-        addOrUpdateObjects()
 """
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 from pangalactic.test.utils4test import genLinkedTestObjects
 
-PGER = Pger(home='_trial_temp')
 xmlrpcsrv = PgerXmlrpcService(PGER, userid='Fester.Bestertester@earth.milkyway.univ')
 r = PGER.db.registry
 

Index: PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py
diff -u PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py:1.4 PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py:1.5
--- PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py:1.4	Sat Sep 23 17:19:04 2006
+++ PanGalactic/pangalactic/test/test_xmlrpc_searchWithSpec.py	Mon Feb 12 19:02:47 2007
@@ -1,4 +1,4 @@
-# $Id: test_xmlrpc_searchWithSpec.py,v 1.4 2006/09/23 21:19:04 waterbug Exp $
+# $Id: test_xmlrpc_searchWithSpec.py,v 1.5 2007/02/13 00:02:47 waterbug Exp $
 
 """
 Functional test for PgerXmlrpcService.search()
@@ -6,7 +6,6 @@
 
 from pprint import pprint
 from twisted.internet import reactor
-from pangalactic.repo.pger import Pger
 from pangalactic.repo.pgerxmlrpc import PgerXmlrpcService
 
 schema_name = 'Part'
@@ -22,8 +21,7 @@
     print error
     reactor.stop()
 
-pgr = Pger(home='_trial_temp')
-xmlsrv = PgerXmlrpcService(pgr)
+xmlsrv = PgerXmlrpcService()
 
 res = xmlsrv.xmlrpc_search(schema_name, 0, 0,
                            [('owner', 'like', 'bigboote')],

Index: PanGalactic/pangalactic/vger/vgerd.py
diff -u PanGalactic/pangalactic/vger/vgerd.py:1.8 PanGalactic/pangalactic/vger/vgerd.py:1.9
--- PanGalactic/pangalactic/vger/vgerd.py:1.8	Fri Feb  9 17:33:08 2007
+++ PanGalactic/pangalactic/vger/vgerd.py	Mon Feb 12 19:02:48 2007
@@ -3,10 +3,10 @@
 Galactic Services.  The first service is the repository service, PGER (the
 Pan Galactic Entropy Reverser).
 
-@version: $Revision: 1.8 $
+@version: $Revision: 1.9 $
 """
 
-__version__ = "$Revision: 1.8 $"[11:-2]
+__version__ = "$Revision: 1.9 $"[11:-2]
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/vger/vgerd.py,v $
 
 import os
@@ -26,7 +26,7 @@
 # from nevow.appserver import NevowSite
 
 # PanGalactic
-from pangalactic.repo.pger import Pger
+from pangalactic.repo.pger import PGER
 from pangalactic.repo import pgercred2
 
 # Uncomment this when there *is* a soap service ... 
@@ -51,15 +51,14 @@
 
 application = Application('VGER')
 # TODO:  make this more elegantly configured
-pgerhub = Pger(home=home)
-pgerhub.setServiceParent(application)
-pgerchkr = pgercred2.UserDbCredChecker(userdb=pgerhub.db)
+PGER.setServiceParent(application)
+pgerchkr = pgercred2.UserDbCredChecker(userdb=PGER.db)
 
 ###  PGER Perspective Broker Interface  ###
 # PgerPB is temporarily disabled (until we look at what needs
 # to be changed to make it work with the new PB architecture)
     # bkr = pb.PBServerFactory(PGER)
-    # pgerhub.addService(bkr)
+    # PGER.addService(bkr)
     # application.listenTCP(pbport, bkr)
 
 ###  HTTP Multiplexer resource  ###
@@ -85,7 +84,7 @@
 
 ###  PGER SOAP interface  ###
 # TODO:  not implemented yet (just copied from XML-RPC ;)
-# mux.putChild('SOAP', PgerSoapService(pgerhub))
+# mux.putChild('SOAP', PgerSoapService(PGER))
 
 ###  PGER HTTP file-upload interface  ###
 # non-browser upload interface (for direct http uploads)
@@ -135,5 +134,5 @@
     xmlrpc_service = SSLServer(xmlrpc_port, xmlrpc_site, ctx)
 else:
     xmlrpc_service = TCPServer(xmlrpc_port, xmlrpc_site)
-xmlrpc_service.setServiceParent(pgerhub)
+xmlrpc_service.setServiceParent(PGER)
 

From waterbug at step.nasa.gov  Tue Feb 13 04:08:36 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Tue Feb 13 04:08:39 2007
Subject: [pangalactic-commits] Begin to make orb usable in VGER.
Message-ID: <200702130908.l1D98aGv032705@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/node/uberorb.py 1.125 1.126
PanGalactic/pangalactic/vger/vgerd.py 1.9 1.10

Log message:
Begin to make orb usable in VGER.

Index: PanGalactic/pangalactic/node/uberorb.py
diff -u PanGalactic/pangalactic/node/uberorb.py:1.125 PanGalactic/pangalactic/node/uberorb.py:1.126
--- PanGalactic/pangalactic/node/uberorb.py:1.125	Mon Jan  8 01:46:50 2007
+++ PanGalactic/pangalactic/node/uberorb.py	Tue Feb 13 04:08:34 2007
@@ -1,11 +1,11 @@
-# $Id: uberorb.py,v 1.125 2007/01/08 06:46:50 waterbug Exp $
+# $Id: uberorb.py,v 1.126 2007/02/13 09:08:34 waterbug Exp $
 # -*- test-case-name:  pangalactic.test.test_uberorb -*-
 """
 A PanGalaxian node's UberORB
 
-@version: $Revision: 1.125 $
+@version: $Revision: 1.126 $
 """
-__version__ = "$Revision: 1.125 $"[11:-2]
+__version__ = "$Revision: 1.126 $"[11:-2]
 
 import logging
 import mimetypes
@@ -75,13 +75,17 @@
         dispatcher.connect(receiver, signal, **kw)
 
 
-    def startLogging(self, console=False):
+    def startLogging(self, console=False, server=False):
         """
         Create a logger and begin writing to the log.  This function assumes
         that PanGalaxian has called logging.basicConfig.
 
         @param console:  flag to indicate logging should go to stdout
         @type  console:  C{bool}
+
+        @param server:  flag to indicate that this orb's node is running VGER
+            and will write its log messages to VGER's log (twisted.python.log)
+        @type  server:  C{bool}
         """
         self.templog = None
         if hasattr(self, 'log') and hasattr(self.log, 'temp'):

Index: PanGalactic/pangalactic/vger/vgerd.py
diff -u PanGalactic/pangalactic/vger/vgerd.py:1.9 PanGalactic/pangalactic/vger/vgerd.py:1.10
--- PanGalactic/pangalactic/vger/vgerd.py:1.9	Mon Feb 12 19:02:48 2007
+++ PanGalactic/pangalactic/vger/vgerd.py	Tue Feb 13 04:08:34 2007
@@ -3,10 +3,10 @@
 Galactic Services.  The first service is the repository service, PGER (the
 Pan Galactic Entropy Reverser).
 
-@version: $Revision: 1.9 $
+@version: $Revision: 1.10 $
 """
 
-__version__ = "$Revision: 1.9 $"[11:-2]
+__version__ = "$Revision: 1.10 $"[11:-2]
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/vger/vgerd.py,v $
 
 import os
@@ -84,7 +84,7 @@
 
 ###  PGER SOAP interface  ###
 # TODO:  not implemented yet (just copied from XML-RPC ;)
-# mux.putChild('SOAP', PgerSoapService(PGER))
+# mux.putChild('SOAP', PgerSoapService())
 
 ###  PGER HTTP file-upload interface  ###
 # non-browser upload interface (for direct http uploads)

From waterbug at step.nasa.gov  Tue Feb 13 04:16:08 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Tue Feb 13 04:16:09 2007
Subject: [pangalactic-commits] Registry is a singleton, too ('registry').
Message-ID: <200702130916.l1D9G8fS032767@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/meta/registry.py 1.167 1.168

Log message:
Registry is a singleton, too ('registry').

Index: PanGalactic/pangalactic/meta/registry.py
diff -u PanGalactic/pangalactic/meta/registry.py:1.167 PanGalactic/pangalactic/meta/registry.py:1.168
--- PanGalactic/pangalactic/meta/registry.py:1.167	Thu Jan 18 01:45:49 2007
+++ PanGalactic/pangalactic/meta/registry.py	Tue Feb 13 04:16:06 2007
@@ -1,9 +1,9 @@
-# $Id: registry.py,v 1.167 2007/01/18 06:45:49 waterbug Exp $
+# $Id: registry.py,v 1.168 2007/02/13 09:16:06 waterbug Exp $
 
 """
 Pan Galactic Meta Object Registry
 
-@version: $Revision: 1.167 $
+@version: $Revision: 1.168 $
 
 The C{PanGalacticRegistry} maintains an in-memory cache of the PanGalactic
 ('pgef') core ontology (the C{Interface} instances that are the C{_schema}s of
@@ -12,7 +12,7 @@
 objects and in marshalling/unmarshalling existing objects in a PanGalactic
 application.
 """
-__version__ = "$Revision: 1.167 $"[11:-2]
+__version__ = "$Revision: 1.168 $"[11:-2]
 
 # Python
 import glob
@@ -1254,4 +1254,4 @@
                                  complete=True)
         return d
 
-
+registry = PanGalacticRegistry()

From waterbug at step.nasa.gov  Tue Feb 13 04:19:00 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Tue Feb 13 04:19:02 2007
Subject: [pangalactic-commits] Better import orb if using it.
Message-ID: <200702130919.l1D9J02k000334@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/chronosynclastic.py 1.109 1.110

Log message:
Better import orb if using it.

Index: PanGalactic/pangalactic/repo/chronosynclastic.py
diff -u PanGalactic/pangalactic/repo/chronosynclastic.py:1.109 PanGalactic/pangalactic/repo/chronosynclastic.py:1.110
--- PanGalactic/pangalactic/repo/chronosynclastic.py:1.109	Sat Jan  6 23:39:15 2007
+++ PanGalactic/pangalactic/repo/chronosynclastic.py	Tue Feb 13 04:18:58 2007
@@ -1,12 +1,12 @@
-# $Id: chronosynclastic.py,v 1.109 2007/01/07 04:39:15 waterbug Exp $
+# $Id: chronosynclastic.py,v 1.110 2007/02/13 09:18:58 waterbug Exp $
 
 """
 The Chronosynclastic Infundibulum:  an asynchronous, ontology-driven
 object-relational mapping and database interface.
 
-@version: $Revision: 1.109 $
+@version: $Revision: 1.110 $
 """
-__version__ = "$Revision: 1.109 $"[11:-2]
+__version__ = "$Revision: 1.110 $"[11:-2]
 
 import os
 import re
@@ -23,6 +23,7 @@
 
 # PanGalactic imports
 from pangalactic.meta.registry import PanGalacticRegistry
+from pangalactic.node.uberorb import orb
 from pangalactic.utils import sql
 from pangalactic.utils.datetimes import dt2str, str2dt, dtstamp
 from pangalactic.utils.toolbox import unique
@@ -41,7 +42,6 @@
     # PanGalaticObject-rooted inheritance tree for pgerdb tables).
 
     def __init__(self,
-                 home=os.environ.get('VGER', ''),
                  dbapiname='psycopg2',
                  database='pgerdb',
                  initialize=True):
@@ -55,7 +55,8 @@
         # server=True tells the registry that it's attached to a VGER node,
         # rather than to a PanGalaxian node, which it needs to know for various
         # reasons.
-        self.registry = PanGalacticRegistry(server=True)
+        # self.registry = PanGalacticRegistry(server=True)
+        self.registry = orb
         # TODO:  check if db exists; if not, create one
         self.database = database
         adbapi.ConnectionPool.__init__(self,

From waterbug at step.nasa.gov  Sat Feb 17 16:11:48 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Sat Feb 17 16:11:50 2007
Subject: [pangalactic-commits] Correct refs to Louie; add pyparsing to deps.
Message-ID: <200702172111.l1HLBmQW001874@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/INSTALL 1.41 1.42
PanGalactic/pangalactic/node/pangalaxian.py 1.158 1.159
PanGalactic/pangalactic/node/uberorb.py 1.126 1.127
PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py 1.140 1.141
PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py 1.63 1.64
PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py 1.33 1.34

Log message:
Correct refs to Louie; add pyparsing to deps.

Index: PanGalactic/INSTALL
diff -u PanGalactic/INSTALL:1.41 PanGalactic/INSTALL:1.42
--- PanGalactic/INSTALL:1.41	Thu Jan  4 15:53:02 2007
+++ PanGalactic/INSTALL	Sat Feb 17 16:11:44 2007
@@ -76,6 +76,12 @@
 
           Configuration:  'python setup.py install'
 
+    - pyparsing
+      <http://pyparsing.wikispaces.com/> (version >= 1.4.3)
+
+          Configuration:  'python setup.py install' or
+                          'easy_install pyparsing'
+
 
 (2) Required for PanGalaxian (the PGEF Client):
 
@@ -277,4 +283,4 @@
         net).
 
 ---------------------------------------------------------------------------
-$Id: INSTALL,v 1.41 2007/01/04 20:53:02 waterbug Exp $
+$Id: INSTALL,v 1.42 2007/02/17 21:11:44 waterbug Exp $

Index: PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py
diff -u PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py:1.33 PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py:1.34
--- PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py:1.33	Sat Dec  2 15:45:09 2006
+++ PanGalactic/pangalactic/node/gui/widgets/pgxnstatusbar.py	Sat Feb 17 16:11:45 2007
@@ -1,11 +1,11 @@
-# $Id: pgxnstatusbar.py,v 1.33 2006/12/02 20:45:09 waterbug Exp $
+# $Id: pgxnstatusbar.py,v 1.34 2007/02/17 21:11:45 waterbug Exp $
 
 """
 Custom status bar for PanGalaxian (the PGEF desktop client).
 
-@version: $Revision: 1.33 $
+@version: $Revision: 1.34 $
 """
-__version__ = "$Revision: 1.33 $"[11:-2]
+__version__ = "$Revision: 1.34 $"[11:-2]
 
 # Python core modules
 import logging
@@ -13,7 +13,7 @@
 # wxPython
 import wx
 
-# PyDispatcher
+# Louie (formerly known as PyDispatcher)
 from louie import dispatcher
 
 # PanGalactic modules

Index: PanGalactic/pangalactic/node/uberorb.py
diff -u PanGalactic/pangalactic/node/uberorb.py:1.126 PanGalactic/pangalactic/node/uberorb.py:1.127
--- PanGalactic/pangalactic/node/uberorb.py:1.126	Tue Feb 13 04:08:34 2007
+++ PanGalactic/pangalactic/node/uberorb.py	Sat Feb 17 16:11:45 2007
@@ -1,11 +1,11 @@
-# $Id: uberorb.py,v 1.126 2007/02/13 09:08:34 waterbug Exp $
+# $Id: uberorb.py,v 1.127 2007/02/17 21:11:45 waterbug Exp $
 # -*- test-case-name:  pangalactic.test.test_uberorb -*-
 """
 A PanGalaxian node's UberORB
 
-@version: $Revision: 1.126 $
+@version: $Revision: 1.127 $
 """
-__version__ = "$Revision: 1.126 $"[11:-2]
+__version__ = "$Revision: 1.127 $"[11:-2]
 
 import logging
 import mimetypes
@@ -13,9 +13,8 @@
 import xmlrpclib
 from pprint import pprint
 
-# PyDispatch module
+# Louie (formerly known as PyDispatcher)
 from louie import dispatcher
-# from dispatch import dispatcher
 
 # Zope Interface
 from zope.interface import implements

Index: PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py
diff -u PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py:1.63 PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py:1.64
--- PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py:1.63	Mon Jan  8 01:46:51 2007
+++ PanGalactic/pangalactic/node/gui/widgets/pgxnproperty.py	Sat Feb 17 16:11:45 2007
@@ -1,16 +1,16 @@
-# $Id: pgxnproperty.py,v 1.63 2007/01/08 06:46:51 waterbug Exp $
+# $Id: pgxnproperty.py,v 1.64 2007/02/17 21:11:45 waterbug Exp $
 """
 PanGalaxianProperty (the Mother of all PanGalaxian Property widgets)
 
-@version: $Revision: 1.63 $
+@version: $Revision: 1.64 $
 """
-__version__ = "$Revision: 1.63 $"[11:-2]
+__version__ = "$Revision: 1.64 $"[11:-2]
 
 import logging
 from pprint import pprint
 import datetime
 
-# PyDispatch
+# Louie (formerly known as PyDispatcher)
 from louie import dispatcher
 
 # wxPython

Index: PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py
diff -u PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py:1.140 PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py:1.141
--- PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py:1.140	Thu Jan  4 15:53:05 2007
+++ PanGalactic/pangalactic/node/gui/widgets/pgxnobject.py	Sat Feb 17 16:11:45 2007
@@ -1,15 +1,15 @@
-# $Id: pgxnobject.py,v 1.140 2007/01/04 20:53:05 waterbug Exp $
+# $Id: pgxnobject.py,v 1.141 2007/02/17 21:11:45 waterbug Exp $
 """
 PanGalaxianObject (a C{PgefObject} viewer/editor)
 
-@version: $Revision: 1.140 $
+@version: $Revision: 1.141 $
 """
-__version__ = "$Revision: 1.140 $"[11:-2]
+__version__ = "$Revision: 1.141 $"[11:-2]
 
 import logging
 from copy import deepcopy
 
-# PyDispatch
+# Louie (formerly known as PyDispatcher)
 from louie import dispatcher
 
 # wxPython

Index: PanGalactic/pangalactic/node/pangalaxian.py
diff -u PanGalactic/pangalactic/node/pangalaxian.py:1.158 PanGalactic/pangalactic/node/pangalaxian.py:1.159
--- PanGalactic/pangalactic/node/pangalaxian.py:1.158	Mon Jan  8 01:46:50 2007
+++ PanGalactic/pangalactic/node/pangalaxian.py	Sat Feb 17 16:11:45 2007
@@ -2,16 +2,16 @@
 # -*- coding: ANSI_X3.4-1968 -*-
 # generated by wxGlade 0.3.5.1 on Tue Feb  1 00:19:02 2005
 
-# $Id: pangalaxian.py,v 1.158 2007/01/08 06:46:50 waterbug Exp $
+# $Id: pangalaxian.py,v 1.159 2007/02/17 21:11:45 waterbug Exp $
 
 """
 Main application module for PanGalaxian, the PGEF desktop client.
 
     WE ARE THE PANGALAXIANS!  :)
 
-@version: $Revision: 1.158 $
+@version: $Revision: 1.159 $
 """
-__version__ = "$Revision: 1.158 $"[11:-2]
+__version__ = "$Revision: 1.159 $"[11:-2]
 
 # Python
 import logging
@@ -24,7 +24,7 @@
 # wxPython
 import wx
 
-# PyDispatch
+# Louie (formerly known as PyDispatcher)
 from louie import dispatcher
 
 # PanGalactic

From waterbug at step.nasa.gov  Sat Feb 17 17:14:39 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Sat Feb 17 17:14:40 2007
Subject: [pangalactic-commits] logpath: logs -> log.
Message-ID: <200702172214.l1HMEdVQ002559@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/INSTALL 1.42 1.43
PanGalactic/pangalactic/node/pangalaxian.py 1.159 1.160
PanGalactic/pangalactic/vger/vgerd 1.2 1.3
PanGalactic/pangalactic/vger/vgerd.py 1.10 1.11

Log message:
logpath: logs -> log.

Index: PanGalactic/INSTALL
diff -u PanGalactic/INSTALL:1.42 PanGalactic/INSTALL:1.43
--- PanGalactic/INSTALL:1.42	Sat Feb 17 16:11:44 2007
+++ PanGalactic/INSTALL	Sat Feb 17 17:14:35 2007
@@ -82,6 +82,13 @@
           Configuration:  'python setup.py install' or
                           'easy_install pyparsing'
 
+    - simplegeneric
+      Simple generic functions (they adapt to their param types)
+      <http://cheeseshop.python.org/pypi/simplegeneric>
+
+          Configuration:  'python setup.py install' or
+                          'easy_install simplegeneric'
+
 
 (2) Required for PanGalaxian (the PGEF Client):
 
@@ -283,4 +290,4 @@
         net).
 
 ---------------------------------------------------------------------------
-$Id: INSTALL,v 1.42 2007/02/17 21:11:44 waterbug Exp $
+$Id: INSTALL,v 1.43 2007/02/17 22:14:35 waterbug Exp $

Index: PanGalactic/pangalactic/node/pangalaxian.py
diff -u PanGalactic/pangalactic/node/pangalaxian.py:1.159 PanGalactic/pangalactic/node/pangalaxian.py:1.160
--- PanGalactic/pangalactic/node/pangalaxian.py:1.159	Sat Feb 17 16:11:45 2007
+++ PanGalactic/pangalactic/node/pangalaxian.py	Sat Feb 17 17:14:36 2007
@@ -2,16 +2,16 @@
 # -*- coding: ANSI_X3.4-1968 -*-
 # generated by wxGlade 0.3.5.1 on Tue Feb  1 00:19:02 2005
 
-# $Id: pangalaxian.py,v 1.159 2007/02/17 21:11:45 waterbug Exp $
+# $Id: pangalaxian.py,v 1.160 2007/02/17 22:14:36 waterbug Exp $
 
 """
 Main application module for PanGalaxian, the PGEF desktop client.
 
     WE ARE THE PANGALAXIANS!  :)
 
-@version: $Revision: 1.159 $
+@version: $Revision: 1.160 $
 """
-__version__ = "$Revision: 1.159 $"[11:-2]
+__version__ = "$Revision: 1.160 $"[11:-2]
 
 # Python
 import logging
@@ -286,7 +286,7 @@
         if not os.path.exists(owl_plugins_path):
             os.makedirs(owl_plugins_path)
         # start logging
-        logpath = 'logs'
+        logpath = 'log'
         if not os.path.exists(logpath):
             os.mkdir(logpath)
         sys.stdout = open(os.path.join(logpath, 'console_log'), 'w')

Index: PanGalactic/pangalactic/vger/vgerd
diff -u PanGalactic/pangalactic/vger/vgerd:1.2 PanGalactic/pangalactic/vger/vgerd:1.3
--- PanGalactic/pangalactic/vger/vgerd:1.2	Tue Oct  3 15:36:56 2006
+++ PanGalactic/pangalactic/vger/vgerd	Sat Feb 17 17:14:37 2007
@@ -2,11 +2,11 @@
 
 usage='Usage:  vgerd [start|startsecure|restart|restartsecure|stop]'
 
-if [[ -z $1 ]]; then
+if [ -z $1 ]; then
     echo $usage
     exit 1
 fi
-if [[ -z $VGER ]]; then
+if [ -z $VGER ]; then
     echo 'env var VGER must be defined.'
     exit 1
 fi
@@ -19,26 +19,26 @@
         # (default port is 8080)
         twistd -y bin/vgerd.py \
                --pidfile=vgerd.pid \
-               --logfile=logs/vgerd.log \
+               --logfile=log/vgerd.log \
                --no_save
         ;;
     restart)
         # restart vgerd on https://[hostname]:[port]
         # (default port is 8080)
         kill `cat vgerd.pid`
-        mv logs/vgerd.log \
-           logs/archive/log.`date +%Y%m%d.%H.%M`
+        mv log/vgerd.log \
+           log/archive/log.`date +%Y%m%d.%H.%M`
         sleep 1
         twistd -y bin/vgerd.py \
                --pidfile=vgerd.pid \
-               --logfile=logs/vgerd.log \
+               --logfile=log/vgerd.log \
                --no_save
         ;;
     stop)
         # stop vgerd and archive its log
         kill `cat vgerd.pid`
-        mv logs/vgerd.log \
-           logs/archive/log.`date +%Y%m%d.%H.%M`
+        mv log/vgerd.log \
+           log/archive/log.`date +%Y%m%d.%H.%M`
         sleep 1
         ;;
     *)

Index: PanGalactic/pangalactic/vger/vgerd.py
diff -u PanGalactic/pangalactic/vger/vgerd.py:1.10 PanGalactic/pangalactic/vger/vgerd.py:1.11
--- PanGalactic/pangalactic/vger/vgerd.py:1.10	Tue Feb 13 04:08:34 2007
+++ PanGalactic/pangalactic/vger/vgerd.py	Sat Feb 17 17:14:37 2007
@@ -3,10 +3,10 @@
 Galactic Services.  The first service is the repository service, PGER (the
 Pan Galactic Entropy Reverser).
 
-@version: $Revision: 1.10 $
+@version: $Revision: 1.11 $
 """
 
-__version__ = "$Revision: 1.10 $"[11:-2]
+__version__ = "$Revision: 1.11 $"[11:-2]
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/vger/vgerd.py,v $
 
 import os
@@ -16,9 +16,7 @@
 from twisted.application.service  import Application
 from twisted.cred                 import portal
 from twisted.internet             import ssl
-from twisted.web2.auth            import basic, wrapper
 from twisted.web2.channel         import HTTPFactory
-from twisted.web2.iweb            import IResource
 from twisted.web2.resource        import Resource
 from twisted.web2.server          import Site
 
@@ -26,8 +24,8 @@
 # from nevow.appserver import NevowSite
 
 # PanGalactic
-from pangalactic.repo.pger import PGER
-from pangalactic.repo import pgercred2
+from pangalactic.repo.pger import Pger
+from pangalactic.repo import pgercred
 
 # Uncomment this when there *is* a soap service ... 
 # for now, we don't need any unnecessary dependencies!
@@ -42,7 +40,7 @@
     os.makedirs(pluginpath)
 if not os.path.exists(owlpath):
     os.makedirs(owlpath)
-logpath = os.path.join(home, 'logs')
+logpath = os.path.join(home, 'log')
 archpath = os.path.join(logpath, 'archive')
 if not os.path.exists(logpath):
     os.makedirs(logpath)
@@ -51,14 +49,15 @@
 
 application = Application('VGER')
 # TODO:  make this more elegantly configured
-PGER.setServiceParent(application)
-pgerchkr = pgercred2.UserDbCredChecker(userdb=PGER.db)
+pgerhub = Pger(home=home)
+pgerhub.setServiceParent(application)
+pgerchkr = pgerhub.credchkr
 
 ###  PGER Perspective Broker Interface  ###
 # PgerPB is temporarily disabled (until we look at what needs
 # to be changed to make it work with the new PB architecture)
     # bkr = pb.PBServerFactory(PGER)
-    # PGER.addService(bkr)
+    # pgerhub.addService(bkr)
     # application.listenTCP(pbport, bkr)
 
 ###  HTTP Multiplexer resource  ###
@@ -71,55 +70,41 @@
 mux = Resource()
 
 ###  PGER XML-RPC interface  ###
-# TODO:  make a general VGER xml-rpc service, of which the PGER xml-rpc
-# interface is an instance ...
-xr = pgercred2.XmlrpcRealm('PGER XML-RPC')
+xr = pgercred.XmlrpcRealm('PGER XML-RPC',
+                          engine=pgerhub)
 xp = portal.Portal(xr)
 xp.registerChecker(pgerchkr)
-mux.putChild('RPC2',
-             wrapper.HTTPAuthResource(
-                 pgercred2.XmlrpcAvatar,
-                 (basic.BasicCredentialFactory(xr),),
-                 xp, (IResource,)))
+mux.putChild('RPC2', pgercred.BasicAuthResource(xp))
 
 ###  PGER SOAP interface  ###
 # TODO:  not implemented yet (just copied from XML-RPC ;)
-# mux.putChild('SOAP', PgerSoapService())
+# mux.putChild('SOAP', PgerSoapService(pgerhub))
 
 ###  PGER HTTP file-upload interface  ###
 # non-browser upload interface (for direct http uploads)
-ur = pgercred2.PgerFileUploadRealm('PGER HTTP File Upload')
+ur = pgercred.FileUploadRealm('PGER HTTP File Upload',
+                              engine=pgerhub)
 up = portal.Portal(ur)
 up.registerChecker(pgerchkr)
-mux.putChild('upload',
-             wrapper.HTTPAuthResource(
-                 pgercred2.PgerFileUploadAvatar,
-                 (basic.BasicCredentialFactory(ur),),
-                 up, (IResource,)))
+mux.putChild('upload', pgercred.BasicAuthResource(up))
 
-###  VGER web browser file-upload interface  ###
+###  PGER HTTP file-upload interface  ###
 # web browser upload interface
-wur = pgercred2.WebUploadRealm('Web File Upload Service')
+wur = pgercred.WebUploadRealm('PGER HTTP File Upload',
+                              engine=pgerhub)
 wup = portal.Portal(wur)
 wup.registerChecker(pgerchkr)
-mux.putChild('webupload',
-             wrapper.HTTPAuthResource(
-                 pgercred2.WebUploadAvatar,
-                 (basic.BasicCredentialFactory(ur),),
-                 up, (IResource,)))
+mux.putChild('webupload', pgercred.BasicAuthResource(wup))
 
-###  VGER Static web server  ###
-sr = pgercred2.StaticHttpRealm('PGER Web', 'web')
+###  PGER Static web server  ###
+sr = pgercred.StaticHttpRealm('PGER Web', 'web')
 sp = portal.Portal(sr)
 sp.registerChecker(pgerchkr)
-res = wrapper.HTTPAuthResource(
-                 pgercred2.StaticResourceAvatar,
-                 (basic.BasicCredentialFactory(sr),),
-                 sp, (IResource,))
+res = pgercred.BasicAuthResource(sp)
 mux.putChild('', res)
 
 xmlrpc_port = 8888
-nevow_port = 8080
+# nevow_port = 8080
 
 # --encrypted=0 -> no SSL
 encrypted = 1
@@ -134,5 +119,5 @@
     xmlrpc_service = SSLServer(xmlrpc_port, xmlrpc_site, ctx)
 else:
     xmlrpc_service = TCPServer(xmlrpc_port, xmlrpc_site)
-xmlrpc_service.setServiceParent(PGER)
+xmlrpc_service.setServiceParent(pgerhub)
 

From waterbug at step.nasa.gov  Sun Feb 18 18:04:57 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Sun Feb 18 18:04:58 2007
Subject: [pangalactic-commits] Corrections to dependencies.
Message-ID: <200702182304.l1IN4vZJ021413@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/INSTALL 1.43 1.44

Log message:
Corrections to dependencies.

Index: PanGalactic/INSTALL
diff -u PanGalactic/INSTALL:1.43 PanGalactic/INSTALL:1.44
--- PanGalactic/INSTALL:1.43	Sat Feb 17 17:14:35 2007
+++ PanGalactic/INSTALL	Sun Feb 18 18:04:56 2007
@@ -55,12 +55,8 @@
           install') on Unices, and on MSwin platforms the Twisted installer
           works fine.
 
-    - OpenSSL (latest released version)
-      <http://www.openssl.org>
-
-          Configuration:  see the OpenSSL site for installation procedures.
-
     - pyOpenSSL (latest released version)
+      note -- requires OpenSSL
       linux:  <http://pyopenssl.sourceforge.net>
       mswin:  <http://webcleaner.sourceforge.net/pyOpenSSL-0.6.win32-py2.4.exe> 
 
@@ -290,4 +286,4 @@
         net).
 
 ---------------------------------------------------------------------------
-$Id: INSTALL,v 1.43 2007/02/17 22:14:35 waterbug Exp $
+$Id: INSTALL,v 1.44 2007/02/18 23:04:56 waterbug Exp $

From waterbug at step.nasa.gov  Tue Feb 20 11:37:39 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Tue Feb 20 11:37:42 2007
Subject: [pangalactic-commits] Use new IAuthenticatedRequest interface ...
Message-ID: <200702201637.l1KGbduC009912@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/pgerxmlrpc2.py None 1.1
PanGalactic/pangalactic/repo/pgercred2.py 1.1 1.2

Log message:
Use new IAuthenticatedRequest interface ...
also, add a new web2-based xmlrpc service.

Index: PanGalactic/pangalactic/repo/pgercred2.py
diff -u PanGalactic/pangalactic/repo/pgercred2.py:1.1 PanGalactic/pangalactic/repo/pgercred2.py:1.2
--- PanGalactic/pangalactic/repo/pgercred2.py:1.1	Fri Feb  9 17:35:26 2007
+++ PanGalactic/pangalactic/repo/pgercred2.py	Tue Feb 20 11:37:37 2007
@@ -1,9 +1,9 @@
-# $Id: pgercred2.py,v 1.1 2007/02/09 22:35:26 waterbug Exp $
+# $Id: pgercred2.py,v 1.2 2007/02/20 16:37:37 waterbug Exp $
 """
 Authentication and credential management for PGER, using Twisted's web2.
-@version: $Revision: 1.1 $
+@version: $Revision: 1.2 $
 """
-__version__ = "$Revision: 1.1 $"[11:-2]
+__version__ = "$Revision: 1.2 $"[11:-2]
 
 import sha
 
@@ -31,9 +31,9 @@
 
     implements(iweb.IResource)
 
-    def __init__(self, userid, realm=''):
-        PgerXmlrpcService.__init__(self, userid=userid)
-        self.userid = userid
+    def __init__(self, username, realm=''):
+        PgerXmlrpcService.__init__(self, username=username)
+        self.username = username
         self.realm = realm
 
     def logout(self):
@@ -47,7 +47,7 @@
         self.name = name
 
     def requestAvatar(self, avatarId, mind, *interfaces):
-        av = XmlrpcAvatar(userid=avatarId, realm=self.name)
+        av = XmlrpcAvatar(username=avatarId, realm=self.name)
         return iweb.IResource, av, av.logout
 
 
@@ -55,9 +55,9 @@
 
     implements(iweb.IResource)
 
-    def __init__(self, userid, realm='PGER File Upload'):
-        PgerFileUploadService.__init__(self, userid=userid)
-        self.userid = userid
+    def __init__(self, username, realm='PGER File Upload'):
+        PgerFileUploadService.__init__(self, username=username)
+        self.username = username
         self.realm = realm
 
     def logout(self):
@@ -72,7 +72,7 @@
         self.name = name
 
     def requestAvatar(self, avatarId, mind, *interfaces):
-        av = PgerFileUploadAvatar(userid=avatarId,
+        av = PgerFileUploadAvatar(username=avatarId,
                                   realm=self.name)
         return iweb.IResource, av, av.logout
 
@@ -81,9 +81,9 @@
 
     implements(iweb.IResource)
 
-    def __init__(self, userid, realm='Web File Upload'):
-        WebUploadService.__init__(self, userid=userid)
-        self.userid = userid
+    def __init__(self, username, realm='Web File Upload'):
+        WebUploadService.__init__(self, username=username)
+        self.username = username
         self.realm = realm
 
     def logout(self):
@@ -98,7 +98,7 @@
         self.name = name
 
     def requestAvatar(self, avatarId, mind, *interfaces):
-        av = WebUploadAvatar(userid=avatarId,
+        av = WebUploadAvatar(username=avatarId,
                              realm=self.name)
         return iweb.IResource, av, av.logout
 

From waterbug at step.nasa.gov  Tue Feb 20 17:40:56 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Tue Feb 20 17:40:58 2007
Subject: [pangalactic-commits] Begin pgerxmlrpc2.
Message-ID: <200702202240.l1KMeuTi018404@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/repo/pgerxmlrpc2.py 1.1 1.2

Log message:
Begin pgerxmlrpc2.

Index: PanGalactic/pangalactic/repo/pgerxmlrpc2.py
diff -u PanGalactic/pangalactic/repo/pgerxmlrpc2.py:1.1 PanGalactic/pangalactic/repo/pgerxmlrpc2.py:1.2
--- PanGalactic/pangalactic/repo/pgerxmlrpc2.py:1.1	Tue Feb 20 11:37:37 2007
+++ PanGalactic/pangalactic/repo/pgerxmlrpc2.py	Tue Feb 20 17:40:55 2007
@@ -1,14 +1,14 @@
 """
 PGER XML-RPC Interfaces module
-@version: $Revision: 1.1 $
+@version: $Revision: 1.2 $
 """
 
-__version__ = "$Revision: 1.1 $"[11:-2]
-# $Id: pgerxmlrpc2.py,v 1.1 2007/02/20 16:37:37 waterbug Exp $
+__version__ = "$Revision: 1.2 $"[11:-2]
+# $Id: pgerxmlrpc2.py,v 1.2 2007/02/20 22:40:55 waterbug Exp $
 
 from twisted.python        import log
-from twisted.web.xmlrpc    import XMLRPC
-from twisted.web           import resource
+from twisted.web2.xmlrpc   import XMLRPC
+from twisted.web2.iweb     import IResource
 from pangalactic.repo.pger import PGER
 
 
@@ -19,7 +19,7 @@
     interface to a Node configured with a PGER Service.
     """
 
-    __implements__ = resource.IResource
+    __implements__ = IResource
 
     def __init__(self, userid=None):
         XMLRPC.__init__(self)

From waterbug at step.nasa.gov  Thu Feb 22 18:53:36 2007
From: waterbug at step.nasa.gov (waterbug CVS)
Date: Thu Feb 22 18:53:38 2007
Subject: [pangalactic-commits] Use PANGALAXIAN env for VGER, too ...
Message-ID: <200702222353.l1MNraJO021721@ned.gsfc.nasa.gov>

Modified files:
PanGalactic/pangalactic/meta/registry.py 1.168 1.169
PanGalactic/pangalactic/repo/chronosynclastic.py 1.110 1.111
PanGalactic/pangalactic/repo/pger.py 1.142 1.143
PanGalactic/pangalactic/vger/vgerd 1.3 1.4
PanGalactic/pangalactic/vger/vgerd.py 1.11 1.12

Log message:
Use PANGALAXIAN env for VGER, too ...
including VGER's log, etc.  VGER now uses the orb
and the PANGALAXIAN env var as its "home" dir
(no VGER env var any more).

Index: PanGalactic/pangalactic/vger/vgerd.py
diff -u PanGalactic/pangalactic/vger/vgerd.py:1.11 PanGalactic/pangalactic/vger/vgerd.py:1.12
--- PanGalactic/pangalactic/vger/vgerd.py:1.11	Sat Feb 17 17:14:37 2007
+++ PanGalactic/pangalactic/vger/vgerd.py	Thu Feb 22 18:53:34 2007
@@ -3,10 +3,10 @@
 Galactic Services.  The first service is the repository service, PGER (the
 Pan Galactic Entropy Reverser).
 
-@version: $Revision: 1.11 $
+@version: $Revision: 1.12 $
 """
 
-__version__ = "$Revision: 1.11 $"[11:-2]
+__version__ = "$Revision: 1.12 $"[11:-2]
 # $Source: /repo/step_testbed/PanGalactic/pangalactic/vger/vgerd.py,v $
 
 import os
@@ -33,7 +33,7 @@
 
 
 # set up home directory
-home = os.environ['VGER']
+home = os.environ['PANGALAXIAN']
 pluginpath = os.path.join(home, 'plugins')
 owlpath = os.path.join(pluginpath, 'owl')
 if not os.path.exists(pluginpath):
@@ -49,7 +49,7 @@
 
 application = Application('VGER')
 # TODO:  make this more elegantly configured
-pgerhub = Pger(home=home)
+pgerhub = Pger()
 pgerhub.setServiceParent(application)
 pgerchkr = pgerhub.credchkr
 

Index: PanGalactic/pangalactic/vger/vgerd
diff -u PanGalactic/pangalactic/vger/vgerd:1.3 PanGalactic/pangalactic/vger/vgerd:1.4
--- PanGalactic/pangalactic/vger/vgerd:1.3	Sat Feb 17 17:14:37 2007
+++ PanGalactic/pangalactic/vger/vgerd	Thu Feb 22 18:53:34 2007
@@ -6,12 +6,12 @@
     echo $usage
     exit 1
 fi
-if [ -z $VGER ]; then
-    echo 'env var VGER must be defined.'
+if [ -z $PANGALAXIAN ]; then
+    echo 'env var PANGALAXIAN must be defined.'
     exit 1
 fi
 
-cd $VGER
+cd $PANGALAXIAN
 
 case $1 in
     start)

Index: PanGalactic/pangalactic/meta/registry.py
diff -u PanGalactic/pangalactic/meta/registry.py:1.168 PanGalactic/pangalactic/meta/registry.py:1.169
--- PanGalactic/pangalactic/meta/registry.py:1.168	Tue Feb 13 04:16:06 2007
+++ PanGalactic/pangalactic/meta/registry.py	Thu Feb 22 18:53:32 2007
@@ -1,9 +1,9 @@
-# $Id: registry.py,v 1.168 2007/02/13 09:16:06 waterbug Exp $
+# $Id: registry.py,v 1.169 2007/02/22 23:53:32 waterbug Exp $
 
 """
 Pan Galactic Meta Object Registry
 
-@version: $Revision: 1.168 $
+@version: $Revision: 1.169 $
 
 The C{PanGalacticRegistry} maintains an in-memory cache of the PanGalactic
 ('pgef') core ontology (the C{Interface} instances that are the C{_schema}s of
@@ -12,7 +12,7 @@
 objects and in marshalling/unmarshalling existing objects in a PanGalactic
 application.
 """
-__version__ = "$Revision: 1.168 $"[11:-2]
+__version__ = "$Revision: 1.169 $"[11:-2]
 
 # Python
 import glob
@@ -41,7 +41,7 @@
 from pangalactic.utils.safe           import safe_eval
 
 
-def clearRegistryCache(cachepath):
+def removeRegistryCache(cachepath):
     """
     Remove all cached files from a registry cache directory.  This may be useful
     in the process of initializing a new version of an application ontology.
@@ -92,14 +92,10 @@
     @type refs:  C{dict}
     """
 
-    def __init__(self, server=False, debug=False, test_home=None):
+    def __init__(self, debug=False, test_home=None):
         """
         Initialize the registry.
 
-        @param server:  a flag indicating whether this registry is attached to a
-            server (VGER) node or a client (PanGalaxian) node.
-        @type  server:  C{bool}
-
         @param debug:  a flag indicating whether the registry is being run in
             debug mode; if C{True}, logging goes to stdout.
         @type  debug:  C{bool}
@@ -109,24 +105,15 @@
         @type  test_home:  C{None} or C{str}
         """
         # Logging:
-        #   * server mode:  (server=True) uses VGER's log (twisted.python.log)
-        #   * client mode:  (server=False, debug=False) PanGalaxian starts
+        #   * normal mode:  (debug=False) PanGalaxian starts
         #                   registry logging with an explicit call to
         #                   'startLogging' (it has to determine its home
         #                   directory first);
         #   * debug mode:   (debug=True) logging goes to stdout.
-        self.server = server
         if debug:
             class logger: pass
             self.log = logger()
             self.log.info = self.log.debug = pprint
-        elif server:
-            from twisted.python import log
-            # make log.info calls (stdlib name) into calls to twisted's log.msg
-            log.info = log.msg
-            log.debug = lambda x: log.msg(x, debug=True)
-            self.log = log
-            self.log.info('initializing registry logging.')
         else:
             # start in-memory logging until we get a file to write to ...
             class logger: pass
@@ -134,22 +121,13 @@
             self.log.temp = []
             self.log.info = lambda x: self.log.temp.append(x)
             self.log.debug = lambda x: self.log.temp.append(x)
+        self.log.info('initializing registry logging.')
         self.sources = {}
         self.interfaces = {}
         self.properties = {}
         self.extracts = {}
         self.interface_base_order = []
         self.createCoreMetaObjects()
-        # [NOTE:  if server=False (e.g. on a client (PanGalaxian) node),
-        # importApplicationOntologies is called by the orb (getAppOntologies())
-        # after the home directory has been specified, which is why it's not
-        # called here in __init__.]
-        if server:
-            vgerpath = os.environ.get('VGER')
-            if vgerpath is not None:
-                self.importApplicationOntologies(vgerpath)
-            else:
-                raise ValueError, 'You must define the VGER env variable.'
         if test_home is not None:
             self.importApplicationOntologies(test_home)
         # self.read_only = list(READ_ONLY)  # not used here!
@@ -163,18 +141,17 @@
 
     def startLogging(self):
         """
-        Begin a client registry log.
+        Begin registry logging.
         """
-        if not self.server:
-            self.templog = None
-            if hasattr(self, 'log') and hasattr(self.log, 'temp'):
-                self.templog = self.log.temp
-            import logging
-            if hasattr(logging, 'filename'):
-                self.log = logging.getLogger('registry')
-                if self.templog:
-                    for line in self.templog:
-                        self.log.info(line)
+        self.templog = None
+        if hasattr(self, 'log') and hasattr(self.log, 'temp'):
+            self.templog = self.log.temp
+        import logging
+        if hasattr(logging, 'filename'):
+            self.log = logging.getLogger('registry')
+            if self.templog:
+                for line in self.templog:
+                    self.log.info(line)
 
     def createCoreMetaObjects(self, module='pangalactic.meta.names'):
         """
@@ -286,10 +263,9 @@
         Import application ontologies from source files.
 
         Application ontologies are imported from OWL files found in the
-        'plugins/owl' subdirectory of a PanGalaxian node's home directory or
-        PGER server's home directory.  Each application ontology may span
-        multiple OWL files, but each OWL file may contain only a single
-        ontology or a fraction thereof.
+        'plugins/owl' subdirectory of a PanGalaxian node's home directory home
+        directory.  Each application ontology may span multiple OWL files, but
+        each OWL file may contain only a single ontology or a fraction thereof.
 
         @param homedir:  directory in which the plugins directory lives
         @type  homedir:  C{str}

Index: PanGalactic/pangalactic/repo/pger.py
diff -u PanGalactic/pangalactic/repo/pger.py:1.142 PanGalactic/pangalactic/repo/pger.py:1.143
--- PanGalactic/pangalactic/repo/pger.py:1.142	Mon Feb 12 19:02:46 2007
+++ PanGalactic/pangalactic/repo/pger.py	Thu Feb 22 18:53:33 2007
@@ -1,10 +1,10 @@
-# $Id: pger.py,v 1.142 2007/02/13 00:02:46 waterbug Exp $
+# $Id: pger.py,v 1.143 2007/02/22 23:53:33 waterbug Exp $
 """
 Pan Galactic Entropy Reverser module
 
-@version: $Revision: 1.142 $
+@version: $Revision: 1.143 $
 """
-__version__ = "$Revision: 1.142 $"[11:-2]
+__version__ = "$Revision: 1.143 $"[11:-2]
 
 import base64
 import sys
@@ -50,7 +50,7 @@
         """
         MultiService.__init__(self)
         self.setName('PGER')
-        vgerpath = os.environ.get('VGER')
+        vgerpath = os.environ.get('PANGALAXIAN')
         if vgerpath is None:
             self.vault = 'vault'
         else:

Index: PanGalactic/pangalactic/repo/chronosynclastic.py
diff -u PanGalactic/pangalactic/repo/chronosynclastic.py:1.110 PanGalactic/pangalactic/repo/chronosynclastic.py:1.111
--- PanGalactic/pangalactic/repo/chronosynclastic.py:1.110	Tue Feb 13 04:18:58 2007
+++ PanGalactic/pangalactic/repo/chronosynclastic.py	Thu Feb 22 18:53:33 2007
@@ -1,12 +1,12 @@
-# $Id: chronosynclastic.py,v 1.110 2007/02/13 09:18:58 waterbug Exp $
+# $Id: chronosynclastic.py,v 1.111 2007/02/22 23:53:33 waterbug Exp $
 
 """
 The Chronosynclastic Infundibulum:  an asynchronous, ontology-driven
 object-relational mapping and database interface.
 
-@version: $Revision: 1.110 $
+@version: $Revision: 1.111 $
 """
-__version__ = "$Revision: 1.110 $"[11:-2]
+__version__ = "$Revision: 1.111 $"[11:-2]
 
 import os
 import re
@@ -22,7 +22,7 @@
 from twisted.python import log
 
 # PanGalactic imports
-from pangalactic.meta.registry import PanGalacticRegistry
+# from pangalactic.meta.registry import PanGalacticRegistry
 from pangalactic.node.uberorb import orb
 from pangalactic.utils import sql
 from pangalactic.utils.datetimes import dt2str, str2dt, dtstamp