Monday, June 1, 2009

Some Questions Answered

Development Team Questions:
1. Explain the thought process around the decision to use XLinks/Relationships instead of nesting repetitive fields.
The model handles all kinds of relationships. Most of the relationships are 1:1 where the data carrying element (Data point) is contained within a parent element for example

<BORROWER>
<BORROWER_DETAIL>
<BorrowerBirthDate>1952-02-29</BorrowerBirthDate>
</BORROWER_DETAIL>
</BORROWER>

When 1:many relationships are needed we use containment of containers. A plural noun contains a collection of singular nouns.

<ASSETS>
<ASSET>
</ASSET>
</ASSETS>

XML is a tree model. it is not as robust as the relational model. Even the relational model requires an artifact that is not part of the problem domain model to represent many:many relationships.

On the MISMO Model we have an RELATIONSHIPS container for RELATIONSHIP expressions. We use, as one would in a DB model for many:many as well as other relationships not easily expressed in a tree.

For example in the problem domain a borrower has many assets and an assets may be owned by multiple parties. The RELATIONSHIP serves the purpose of connecting the BORROWER to the ASSET elements they own. an ASSET element may be the end point for multiple RELATIONSHIP elements.

RELATIONSHIP can also be used as an artifact to show things not alllowed in the tree model.

We looked at several candidates for the actual pointing. ID, IDREF served this purpose in V2. There is literature out there that indicates that an XML instance document full of ID IDREF pairs is is about the most expensive design you can use. It cannot be handled by streaming methods so the entire XML document must be read before any relationship can be resolved.

We selected xlink because:
  • it adds no burden to opening an XML document, even in a scheam ware tool.
  • Its similarity to RDF triples used to construct an ontology.
  • The efficient way in which XPATH and XQUERY expressions can use xlink attributes to find a node set.


2. How does Arcrole work? Is this a keyword? What are the values?

Arcrole in the arcdescription attrbute groups is just a URI. (Universal Resource Identifier) This is the cross over point to RDF, where everything is a URI.

Suppose we want to document the relationship between a borrower and the assests that are owned. The value of the Arcrole could be "IsOwnerOf".

A better practice is to include a statement of who has defined this arcrole. There are two choices for a URI, URN and the familiar URL. We decided to use URN format to prevent confusion of people seeing a URL and tring to browse to it.

urn:org:mismo:residential:2009:LDD:RoleBorrowerToAsset:IsOwnerof

The CDS committee is working through the ext expressions that will be in the MISMO vocabulary.

It is important to note that the power of URI allows any valid URI value to be used
http://fanniemae.com/LDD/RoleorrowerToAsset/IsExcludedFromReserves

is also valid.


3. Does Mismo transaction include an error response? Also, does it include header info (ie system login, sender identifier) and control info (totals, loan counts, etc)? We're thinking of our B2B process here.

MISMO is not a transaction model. We call it a message model. the message could be part of a SOAP implementation of a transaction as soap:body or as the data type of a parameter to a method in a SOAP transaction. It could be payload in any of the appropriate WS-* standards or even in a RESTful transaction or a simple POX implementation.

SOAP has an error reporting and authentication model already. as do other members of the WS-* stack and REST

4. Dev team would like to see a Mismo example of transaction XML.
One will be added here

No comments:

Post a Comment