Message Length vs Processing Speed

Dolin,Robert H Robert.H.Dolin at kp.ORG
Fri Dec 5 23:13:50 GMT 1997


Greetings XML-DEV list,

We've been working on an SGML (?XML) syntax for HL7 messages, and one of
the significant issues that has come us is the concern over message
length.

Here's a message I posted to the HL7 SGML/XML Listserver suggesting how
we might try to optimize the length/speed consideration. Would
appreciate any additional comments.

Thanks,
Bob

Bob Dolin, MD
Kaiser Permanente
Robert.H.Dolin at kp.org

-----------------------



>----------
>From: 	Dolin, Robert H
>Sent: 	Tuesday, December 02, 1997 11:24 PM
>To: 	'HL7-SGML'
>Cc: 	Dolin,Robert H
>Subject: 	RE: DATATAG minimization
>
>I appreciate all the feedback on this 'innocent' posting of mine.
>
>Perhaps I should point out that just because we are looking for optimal
>minimization techniques, there need not be anything in a DTD that
>precludes it from being XML-compliant - well, at least this is partly
>correct... Can a DTD be part XML-compliant and part non-XML-compliant,
>and can the non-XML-compliant part be used only by those who need to
>minimize message length??
>
>As an aside, there are several knowledgeable and respected members of
>the HL7 community who continue to feel that message length is of
>significant concern. So, where length is of major concern, we can
>examine minimization techniques. Where the use of XML or where message
>parsing speed is of major concern, fully normalized messages/documents
>can be passed.
>
>And as John Spinosa points out, there may be a tradeoff in message
>length versus speed of parsing/validating messages.
>
>Here's an example DTD based on the HL7 Version 3.0 Draft to show how we
>might possibly enable both - tiny messages where length is important,
>and XML-compliant messages where parsing speed is important:
>
>(This DTD uses SHORTREF minimization, and actually can make messages
>SMALLER then their ER7 representation. The specifications for the
>SHORTREF can be added to an existing (XML-Compliant) DTD without
>changing the portion of the DTD that was already there.)
>
>Example 1: A sample ER7 message (based on a draft of the HL7 Version 3
>specifications) (361 Characters)
>
>Example 2: A sample DTD based on the same message used for Example 1.
>
>Example 3: A fully normalized SGML message conveying the same
>information as in Example 1, based on the DTD in Example 2. (708
>Characters).
>
>Example 4: The same SGML message as in Example 3, minimized using
>SHORTREF. (354 characters).
>
>Example 5: The DTD from Example 2, along with the SHORTREF mappings
>appended, which allow an SGML parser to take the minimized message in
>Example 4 and convert it to the fully normalized message in Example 3.
>
>
> ------------------------------------------------------------------------
>Example 1: A sample ER7 message (based on a draft of the HL7 Version 3
>specifications) (361 Characters) [there may be errors in my use of the
>ER7 syntax]
>
>MSH|~
>PE|X703421|I||~
>BC|IPChoice|I~
>IPE|3|4~
>PADM|Emergency Dept|9708170430|BAPT|{Jones^Houston}~
>PTP|Dallas, TX|HS~
>BL|Acnt~
>PTBA|X746343|198768353|D3|{X3^Trauma}~
>NX~
>PTBA|M1|D|D4|{Martha^Steward}~
>EL|Acnt~
>PCP|ABX1234567|CONS||{Jimmie^Steward}~
>BL|PartProv~
>EP|~
>HCP|19283746X-879||D2|{DD-15264^SNM}~
>NX~
>EP|ISO 8879 SGML~
>HCP|X12-EDI-HL7-XML|1999|X12-13|{F-12345^SNM}~
>EL|Acnt~
>
>
> ------------------------------------------------------------------------
>Example 2: A sample DTD based on the same message used for Example 1.
>
><!Element A01 - - (PE)>
><!Element PE - - (ecd, ed, eipq, (IPE)?, PTP, EP+)>
><!Element IPE - - (adq, edq, PADM)>
><!Element PTP - - (asc, cc, PTBA*,PCP)>
><!Element EP - - (ptc, HCP)>
><!Element (HCP | PCP | PADM | PTBA) - - (pp, ad, arcd, arc)>
><!Element (ecd|ed|eipq|ptc|adq|edq|asc|cc|pp|ad|arcd) - - (#PCDATA)>
><!Element arc - - EMPTY>
><!Attlist arc
>	A CDATA #IMPLIED
>	B CDATA #IMPLIED>
>
> ------------------------------------------------------------------------
>Example 3: A fully normalized SGML message conveying the same
>information as in Example 1, based on the DTD in Example 2. (708
>Characters).
>
><A01><PE>
><ecd>X703421</ecd><ed>I</ed><eipq></eipq>
><IPE>
><adq>3</adq><edq>4</edq>
><PADM>
><pp>Emergency Dept</pp><ad>9708170430</ad><arcd>BAPT</arcd><arc
>A="Jones" B="Houston">
></PADM>
></IPE>
><PTP>
><asc>Dallas, TX</asc><cc>HS</cc>
><PTBA>
><pp>X746343</pp><ad>198768353</ad><arcd>D3</arcd><arc A="X3" B="Trauma">
></PTBA>
><PTBA>
><pp>M1</pp><ad>D</ad><arcd>D4</arcd><arc A="Martha" B="Steward">
></PTBA>
><PCP>
><pp>ABX1234567</pp><ad>CONS</ad><arcd></arcd><arc A="Jimmie"
>B="Steward">
></PCP></PTP>
><EP>
><ptc></ptc>
><HCP>
><pp>19283746X-879</pp><ad></ad><arcd>D2</arcd><arc A="DD-15264" B="SNM">
></HCP></EP>
><EP>
><ptc>ISO 8879 SGML</ptc>
><HCP>
><pp>X12-EDI-HL7-XML</pp><ad>1999</ad><arcd>X12-13</arcd><arc A="F-12345"
>B="SNM">
></HCP></EP></PE></A01>
>
> ------------------------------------------------------------------------
>Example 4: The same SGML message as in Example 3, minimized using
>SHORTREF. (354 characters).
>
><A01<PE>
>|X703421|I||
><IPE>
>|3|4|
><PADM>
>|Emergency Dept|9708170430|BAPT|<arc A=Jones B=Houston
><PTP>
>|Dallas, TX|HS|
><PTBA>
>|X746343|198768353|D3|<arc A=X3 B=Trauma
><PTBA>
>|M1|D|D4|<arc A=Martha B=Steward
><PCP>
>|ABX1234567|CONS||<arc A=Jimmie B=Steward
><EP>
>||
><HCP>
>|19283746X-879||D2|<arc A=DD-15264 B=SNM
><EP>
>|ISO 8879 SGML|
><HCP>
>|X12-EDI-HL7-XML|1999|X12-13|<arc A=F-12345 B=SNM
></A01>
>
> ------------------------------------------------------------------------
>Example 5: The DTD from Example 2, along with the SHORTREF mappings
>appended, which allow an SGML parser to take the minimized message in
>Example 4 and convert it to the fully normalized message in Example 3.
>
><!Entity ecd1 "<ecd>">
><!Entity ecd2 "</ecd><ed>">
><!Entity ed1 "</ed><eipq>">
><!Entity eipq1 "</eipq>">
><!Entity adq1 "<adq>">
><!Entity adq2 "</adq><edq>">
><!Entity edq1 "</edq>">
><!Entity asc1 "<asc>">
><!Entity asc2 "</asc><cc>">
><!Entity cc1 "</cc>">
><!Entity ptc1 "<ptc>">
><!Entity ptc2 "</ptc>">
><!Entity pp1 "<pp>">
><!Entity pp2 "</pp><ad>">
><!Entity ad1 "</ad><arcd>">
><!Entity arcd1 "</arcd>">
>
><!SHORTREF PE-sect "|" ecd1>
><!SHORTREF ecd-sect "|" ecd2>
><!SHORTREF ed-sect "|" ed1>
><!SHORTREF eipq-sect "|" eipq1>
><!SHORTREF IPE-sect "|" adq1>
><!SHORTREF adq-sect "|" adq2>
><!SHORTREF edq-sect "|" edq1>
><!SHORTREF PTP-sect "|" asc1>
><!SHORTREF asc-sect "|" asc2>
><!SHORTREF cc-sect "|" cc1>
><!SHORTREF EP-sect "|" ptc1>
><!SHORTREF ptc-sect "|" ptc2>
><!SHORTREF HCP-sect "|" pp1>
><!SHORTREF pp-sect "|" pp2>
><!SHORTREF ad-sect "|" ad1>
><!SHORTREF arcd-sect "|" arcd1>
>
><!USEMAP PE-sect PE>
><!USEMAP ecd-sect ecd>
><!USEMAP ed-sect ed>
><!USEMAP eipq-sect eipq>
><!USEMAP IPE-sect IPE>
><!USEMAP adq-sect adq>
><!USEMAP edq-sect edq>
><!USEMAP PTP-sect PTP>
><!USEMAP asc-sect asc>
><!USEMAP cc-sect cc>
><!USEMAP EP-sect EP>
><!USEMAP ptc-sect ptc>
><!USEMAP HCP-sect HCP>
><!USEMAP HCP-sect PCP>
><!USEMAP HCP-sect PADM>
><!USEMAP HCP-sect PTBA>
><!USEMAP pp-sect pp>
><!USEMAP ad-sect ad>
><!USEMAP arcd-sect arcd>
>
><!Element A01 - - (PE)>
><!Element PE - o (ecd, ed, eipq, (IPE)?, PTP, EP+)>
><!Element IPE - o (adq, edq, PADM)>
><!Element PTP - o (asc, cc, PTBA*,PCP)>
><!Element EP - o (ptc, HCP)>
><!Element (HCP | PCP | PADM | PTBA) - o (pp, ad, arcd, arc)>
><!Element (ecd|ed|eipq|ptc|adq|edq|asc|cc|pp|ad|arcd) - o (#PCDATA)>
><!Element arc - o EMPTY>
><!Attlist arc
>	A CDATA #IMPLIED
>	B CDATA #IMPLIED>
>
>>
>


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list