Implementing Versavant Applications $Revision: 1.3 $

# Overview

## The Definition of "Topic Map"

## Subject Proxies

## Property Classes, Property Instances, and Property Values

## The Three Ways A Property Instance Can Get Its Value

### 1. Original Population

### 2. Merging of Property Values

### 3. Conferral

## Topic Map Applications (TMAs)

## The Versavant Object; an overview of Versavant services

# Inspecting and Auditing Versavant Topic Maps

# Creating Versavant Topic Maps

# Interchanging Versavant Topic Maps in XML

## versavant-A.dtd

## implementing other topic map interchange formats

# Rendering Versavant Topic Maps

# The TopicMap Class

# The ProxyObject Class

# The PropertyInstance Class

# The PropertyClass Class

# The ValueType Class

# The TMA Class

# Disclosing Versavant TMAs

## Overview

### Disclosing a TMA in General: ISO/IEC 13250-5

### Disclosing a TMA in Versavant: TMA configuration files

## Writing a TMA configuration file - versavantTMA.dtd

### <ValueType> elements

#### ValueTypeName attribute

#### <ValueIsNotOfType__> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a value type?

#### <InstanceOf__ValueTypeToXMLContentString> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a value type?

#### <XMLContentStringToInstanceOf__ValueType> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a value type?

### <PropertyClass> elements

#### PropertyClassName attribute

#### ValueType attribute

#### <Add__PropToOverheadDict> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <Remove__PropFromOverheadDict> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <ValueIsInvalidFor__Property> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <Merge__PropertyValues> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <ValuesOf__PropertyInstancesAreSignificantlyDifferent> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <ContextOf__PropertyIsInvalid> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <MergeProxiesBecause__PropertyInstancesSpecifySameSubject> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <ProxiesOfSubjectIdentifiedBy__Value> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

#### <UpdateProxyReferencesIn__Value> function declaration elements

##### What does this kind of function do?

##### What happens if I don't specify one of these functions for a property class?

### <ConferralRule> function declaration elements

#### What does this kind of function do?

#### What happens if I don't specify any of these functions?

### Attributes of all function declaration elements

#### functionModuleFilePath attribute

#### functionName attribute

#### functionExtraArgsString attribute

### <Desc> elements

# Versavant TMA Implementation Functions

## Introduction

### Function classes and suggested naming conventions

## Implementing the support functions for a specialized value type

### instance of ValueIsNotOfType__ function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of InstanceOf__ValueTypeToXMLContentString function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of XMLContentStringToInstanceOf__ValueType function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

## Implementing the support functions for a specialized property class

### instance of Add__PropToOverheadDict function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of Remove__PropFromOverheadDict function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of ValueIsInvalidFor__Property function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of Merge__PropertyValues function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of ValuesOf__PropertyInstancesAreSignificantlyDifferent function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of ContextOf__PropertyIsInvalid function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of MergeProxiesBecause__PropertyInstancesSpecifySameSubject function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of ProxiesOfSubjectIdentifiedBy__Value function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

### instance of UpdateProxyReferencesIn__Value function class

#### Purpose: When and Why does Versavant call this kind of function?

#### Arguments always passed by Versavant

#### Requirements for all implementations

#### Values available for extra arguments in Versavant's calling environment(s)

## Implementing a conferral rule function

### Purpose: When and Why does Versavant call this kind of function?

### Arguments always passed by Versavant

### Requirements for all implementations

### Values available for extra arguments in Versavant's calling environment(s)

# Examples of TMA implementation functions

# Discussions of TMA design philosophies

# "Bridging" TMAs

# Annex: The Vsys TMA (Versavant's built-in "system TMA" for TMA subjects)

Last modified: Mon Jun 27 14:13:53 EDT 2005