<?xml version="1.0" encoding="ASCII"?>
<!DOCTYPE VersavantTopicMap SYSTEM "http://www.versavant.org/dtds/Versavant-A-1.0.dtd">
<VersavantTopicMap
    TopicMapName="Topic Map 1"
    VersavantTopicMapDTDVersion="A-1.0"
    OSPathSeparator="\"
    PythonVersion="2.4"
    VersavantVersion="1.40"
    VersavantSystemTMAName="Vsys"


  ><VersavantTMA AppNm="TMA1"

    ><TMAConfigFile ConfSrcPath="tmaconf.xml">S'%3c?xml version="1.0" encoding="ASCII"?>\n%3c!-- %3c!DOCTYPE VersavantTMA SYSTEM "http://www.versavant.org/dtds/TMAConfigFile.dtd">-->\n%3c!DOCTYPE VersavantTMA SYSTEM "../versavantTMA.dtd">\n\n%3c!-- #####################################################################\n     #####################################################################\n     ## Copyright 2005 Steven R. Newcomb                                ##\n     ##                                                                 ##\n     ## This software is licensed under the Apache License, Version 2.0 ##\n     ## (the "License"); you may not use this file except in compliance ##\n     ## with the License.  Copies of the License are available at       ##\n     ##        http://www.apache.org/licenses/LICENSE-2.0               ##\n     ##                                                                 ##\n     ## Unless required by applicable law or agreed to in writing,      ##\n     ## software distributed under the License is distributed on an "AS ##\n     ## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n     ## express or implied.  See the License for the specific language  ##\n     ## governing permissions and limitations under the License.        ##\n     ##                                                                 ##\n     ## Copies of the source code and the license are available at      ##\n     ##        http://www.versavant.org                                 ##\n     #####################################################################\n     ##################################################################### \n\n\n####################################\ncvsRevision = "$Revision: 1.4 $" ##\n####################################\n\n-->\n\n\n%3cVersavantTMA\nVersavantTMADTDVersion="1"\n\n  >%3cDesc>\'TMA1\' in the demonstration program \'demo.py\'.%3c/Desc\n\n\n  >%3cValueType ValueTypeName="string"\n    >%3cDesc>General-purpose string value type.%3c/Desc\n    >%3cValueIsNotOfType__\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstring.py"\n      functionName="ValueIsNotOfType_string_"\n    />%3cInstanceOf__ValueTypeToXMLContentString\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstring.py"\n      functionName="InstanceOf_string_ValueTypeToXMLContentString"\n    />%3cXMLContentStringToInstanceOf__ValueType\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstring.py"\n      functionName="XMLContentStringToInstanceOf_string_ValueType"\n  />%3c/ValueType\n\n  >%3cValueType ValueTypeName="stringList"\n    >%3cDesc>General-purpose list-of-strings value type.%3c/Desc\n    >%3cValueIsNotOfType__\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstringList.py"\n      functionName="ValueIsNotOfType_stringList_"\n    />%3cInstanceOf__ValueTypeToXMLContentString\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstringList.py"\n      functionName="InstanceOf_stringList_ValueTypeToXMLContentString"\n    />%3cXMLContentStringToInstanceOf__ValueType\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTstringList.py"\n      functionName="XMLContentStringToInstanceOf_stringList_ValueType"\n  />%3c/ValueType\n\n  >%3cValueType ValueTypeName="proxyIdSet"\n    >%3cDesc>General-purpose list-of-subject-proxies value type.%3c/Desc\n    >%3cValueIsNotOfType__\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"\n      functionName="ValueIsNotOfType_proxyIdList_"\n      functionExtraArgsString="propertyClassName = propertyClass.propertyClassName"\n    />%3cInstanceOf__ValueTypeToXMLContentString\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"\n      functionName="InstanceOf_proxyIdList_ValueTypeToXMLContentString"\n    />%3cXMLContentStringToInstanceOf__ValueType\n      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"\n      functionName="XMLContentStringToInstanceOf_proxyIdList_ValueType"\n  />%3c/ValueType\n\n\n  >%3cPropertyClass PropertyClassName="Book" ValueType="string"\n    >%3cDesc>Subject is book identified by string "[title] by [author name]".%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Add_string_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Remove_string_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Merge_string_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ValuesOf_string_PropertyInstancesAreSignificantlyDifferent"\n    />%3cMergeProxiesBecause__PropertyInstancesSpecifySameSubject\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="MergeProxiesBecause_string_PropertyInstancesSpecifySameSubject"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_string_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="PersonOrOrganization" ValueType="string"\n    >%3cDesc>Subject is human being or organization identified by his/her/its name.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Add_string_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Remove_string_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Merge_string_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ValuesOf_string_PropertyInstancesAreSignificantlyDifferent"\n    />%3cMergeProxiesBecause__PropertyInstancesSpecifySameSubject\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="MergeProxiesBecause_string_PropertyInstancesSpecifySameSubject"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_string_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BookPublisherName" ValueType="string"\n    >%3cDesc>Appearing in a proxy for a book, the name of its publisher.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Add_string_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Remove_string_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Merge_string_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ValuesOf_string_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'Book\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_string_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BookTitle" ValueType="string"\n    >%3cDesc>Appearing in a proxy for a book, the name of its publisher.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Add_string_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Remove_string_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="Merge_string_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ValuesOf_string_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'Book\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstring.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_string_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BookPublisher" ValueType="proxyIdSet"\n    >%3cDesc>Appearing in a proxy for a book, the proxy(ies) whose subject is its publisher.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Add_proxyIdSet_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Remove_proxyIdSet_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Merge_proxyIdSet_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'Book\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"\n    />%3cUpdateProxyReferencesIn__Value\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BookAuthorNames" ValueType="stringList"\n    >%3cDesc>Appearing in a proxy for a book, a list of the names of its authors.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstringList.py"\n      functionName="Add_stringList_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstringList.py"\n      functionName="Remove_stringList_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstringList.py"\n      functionName="Merge_stringList_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstringList.py"\n      functionName="ValuesOf_stringList_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'Book\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCstringList.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_stringList_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BookAuthors" ValueType="proxyIdSet"\n    >%3cDesc>Appearing in a proxy for a book, proxy(ies) whose subjects is/are its author(s).%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Add_proxyIdSet_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Remove_proxyIdSet_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Merge_proxyIdSet_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'Book\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"\n    />%3cUpdateProxyReferencesIn__Value\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BooksAuthored" ValueType="proxyIdSet"\n    >%3cDesc>Proxy(ies) whose subjects is/are the book(s) authored by the person or organiztion.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Add_proxyIdSet_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Remove_proxyIdSet_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Merge_proxyIdSet_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'PersonOrOrganization\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"\n    />%3cUpdateProxyReferencesIn__Value\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"\n  />%3c/PropertyClass\n\n  >%3cPropertyClass PropertyClassName="BooksPublished" ValueType="proxyIdSet"\n    >%3cDesc>Proxy(ies) whose subjects is/are the book(s) published by the person or organization.%3c/Desc\n    >%3cAdd__PropToOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Add_proxyIdSet_PropToOverheadDict"\n    />%3cRemove__PropFromOverheadDict\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Remove_proxyIdSet_PropFromOverheadDict"\n    />%3cMerge__PropertyValues\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="Merge_proxyIdSet_PropertyValues"\n    />%3cValuesOf__PropertyInstancesAreSignificantlyDifferent\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"\n    />%3cContextOf__PropertyIsInvalid\n      functionModuleFilePath="${VSVEXECDIR}/Lib/proxyLacksFellowProperty.py"\n      functionName="ContextOf__PropertyIsInvalid"\n      functionExtraArgsString="\'PersonOrOrganization\'"\n    />%3cProxiesWith__ValueNotSignificantlyDifferentFrom\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"\n    />%3cUpdateProxyReferencesIn__Value\n      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"\n      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"\n  />%3c/PropertyClass\n\n\n\n  >%3cConferralRule ConferralRuleName="inferFromBookProperties"\n      functionModuleFilePath="inferFromBookProperties.py"\n      functionName="inferFromBookProperties"\n      functionExtraArgsString=""\n    >%3cDesc>From BookId property, confers PublisherName, AuthorNames, Authors, Publisher, PersonNameSIP, BooksAuthored, Relationships, and PublisherNameSIP properties.%3c/Desc\n  >%3c/ConferralRule\n\n>%3c/VersavantTMA>\n\n\n'%0ap1%0a.</TMAConfigFile

    ><TMAModule ModName="001_PCproxyIdSet" ModSrcFileName="001_PCproxyIdSet.py">S'#####################################################################\n#####################################################################\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.4 $" ##\n####################################\n\n\nimport sys\n\n\n#######################################\n## proxyIdSet PC implementation ##\n#######################################\n\n## These functions are useful as implementations of SIPs or OPs whose\n## values are lists of references to proxies.  Obviously, the name\n## "proxyIdSet" only applies to these (library) functions; TMA\n## designers can use any name(s) for such properties.\n\n#######################################################\ndef Add_proxyIdSet_PropToOverheadDict( vsv, propertyInstance, overheadDict):\n\n    workDict = {}\n    for proxyId in propertyInstance._value:\n        workDict[ proxyId] = None\n    propertyInstance.listOfIdsOfReferencedProxies = propertyInstance._value = workDict.keys()\n\n    hashablePropertyValue = propertyInstance.hashablePropertyValue = frozenset( propertyInstance._value)\n\n    if overheadDict.has_key( hashablePropertyValue):\n        if overheadDict[ hashablePropertyValue].has_key( propertyInstance.proxyId):\n            vsv.errMsg( \'ProxyId %25s is already listed in the overheadDict of property class for the value (%25s)\' %25 (\n                propertyInstance.proxyId, propertyInstance._value))\n            sys.exit( 1)\n        overheadDict[ hashablePropertyValue][ propertyInstance.proxyId] = None\n    else:\n        overheadDict[ hashablePropertyValue] = { propertyInstance.proxyId: None}\n\n    vsv.addNewProxyReferencesToReferencedProxiesDict( propertyInstance)\n\n#######################################################\ndef Remove_proxyIdSet_PropFromOverheadDict( vsv, propertyInstance, overheadDict):\n    hashablePropertyValue = propertyInstance.hashablePropertyValue\n    if not overheadDict.has_key( hashablePropertyValue):\n        vsv.errMsg( \'No entry in overheadDict of property class for the value (%25s) of property %25s\' %25 (\n            propertyInstance._value,\n            vsv.catKey( propertyInstance.topicMap.topicMapName, propertyInstance.propertyInstanceKey)))\n        sys.exit( 1)\n    if propertyInstance.proxyId not in overheadDict[ hashablePropertyValue]:\n        vsv.errMsg( \'ProxyId %25s not found in the overheadDict of property class for the value (%25s) of property %25s\' %25 (\n            propertyInstance.proxyId,\n            propertyInstance._value,\n            vsv.catKey( propertyInstance.topicMap.topicMapName, propertyInstance.propertyInstanceKey)))\n        sys.exit( 1)\n\n    del overheadDict[ hashablePropertyValue][ propertyInstance.proxyId]\n    if not len( overheadDict[ hashablePropertyValue]):\n        del overheadDict[ hashablePropertyValue]\n\n    vsv.removeOldProxyReferencesFromReferencedProxiesDict( propertyInstance)\n\n#######################################################\ndef ValueIsInvalidFor_proxyIdSet_Property( vsv, propertyValue, propertyClass, propertyInstance = None):\n    ## the value type validator does everything necessary\n    return False\n\n#######################################################\ndef Merge_proxyIdSet_PropertyValues( vsv, value1, value2):\n    newProxyIdSet = {}\n    for proxyId in value1:\n        newProxyIdSet[ proxyId] = None\n    for proxyId in value2:\n        newProxyIdSet[ proxyId] = None\n    return newProxyIdSet.keys()\n\n#######################################################\ndef ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent( vsv, value1, value2):\n    if frozenset( value1) != frozenset( value2):  ## ignore differences in sequence and ignore redundant entries\n        return True\n    return False\n\n#######################################################\ndef MergeProxiesBecause_proxyIdSet_PropertyInstancesSpecifySameSubject( vsv, propertyClass):\n    for key in propertyClass.overheadDict:\n        if len( propertyClass.overheadDict[ key]) > 1:\n            vsv.mergeListOfProxies( propertyClass, propertyClass.overheadDict[ key].keys())\n\n#######################################################\ndef ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value( vsv, propertyClass, value):\n    hashablePropertyValue = frozenset( value)\n    if propertyClass.overheadDict.has_key( hashablePropertyValue):\n        return propertyClass.overheadDict[ hashablePropertyValue].keys()\n    else:\n        return []  ## empty list -- no match\n\n#######################################################\ndef UpdateProxyReferencesIn_proxyIdSet_Value( vsv, propertyInstance, proxyIdToReplace, replacementProxyId):\n    value = propertyInstance._value\n    if proxyIdToReplace not in value:\n        vsv.errMsg( \'proxyIdToReplace "%25s" not found in the value of %25s\' %25 (\n            proxyIdToReplace,\n            vsv.catKey( propertyInstance.topicMap.topicMapName, propertyInstance.propertyInstanceKey)))\n        sys.exit( 1)\n\n    propertyClass = propertyInstance.propertyClass\n    \n\n    ## Remove old value from the "overhead" data for this property class\n    if propertyClass.Remove__PropFromOverheadDictFArgString:\n        execStr = \'propertyClass.Remove__PropFromOverheadDictF( vsv, propertyInstance, propertyClass.overheadDict, %25s)\' %25 (\n            propertyClass.Remove__PropFromOverheadDictFArgString)\n        exec execStr\n    else:\n        propertyClass.Remove__PropFromOverheadDictF( vsv, propertyInstance, propertyClass.overheadDict)\n\n    ## Replace the proxyIdToReplace with the replacementProxyId\n    oldValue = value[:]\n    del value[:]\n    for proxyId in oldValue:\n        if proxyId == proxyIdToReplace:\n            proxyId = replacementProxyId\n        if proxyId not in value:\n            value.append( proxyId)\n        \n    ## Expose the list of proxy references that appear in the value as a list of proxyIds\n    propertyInstance.listOfIdsOfReferencedProxies = value\n        ## happens to be a list, so use the same list\n\n\n    ## Add new value to the "overhead" data for this property class\n    if propertyClass.Add__PropToOverheadDictFArgString:\n        execStr = \'propertyClass.Add__PropToOverheadDictF( vsv, propertyInstance, propertyClass.overheadDict, %25s)\' %25 (\n            propertyClass.Add__PropToOverheadDictFArgString)\n        exec execStr\n    else:\n        propertyClass.Add__PropToOverheadDictF( vsv, propertyInstance, propertyClass.overheadDict)\n\n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_PCstring" ModSrcFileName="001_PCstring.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.3 $" ##\n####################################\n\n######################################################################################\n## A simple property class implementation for properties whose values are strings.  ##\n######################################################################################\n\n#######################################################\ndef Add_string_PropToOverheadDict( vsv, propertyInstance, overheadDict):\n    valueHash = propertyInstance.hashablePropertyValue = propertyInstance._value\n    if overheadDict.has_key( valueHash):\n        overheadDict[ valueHash].append( propertyInstance.proxyId)\n    else:\n        overheadDict[ valueHash] = [ propertyInstance.proxyId]\n\n\n#######################################################\ndef Remove_string_PropFromOverheadDict( vsv, propertyInstance, overheadDict):\n    valueHash = propertyInstance.hashablePropertyValue\n    overheadDict[ valueHash].remove( propertyInstance.proxyId)\n    if not len( overheadDict[ valueHash]):\n        del overheadDict[ valueHash]  ## be a good citizen and clean up after yourself\n\n\n#######################################################\ndef Merge_string_PropertyValues( vsv, value1, value2):\n    if value1 == value2:\n        return value1\n    else:\n        return None  ## the merge failed.\n\n#######################################################\ndef ValuesOf_string_PropertyInstancesAreSignificantlyDifferent( vsv, value1, value2):\n    if value1 == value2:\n        return False\n    else:\n        return True  \n\n#######################################################\ndef ProxiesOfSubjectIdentifiedBy_string_Value( vsv, propertyClass, value):\n    if propertyClass.overheadDict.has_key( value):\n        return propertyClass.overheadDict[ value]\n    else:\n        return []  ## empty list -- no match\n\n#######################################################\ndef MergeProxiesBecause_string_PropertyInstancesSpecifySameSubject( vsv, propertyClass):\n    ## Declare this one if and only if your property class is for SIPs\n    ## (subject identity properties).\n    for hashablePropertyValue in propertyClass.overheadDict:\n        if len( propertyClass.overheadDict[ hashablePropertyValue]) > 1:\n            vsv.mergeListOfProxies( propertyClass, propertyClass.overheadDict[ hashablePropertyValue])\n    \n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_PCstringList" ModSrcFileName="001_PCstringList.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.3 $" ##\n####################################\n\n#######################################################################\n## This property class assumes a value type of lists whose items are ##\n## strings.  The value type implementation found in                  ##\n## versavant/Lib/VTstringList.py can be used.                        ##\n#######################################################################\n\n#######################################################\ndef Add_stringList_PropToOverheadDict( vsv, propertyInstance, overheadDict):\n    hashableValue = propertyInstance.hashablePropertyValue = tuple( propertyInstance._value)\n    if overheadDict.has_key( hashableValue):\n        overheadDict[ hashableValue].append( propertyInstance.proxyId)\n    else:\n        overheadDict[ hashableValue] = [ propertyInstance.proxyId]\n\n\n#######################################################\ndef Remove_stringList_PropFromOverheadDict( vsv, propertyInstance, overheadDict):\n    hashableValue = propertyInstance.hashablePropertyValue\n    overheadDict[ hashableValue].remove( propertyInstance.proxyId)\n    if not len( overheadDict[ hashableValue]):\n        del overheadDict[ hashableValue]  ## be a good citizen and clean up after yourself\n\n\n#######################################################\ndef Merge_stringList_PropertyValues( vsv, value1, value2):\n    if value1 == value2:  ## this actually works, apparently; the two mutable sequences are compared\n        return value1\n    else:\n        return None  ## the merge failed.\n\n#######################################################\ndef ValuesOf_stringList_PropertyInstancesAreSignificantlyDifferent( vsv, value1, value2):\n    if value1 == value2:  ## this actually works, apparently; the two mutable sequences are compared\n        return False\n    else:\n        return True  \n\n#######################################################\ndef ProxiesOfSubjectIdentifiedBy_stringList_Value( vsv, propertyClass, value):\n    if propertyClass.overheadDict.has_key( tuple( value)):\n        return propertyClass.overheadDict[ tuple( value)]\n    else:\n        return []  ## empty list -- no match\n\n#######################################################\ndef MergeProxiesBecause_stringList_PropertyInstancesSpecifySameSubject( vsv, propertyClass):\n    ## Declare this one if and only if your property class is for SIPs\n    ## (subject identity properties).\n    for hashablePropertyValue in propertyClass.overheadDict:\n        if len( propertyClass.overheadDict[ hashablePropertyValue]) > 1:\n            vsv.mergeListOfProxies( propertyClass, propertyClass.overheadDict[ hashablePropertyValue])\n    \n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_VTproxyIdList" ModSrcFileName="001_VTproxyIdList.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.5 $" ##\n####################################\n\n\n#############################################\n## "proxyIdList" value type implementation ##\n#############################################\n\n## This value type is useful for storing references to proxies,\n## regardless of whether they are treated by the property classes that\n## use this value type are lists or sets.  For example, you should use\n## this "proxyIdList" value type for both "proxyIdSet"-type property\n## classes and "proxyIdList"-type property classes.  At this level,\n## it doesn\'t matter.\n\n## Values are lists of proxyIds, i.e., proxy.proxyId values, which are\n## always strings of decimal digits that begin with two zeroes.\n\n## When you create other value types that contain proxy references,\n## you can use this implementation as a guide.  It\'s tricky to\n## manage proxy references, not only because they die when merged, but\n## also because they can\'t possibly retain their original IDs when\n## they are imported.\n\n## NOTE: During importation of instances of this value type from XML,\n## some recordkeeping is done in vsv.currentTopicMapHoldingDict[\n## \'IoMapsDict\'][ (TMA name)][ propertyClassName].  \n\nimport types, traceback\n\n#######################################################\ndef ValueIsNotOfType_proxyIdList_(vsv, propertyValue, propertyClass, propertyInstance = None, **args):\n    propertyClassName = propertyClass.propertyClassName\n    topicMap = propertyClass.topicMap\n    TMA = propertyClass.TMA\n    TMAName = TMA.TMAName\n\n    if not isinstance( propertyValue, types.ListType):\n        traceback.print_stack()\n        if propertyInstance:\n            vsv.errMsg( \'Value "%25s" of property %25s is not a list.\' %25 ( propertyValue, propertyInstance.propertyInstanceKey))\n        else:\n            vsv.errMsg( \'Value "%25s" of a prospective %25s property is not a list.\' %25 ( propertyValue, vsv.catKey( TMAName, propertyClassName)))\n        return True\n\n    for proxyId in propertyValue:\n        if not isinstance(proxyId, types.StringType):\n            if propertyInstance:\n                vsv.errMsg( \'An item ("%25s") in the value of property %25s is not a string.\' %25 ( proxyId, propertyInstance.propertyInstanceKey))\n            else:\n                vsv.errMsg( \'An item ("%25s") in the value of a presumptive %25s property is not a string.\' %25 ( proxyId, vsv.catKey( TMAName, propertyClassName)))\n            return True\n        if not vsv.proxyIdStrValidatorRE.match( proxyId):\n            if propertyInstance:\n                vsv.errMsg( \'An item ("%25s") in the value of property %25s does not look like a proxy identifier string.\' %25 ( proxyId, propertyInstance.propertyInstanceKey))\n            else:\n                vsv.errMsg( \'An item ("%25s") in the value of a presumptive %25s property does not look like a proxy identifier string.\' %25 ( proxyId, vsv.catKey( TMAName, propertyClassName)))\n            return True\n\n        proxy = vsv.isProxyId( proxyId, topicMap)\n        if not proxy:\n            if proxyId not in vsv.currentTopicMapHoldingDict[ \'IoMapsDict\'][ \'TMAs\'][ propertyInstance.TMAName][ propertyClassName]:\n                   ## We\'re probably in the process of importing a topic map, and these are\n                   ## references to proxies that don\'t exist yet because they haven\'t been imported\n                   ## yet.  The above check is supposed to calm our fears that this proxy reference\n                   ## is invalid, giving us reason to believe that it will soon be valid, even\n                   ## though it\'s not quite valid yet.\n\n                if propertyInstance:\n                    errString = \'An item ("%25s") in the list is not the ID of any proxy in topic map "%25s".\' %25 ( proxyId, propertyInstance.topicMap.topicMapName)\n                else:\n                    errString = \'An item ("%25s") in the list is not the ID of any proxy in any open topic map.\' %25 ( proxyId)\n                vsv.errMsg( errString)\n                return True\n        if proxy:\n            if proxy.forwardTo:\n                vsv.errMsg( \'An item ("%25s") in the list that is the value of property %25s is the ID of a dead proxy.  Only the IDs of living proxies are permitted.\' %25 ( proxyId, propertyInstance.topicMap.topicMapName))\n                return True\n\n    return False  ## all\'s well, presumably.                    \n\n#######################################################\ndef InstanceOf_proxyIdList_ValueTypeToXMLContentString(vsv, propertyInstance):\n    return vsv.cPickleDumpObjectAsXMLContentString( propertyInstance._value)\n\n#######################################################\ndef XMLContentStringToInstanceOf_proxyIdList_ValueType(vsv, string, propertyClass, **args):\n    ## Import a list of proxy references, adjusting them as necessary to\n    ## the new proxyIds of the imported proxies to which they refer.\n\n    oldProxyIdList = vsv.cPickleLoadObjectFromXMLContentString( string)\n\n    mem2xmlProxyIdDict = vsv.currentTopicMapHoldingDict[ \'IoMapsDict\'][ \'ProxyIds.mem2xml\']\n        ## This dictionary allows us to look up the in-xml element id of a\n        ## proxy, given the proxy\'s proxyId as it was in the topic map\n        ## from which the proxy was exported as xml.\n\n    firstImportedProxyId = vsv.firstImportedProxyId\n        ## This is an integer which, if we were to convert it into a\n        ## string of decimal digits with 2 prepended zero characters,\n        ## would be the proxyId of the first (the first, that is, not\n        ## counting the proxies created in order to register the TMAs\n        ## of the xml topic map being imported) in-memory proxy to be\n        ## imported into the being-imported-into topic map from the\n        ## xml topic map that we\'re importing.\n\n    propertyClassName = propertyClass.propertyClassName\n    TMAName = propertyClass.TMA.TMAName\n\n    newProxyIdList = []\n\n    for oldProxyId in oldProxyIdList:\n        xmlProxyNum = mem2xmlProxyIdDict[ int( oldProxyId)]\n        newProxyNum = (xmlProxyNum + firstImportedProxyId) - 1\n        newProxyId = \'00%25s\' %25 ( newProxyNum)\n        newProxyIdList.append( newProxyId)\n\n        appDict = vsv.currentTopicMapHoldingDict[ \'IoMapsDict\'][ \'TMAs\'][ TMAName]\n        if not appDict.has_key( propertyClassName):\n            appDict[ propertyClassName] = [ newProxyId]\n        else:\n            if newProxyId not in appDict[ propertyClassName]:\n                appDict[ propertyClassName].append( newProxyId)\n    ## vsv.IoMapsDict[ args[ \'TMAName\']][ propertyClassName] will be consulted by\n    ## the ValueIsNotOfType__() function in order to avoid a logical logjam over this.\n    ## The logical logjam is that we\'re referring to proxies that haven\'t been imported\n    ## yet, and the ValueIsNotOfType__() function checks to see that the proxy references are valid.\n    ## This gives the ValueIsNotOfType__() function something to fall back on, as it checks.\n    ## See that function, above, for more.\n\n    return newProxyIdList\n\n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_VTstring" ModSrcFileName="001_VTstring.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.3 $" ##\n####################################\n\n\n############################################\n## This simple value type is for strings. ##\n############################################\n\nimport types\n\n#######################################################\ndef ValueIsNotOfType_string_( vsv, propertyValue, propertyClass, propertyInstance = None):\n    if not isinstance( propertyValue, types.StringType):\n        vsv.errMsg( \'Value "%25s" is not a string.\' %25 ( propertyValue))\n        return True\n    return False\n\n#######################################################\ndef InstanceOf_string_ValueTypeToXMLContentString( vsv, propertyInstance):\n    return vsv.cPickleDumpObjectAsXMLContentString( propertyInstance._value)\n\n#######################################################\ndef XMLContentStringToInstanceOf_string_ValueType( vsv, string, propertyClass):\n    return vsv.cPickleLoadObjectFromXMLContentString( string)\n\n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_VTstringList" ModSrcFileName="001_VTstringList.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.4 $" ##\n####################################\n\n\n##############################################\n## This value type is for lists of strings. ##\n##############################################\n\nimport types\n\n#######################################################\ndef ValueIsNotOfType_stringList_( vsv, propertyValue, propertyClass, propertyInstance = None):\n    if not isinstance( propertyValue, types.ListType):\n        vsv.errMsg( \'Value "%25s" is not a list.\' %25 propertyValue)\n        return True\n    for item in propertyValue:\n        if not isinstance( item, types.StringType):\n            vsv.errMsg( \'Item ("%25s") in value "%25s" is not a string.\' %25 ( item, propertyValue))\n            return True\n    return False\n\n#######################################################\ndef InstanceOf_stringList_ValueTypeToXMLContentString( vsv, propertyInstance):\n    return vsv.cPickleDumpObjectAsXMLContentString( propertyInstance._value)\n\n#######################################################\ndef XMLContentStringToInstanceOf_stringList_ValueType( vsv, string, propertyClass):\n    return vsv.cPickleLoadObjectFromXMLContentString( string)\n\n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_inferFromBookProperties" ModSrcFileName="001_inferFromBookProperties.py">S'#####################################################################\n#####################################################################\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.5 $" ##\n####################################\n\n\n#####################################################################\n## Implementation of the conferral rule "inferFromBookProperties"\n## in Topic Map Application "TMA1", used in versavant/demo.py \n#####################################################################\n\n\nimport sys, re  ## Python system module and Python regular expression module\n\ndef inferFromBookProperties( vsv, conferralRule):\n\n\n## For each proxy for a subject which is a book (i.e., for each proxy that has a\n## "Book\' property, here locally called "existingBookProxy"):\n\n## * If it has a PublisherName property, create a proxy (here locally\n##   called "publisherProxy") for the publisher.  The SIP of this proxy\n##   will be a PersonOrOrganization property whose value is the\n##   publisher\'s name.\n\n## * Parse the value of the Book property, which will have the form:\n##   \'(book title) by (book author)\', so that we have the title and author\n##   separately.\n  \n## * Create a proxy (here locally called "authorProxy") for the author.\n##   The SIP of this proxy will be a PersonOrOrganization property whose\n##   value is the author\'s name.\n\n## * Create an additional proxy (here called "newBookProxy") for the\n##   book, so we can add properties to it.  (The existing proxy isn\'t in\n##   play any more and can\'t be changed.  But we can create a new proxy\n##   for the same subject and add properties to it, in the expectation\n##   that the new proxy will merge with the old proxy.)\n\n## * To the authorProxy, add a BooksAuthored property whose value is a\n##   reference to newBookProxy (in the end, the same effect would be\n##   realized by making the value a reference to existingBookProxy -- it\n##   really doesn\'t matter which one we refer to, because both proxies\n##   represent exactly the same subject).\n\n## * To the publisherProxy, add a BooksPublished property whose value is\n##   a reference to newBookProxy (same comment applies here).\n\n## * To the newBookProxy, also add:\n\n##     - a BookTitle property whose value is the book\'s title.  This will\n##       allow us to look up the book by its title.\n\n##     - a BookAuthorNames property whose value is the name of the\n##       author.\n\n##     - a BookAuthors property whose value is/are reference(s) to the\n##       authorProxies\n\n##     - a BookPublisher property whose value is a reference to the\n##       publisherProxy\n\n\n\n    topicMap = conferralRule.topicMap  ## make the below code less verbose (and maybe run slightly faster)\n    TMA = conferralRule.TMA\n    TMAName = TMA.TMAName\n    \n    existing_Book_SIPValueList = TMA.propertyClasses[ \'Book\'].overheadDict.keys()\n    ## existing_Book_SIPValueList is now a list of all the different\n    ## values of all the Book properties in the topic map.\n\n    ## (Reminder: Since \'Book\' properties are SIPs, each such value\n    ## indicates the subject of the proxy in which it appears; that\n    ## subject is always a book, presumably.)\n\n    for existing_Book_SIPValue in existing_Book_SIPValueList:\n        existingBookProxyIds = TMA.propertyClasses[ \'Book\'].overheadDict[ existing_Book_SIPValue]\n            ## existingBookProxyIds is now a list of all the proxyIds\n            ## that have a specific value (existing_Book_SIPValue).\n            ## In other words, it\'s a list of the proxyIds of all the\n            ## proxies of a specific book.\n\n            ## (Reminder: a proxyId is a string of decimal digits with\n            ## two leading zeroes.  It is the serial number -- the\n            ## unique identifier -- of a subject proxy.)\n\n        for existingBookProxyId in existingBookProxyIds:\n\n            existingBookProxy = topicMap.proxies[ existingBookProxyId]\n            ## We\'ve just converted the proxyId into the corresponding Versavant ProxyObject instance.\n\n\n            bookPropertyInProxyKey = vsv.catKey( TMAName, \'Book\')\n            ## Within a proxy, each property instance has a unique\n            ## name which is formed by concatenating the TMA name, a\n            ## field separator, and the property class name.  Now,\n            ## bookNamePropertyInProxyKey == \'TMA1,,Book\'\n\n            bookPropertyInstance = existingBookProxy.propertyInstances[ bookPropertyInProxyKey]\n            ## bookPropertyInstance is now the Versavant\n            ## PropertyInstance object that represents the\n            ## \'TMA1,,Book\' property instance.\n\n            #######################################################\n\n            ## This particular conferral rule confers proxies into\n            ## existence that have the same feature -- a "Book" SIP\n            ## instance -- that trigger it.  Therefore, in order to\n            ## avoid an endless loop, this conferral rule must detect\n            ## when it is being triggered by its own output, and\n            ## prevent such self-induced conferral operations.  If we\n            ## fail to control this kind of situation here in the\n            ## conferral rule itself, Versavant will detect the\n            ## looping condition and abort itself with an appropriate\n            ## (and characteristically verbose) error message.\n\n            ## One way for the conferral rule to determine whether\n            ## it\'s being triggered by its own output need to look at\n            ## Versavant\'s auditing records for the property that\n            ## we\'re regarding as the triggering property.  The\n            ## following code does that:\n\n            conferralRuleTriggerRoleId = vsv.catKey( conferralRule.conferralRuleKey, \'book identifier\')\n            if bookPropertyInstance.conferralTriggerAncestry.has_key( conferralRuleTriggerRoleId):\n                continue  ## This property instance was created by this rule, so abort\n                          ## the rest of this for loop -- don\'t be triggered.\n\n            #######################################################\n\n            ## In order to help Versavant decide when to stop invoking\n            ## this conferral rule, we now need to record that the\n            ## property instance we\'re interested in, here, will have\n            ## triggered a conferral operation.\n\n            triggers = {}  ## new dictionary to work in\n            triggers[ \'book identifier\'] = bookPropertyInstance.propertyInstanceKey\n            ## \'book identifier\' is the string that this conferral\n            ## rule uses as the name of the "conferral triggering\n            ## role" that this property instance is about to play in\n            ## this conferral operation.\n\n            ## bookPropertyInstance.propertyInstanceKey is the unique\n            ## identifier of this property instance in this topic\n            ## map.  It has three fields.  The first field is the\n            ## proxy Id, the second field is the TMA name, and the\n            ## third field is the property class name, e.g.:\n            ## 00112,,TMA1,,Book\n\n            ## So, we\'ve just made preparations to record that, for\n            ## example, property instance "00112,,TMA1,,Book" is\n            ## playing the "book identifier" conferral triggering role\n            ## in this conferral operation.\n            \n            #######################################################\n\n            ## For auditing reasons, we also need to record the\n            ## sources of the data that we are going to confer.\n\n            conferredValueSources = {}  ## new dictionary to work in\n            conferredValueSources[ \'book stuff\'] = bookPropertyInstance.propertyInstanceKey\n            ## The triggering property also happens to be one of the\n            ## data sources.  \'book stuff\' is the name that this\n            ## conferral rule uses as the name of a "property value\n            ## source" role.\n\n            publisherNamePropertyInstance = None\n            publisherNamePropertyInProxyKey = vsv.catKey( TMAName, \'BookPublisherName\')\n            if existingBookProxy.propertyInstances.has_key( publisherNamePropertyInProxyKey):\n            ## We\'re seeing whether the proxy has a PublisherName property.\n\n                publisherNamePropertyInstance = existingBookProxy.propertyInstances[ publisherNamePropertyInProxyKey]\n                conferredValueSources[ \'publisher stuff\'] = publisherNamePropertyInstance.propertyInstanceKey\n                ## If the PublisherName property exists, its value\n                ## will play the \'publisher stuff\' role in the\n                ## conferral operation.\n\n            #######################################################\n\n            if vsv.conferralMayBeSignificant( conferralRule, triggers, conferredValueSources):\n            ## Now we\'re asking Versavant whether we should go ahead\n            ## and do the conferral.  Versavant will say "yes" (return\n            ## True) unless the conferral operation will definitely\n            ## not add anything new to the topic map.\n\n                ## Now we can confer, confer, confer!\n\n                if publisherNamePropertyInstance:\n                    publisherName = publisherNamePropertyInstance._value\n                    publisherProxy = vsv.newProxyObject( topicMap)  ## create a proxy for the publisher of the book\n\n                    ## create a property instance in publisherProxy: its SIP\n                    vsv.newPropertyInstance(\n                        publisherProxy,          ## the ProxyObject we\'re adding the property instance to\n                        TMA,                     ## the TMA that defines the property class of the new property instance\n                        \'PersonOrOrganization\',  ## the name of the property class of the new property instance\n                        vsv.versaCopy( publisherName),           ## the value of the new property.  Must be copied; can\'t refer!\n                        triggers,                ## the "triggers" information\n                        conferredValueSources)   ## the "property value sources" information\n                    \n\n                ## Parse the "Book" property\'s value.  Kind of a dumb\n                ## example, I guess, but it shows flexibility.\n                ## Conferral rules, like all other aspects of TMAs,\n                ## and like Original Population Tasks, can do anything\n                ## that software can do.\n                compiledRegularExpressionObject = re.compile( \'(^.+)( by )(.+$)\')\n                matchObject = compiledRegularExpressionObject.match( bookPropertyInstance._value)\n                bookTitle = matchObject.group( 1)   ## now we know the title of the book\n                bookAuthorName = matchObject.group( 3)  ## now we know the author of the book\n                bookAuthorNameList = bookAuthorName.split( \',\')  ## we\'re assuming, naively, commas between the author names, here\n\n                ## make a proxy for each author, and set its SIP\n                authorProxyList = []  ## create an empty list \n                authorProxyIdList = []\n                for bookAuthorName in bookAuthorNameList:\n                    authorProxy = vsv.newProxyObject( topicMap)\n                    authorProxyList.append( authorProxy)  ## making a list of ProxyObjects, here\n                    authorProxyIdList.append( authorProxy.proxyId)  ## making a list of subject proxy ids, here\n                    vsv.newPropertyInstance( authorProxy, TMA, \'PersonOrOrganization\', bookAuthorName, triggers, conferredValueSources)\n\n                ## make another proxy for the book -- one we can add properties to -- and set its SIP\n                newBookProxy = vsv.newProxyObject( topicMap) \n                vsv.newPropertyInstance( newBookProxy, TMA, \'Book\', vsv.versaCopy( bookPropertyInstance._value), triggers, conferredValueSources)\n                \n                ## set the BookTitle property of the book proxy\n                vsv.newPropertyInstance( newBookProxy, TMA, \'BookTitle\', bookTitle, triggers, conferredValueSources)\n                \n                ## set the BookAuthorNames property of the book proxy\n                vsv.newPropertyInstance( newBookProxy, TMA, \'BookAuthorNames\', bookAuthorNameList, triggers, conferredValueSources)\n\n                ## set the BookAuthors property of the book proxy\n                vsv.newPropertyInstance( newBookProxy, TMA, \'BookAuthors\', authorProxyIdList, triggers, conferredValueSources)\n\n                ## set the BooksAuthored property of the author proxy\n                vsv.newPropertyInstance( authorProxy, TMA, \'BooksAuthored\', [ existingBookProxy.proxyId], triggers, conferredValueSources)\n                                                                        ## doesn\'t matter whether we refer to the new or\n                                                                        ## the existing book proxy.\n\n                if publisherNamePropertyInstance:\n\n                    ## set the BookPublisher property of the book proxy\n                    vsv.newPropertyInstance( newBookProxy, TMA, \'BookPublisher\', [ publisherProxy.proxyId], triggers, conferredValueSources)\n\n                    ## set the BooksPublished property of the publisher proxy\n                    vsv.newPropertyInstance( publisherProxy, TMA, \'BooksPublished\', [ newBookProxy.proxyId], triggers, conferredValueSources)\n'%0ap1%0a.</TMAModule

    ><TMAModule ModName="001_proxyLacksFellowProperty" ModSrcFileName="001_proxyLacksFellowProperty.py">S'#####################################################################\n#####################################################################\n## Versavant Topic Map Application Bus / Subject Addressing Engine ##\n## Copyright 2005 Steven R. Newcomb                                ##\n##                                                                 ##\n## This software is licensed under the Apache License, Version 2.0 ##\n## (the "License"); you may not use this file except in compliance ##\n## with the License.  Copies of the License are available at       ##\n##        http://www.apache.org/licenses/LICENSE-2.0               ##\n##                                                                 ##\n## Unless required by applicable law or agreed to in writing,      ##\n## software distributed under the License is distributed on an "AS ##\n## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##\n## express or implied.  See the License for the specific language  ##\n## governing permissions and limitations under the License.        ##\n##                                                                 ##\n## Copies of the source code and the license are available at      ##\n##        http://www.versavant.org                                 ##\n#####################################################################\n#####################################################################\n\n####################################\ncvsRevision = "$Revision: 1.3 $" ##\n####################################\n\n#####################################################################\n## A ContextOf__PropertyIsInvalid() function that checks to see\n## whether another property of the same TMA is present in the same\n## proxy, and, if it\'s not present, complains and dies.\n#####################################################################\n\n#######################################################\ndef ContextOf__PropertyIsInvalid( vsv,\n    propertyInstance,                      ## the property instance\n    nameOfPropertyClassBeingCheckedFor     ## extra arg: pass name of class to check for\n    ):\n    \n    TMAName = propertyInstance.propertyClass.TMA.TMAName\n    propertyInProxyKey = vsv.catKey( TMAName, nameOfPropertyClassBeingCheckedFor)\n    if not propertyInstance.proxy.propertyInstances.has_key( propertyInProxyKey):\n        return \'Proxy has no %25s property.\' %25 ( propertyInProxyKey)\n    else:\n        return \'\'\n'%0ap1%0a.</TMAModule

  ></VersavantTMA


  ><VersavantTMA AppNm="Vsys"

    ><TMAConfigFile ConfSrcPath="">S''%0a.</TMAConfigFile

  ></VersavantTMA


  ><ProxyObject id="o1" proxyId="00124"
    ><Property PAppNm="Vsys" PClass="TMAName" IsSIP="Y">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="TMAConfFile" IsSIP="N">S'tmaconf.xml'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="TMADesc" IsSIP="N">S"'TMA1' in the demonstration program 'demo.py'."%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="TMAObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="confRules" IsSIP="N">(dp1%0aS'inferFromBookProperties'%0ap2%0aNs.</Property
    ><Property PAppNm="Vsys" PClass="propClasses" IsSIP="N">(dp1%0aS'BookPublisherName'%0ap2%0aNsS'BooksAuthored'%0ap3%0aNsS'BookTitle'%0ap4%0aNsS'BooksPublished'%0ap5%0aNsS'Book'%0ap6%0aNsS'PersonOrOrganization'%0ap7%0aNsS'BookPublisher'%0ap8%0aNsS'BookAuthorNames'%0ap9%0aNsS'BookAuthors'%0ap10%0aNs.</Property
    ><Property PAppNm="Vsys" PClass="pythonModules" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="valueTypes" IsSIP="N">(dp1%0aS'proxyIdSet'%0ap2%0aNsS'string'%0ap3%0aNsS'stringList'%0ap4%0aNs.</Property
  ></ProxyObject

  ><ProxyObject id="o2" proxyId="00125"
    ><Property PAppNm="Vsys" PClass="valueType" IsSIP="Y">S'TMA1,,string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMF" IsSIP="N">S'001_VTstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMN" IsSIP="N">S'001_VTstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFN" IsSIP="N">S'InstanceOf_string_ValueTypeToXMLContentString'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTDesc" IsSIP="N">S'General-purpose string value type.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTName" IsSIP="N">S'string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__F" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMF" IsSIP="N">S'001_VTstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMN" IsSIP="N">S'001_VTstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FN" IsSIP="N">S'ValueIsNotOfType_string_'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMF" IsSIP="N">S'001_VTstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMN" IsSIP="N">S'001_VTstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFN" IsSIP="N">S'XMLContentStringToInstanceOf_string_ValueType'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o3" proxyId="00126"
    ><Property PAppNm="Vsys" PClass="valueType" IsSIP="Y">S'TMA1,,stringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMF" IsSIP="N">S'001_VTstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMN" IsSIP="N">S'001_VTstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFN" IsSIP="N">S'InstanceOf_stringList_ValueTypeToXMLContentString'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTDesc" IsSIP="N">S'General-purpose list-of-strings value type.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTName" IsSIP="N">S'stringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__F" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMF" IsSIP="N">S'001_VTstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMN" IsSIP="N">S'001_VTstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FN" IsSIP="N">S'ValueIsNotOfType_stringList_'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMF" IsSIP="N">S'001_VTstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMN" IsSIP="N">S'001_VTstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFN" IsSIP="N">S'XMLContentStringToInstanceOf_stringList_ValueType'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o4" proxyId="00127"
    ><Property PAppNm="Vsys" PClass="valueType" IsSIP="Y">S'TMA1,,proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMF" IsSIP="N">S'001_VTproxyIdList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFMN" IsSIP="N">S'001_VTproxyIdList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="InstanceOf__ValueTypeToXMLContentStringFN" IsSIP="N">S'InstanceOf_proxyIdList_ValueTypeToXMLContentString'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTDesc" IsSIP="N">S'General-purpose list-of-subject-proxies value type.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTName" IsSIP="N">S'proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="VTTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__F" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FArgString" IsSIP="N">S'propertyClassName = propertyClass.propertyClassName'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMF" IsSIP="N">S'001_VTproxyIdList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FMN" IsSIP="N">S'001_VTproxyIdList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValueIsNotOfType__FN" IsSIP="N">S'ValueIsNotOfType_proxyIdList_'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMF" IsSIP="N">S'001_VTproxyIdList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFMN" IsSIP="N">S'001_VTproxyIdList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="XMLContentStringToInstanceOf__ValueTypeFN" IsSIP="N">S'XMLContentStringToInstanceOf_proxyIdList_ValueType'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o5" proxyId="00128"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,Book'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_string_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFN" IsSIP="N">S'MergeProxiesBecause_string_PropertyInstancesSpecifySameSubject'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_string_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Subject is book identified by string "[title] by [author name]".'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_string_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_string_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_string_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'Book'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propInstancesMerged" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="proxiesKilled" IsSIP="N">N.</Property
  ></ProxyObject

  ><ProxyObject id="o6" proxyId="00129"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,PersonOrOrganization'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_string_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="MergeProxiesBecause__PropertyInstancesSpecifySameSubjectFN" IsSIP="N">S'MergeProxiesBecause_string_PropertyInstancesSpecifySameSubject'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_string_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Subject is human being or organization identified by his/her/its name.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_string_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_string_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_string_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'PersonOrOrganization'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propInstancesMerged" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="proxiesKilled" IsSIP="N">N.</Property
  ></ProxyObject

  ><ProxyObject id="o7" proxyId="00130"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BookPublisherName'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_string_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'Book'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_string_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Appearing in a proxy for a book, the name of its publisher.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_string_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_string_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_string_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BookPublisherName'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o8" proxyId="00131"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BookTitle'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_string_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'Book'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_string_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Appearing in a proxy for a book, the name of its publisher.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'string'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_string_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_string_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCstring.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCstring'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_string_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BookTitle'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o9" proxyId="00132"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BookPublisher'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_proxyIdSet_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'Book'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_proxyIdSet_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Appearing in a proxy for a book, the proxy(ies) whose subject is its publisher.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_proxyIdSet_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFN" IsSIP="N">S'UpdateProxyReferencesIn_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BookPublisher'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o10" proxyId="00133"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BookAuthorNames'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_stringList_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'Book'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_stringList_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Appearing in a proxy for a book, a list of the names of its authors.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'stringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_stringList_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_stringList_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCstringList.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCstringList'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_stringList_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BookAuthorNames'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o11" proxyId="00134"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BookAuthors'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_proxyIdSet_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'Book'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_proxyIdSet_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Appearing in a proxy for a book, proxy(ies) whose subjects is/are its author(s).'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_proxyIdSet_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFN" IsSIP="N">S'UpdateProxyReferencesIn_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BookAuthors'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o12" proxyId="00135"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BooksAuthored'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_proxyIdSet_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'PersonOrOrganization'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_proxyIdSet_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Proxy(ies) whose subjects is/are the book(s) authored by the person or organiztion.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_proxyIdSet_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFN" IsSIP="N">S'UpdateProxyReferencesIn_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BooksAuthored'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o13" proxyId="00136"
    ><Property PAppNm="Vsys" PClass="propClass" IsSIP="Y">S'TMA1,,BooksPublished'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Add__PropToOverheadDictFN" IsSIP="N">S'Add_proxyIdSet_PropToOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFArgString" IsSIP="N">S"'PersonOrOrganization'"%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMF" IsSIP="N">S'001_proxyLacksFellowProperty.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFMN" IsSIP="N">S'001_proxyLacksFellowProperty'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ContextOf__PropertyIsInvalidFN" IsSIP="N">S'ContextOf__PropertyIsInvalid'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Merge__PropertyValuesFN" IsSIP="N">S'Merge_proxyIdSet_PropertyValues'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCDesc" IsSIP="N">S'Proxy(ies) whose subjects is/are the book(s) published by the person or organization.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="PCValueType" IsSIP="N">S'proxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ProxiesWith__ValueNotSignificantlyDifferentFromFN" IsSIP="N">S'ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="Remove__PropFromOverheadDictFN" IsSIP="N">S'Remove_proxyIdSet_PropFromOverheadDict'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="UpdateProxyReferencesIn__ValueFN" IsSIP="N">S'UpdateProxyReferencesIn_proxyIdSet_Value'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMF" IsSIP="N">S'001_PCproxyIdSet.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFMN" IsSIP="N">S'001_PCproxyIdSet'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="ValuesOf__PropertyInstancesAreSignificantlyDifferentFN" IsSIP="N">S'ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="overheadDict" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassName" IsSIP="N">S'BooksPublished'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="propClassObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="propClassTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o14" proxyId="00137"
    ><Property PAppNm="Vsys" PClass="confRule" IsSIP="Y">S'TMA1,,inferFromBookProperties'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="confRuleDesc" IsSIP="N">S'From BookId property, confers PublisherName, AuthorNames, Authors, Publisher, PersonNameSIP, BooksAuthored, Relationships, and PublisherNameSIP properties.'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="confRuleName" IsSIP="N">S'inferFromBookProperties'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="confRuleObj" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="confRuleProcOps" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="confRuleTMAName" IsSIP="N">S'TMA1'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="confRuleTrigRoles" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="confRuleValSrcRoles" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="conferralRuleF" IsSIP="N">N.</Property
    ><Property PAppNm="Vsys" PClass="conferralRuleFArgString" IsSIP="N">S''%0a.</Property
    ><Property PAppNm="Vsys" PClass="conferralRuleFMF" IsSIP="N">S'001_inferFromBookProperties.py'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="conferralRuleFMN" IsSIP="N">S'001_inferFromBookProperties'%0ap1%0a.</Property
    ><Property PAppNm="Vsys" PClass="conferralRuleFN" IsSIP="N">S'inferFromBookProperties'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o15" proxyId="00143"
    ><Property PAppNm="TMA1" PClass="PersonOrOrganization" IsSIP="Y">S'Harper %26 Brothers'%0ap1%0a.</Property
    ><Property PAppNm="TMA1" PClass="BooksPublished" IsSIP="N">(lp1%0aS'00148'%0ap2%0aa.</Property
  ></ProxyObject

  ><ProxyObject id="o16" proxyId="00148"
    ><Property PAppNm="TMA1" PClass="Book" IsSIP="Y">S'The Adventures of Tom Sawyer by Mark Twain'%0ap1%0a.</Property
    ><Property PAppNm="TMA1" PClass="BookAuthorNames" IsSIP="N">(lp1%0aS'Mark Twain'%0ap2%0aa.</Property
    ><Property PAppNm="TMA1" PClass="BookAuthors" IsSIP="N">(lp1%0aS'00150'%0ap2%0aa.</Property
    ><Property PAppNm="TMA1" PClass="BookPublisher" IsSIP="N">(lp1%0aS'00143'%0ap2%0aa.</Property
    ><Property PAppNm="TMA1" PClass="BookPublisherName" IsSIP="N">S'Harper %26 Brothers'%0ap1%0a.</Property
    ><Property PAppNm="TMA1" PClass="BookTitle" IsSIP="N">S'The Adventures of Tom Sawyer'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o17" proxyId="00149"
    ><Property PAppNm="TMA1" PClass="Book" IsSIP="Y">S'The Adventures of Huckleberry Finn by Mark Twain'%0ap1%0a.</Property
    ><Property PAppNm="TMA1" PClass="BookAuthorNames" IsSIP="N">(lp1%0aS'Mark Twain'%0ap2%0aa.</Property
    ><Property PAppNm="TMA1" PClass="BookAuthors" IsSIP="N">(lp1%0aS'00150'%0ap2%0aa.</Property
    ><Property PAppNm="TMA1" PClass="BookTitle" IsSIP="N">S'The Adventures of Huckleberry Finn'%0ap1%0a.</Property
  ></ProxyObject

  ><ProxyObject id="o18" proxyId="00150"
    ><Property PAppNm="TMA1" PClass="PersonOrOrganization" IsSIP="Y">S'Mark Twain'%0ap1%0a.</Property
    ><Property PAppNm="TMA1" PClass="BooksAuthored" IsSIP="N">(lp1%0aS'00148'%0ap2%0aaS'00149'%0ap3%0aa.</Property
  ></ProxyObject

  ><IoMapsDict>(dp1%0aS'TMAs'%0ap2%0a(dp3%0aS'Vsys'%0ap4%0a(dp5%0asS'TMA1'%0ap6%0a(dp7%0assS'ProxyIds.mem2xml'%0ap8%0a(dp9%0aI128%0aI5%0asI129%0aI6%0asI130%0aI7%0asI131%0aI8%0asI132%0aI9%0asI133%0aI10%0asI134%0aI11%0asI135%0aI12%0asI136%0aI13%0asI137%0aI14%0asI143%0aI15%0asI148%0aI16%0asI149%0aI17%0asI150%0aI18%0asI124%0aI1%0asI125%0aI2%0asI126%0aI3%0asI127%0aI4%0assS'ProxyIds.xml2mem'%0ap10%0a(dp11%0aI1%0aI124%0asI2%0aI125%0asI3%0aI126%0asI4%0aI127%0asI5%0aI128%0asI6%0aI129%0asI7%0aI130%0asI8%0aI131%0asI9%0aI132%0asI10%0aI133%0asI11%0aI134%0asI12%0aI135%0asI13%0aI136%0asI14%0aI137%0asI15%0aI143%0asI16%0aI148%0asI17%0aI149%0asI18%0aI150%0ass.</IoMapsDict
></VersavantTopicMap>
