OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-architecture message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Automating ebXML Search Interfaces


*****************************************************************************
The information in this email is confidential and may be legally privileged.
It is intended solely for the addressee. Access to this email by anyone else
is unauthorized. 

If you are not the intended recipient, any disclosure, copying, distribution
or any action taken or omitted to be taken in reliance on it, is prohibited
and may be unlawful. When addressed to our clients any opinions or advice
contained in this email are subject to the terms and conditions expressed in
the governing KPMG client engagement letter.         
*****************************************************************************
My apologies if the last such document did not read correctly. The embedded HTML doc. should read correctly.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 

AUTOMATIC GENERATION OF ebXML SEARCH INTERFACES

John Petit

KPMG XMLfs Group and 4thWORLD Telecom

Within the ebXML specification we need to provide a clear way for users to search for information across distributed repositories. This means that the ebXML spec should provide for the automatic generation of search interfaces. Independent search engines need to interpret an ebXML DTD and present a query interface based on that DTD. The question is: how is the search engine to interpret the DTD and build an intelligent interface based on that DTD? Simply listing every element in the DTD is one approach, but an ugly one. Many DTDs will contain numerous elements which would only clutter and confuse a search interface. There is no way to determine from an aesthetic and human interface point of view what such an interface should look like. Therefore, I propose that we add an optional processing instruction within ebXML schemas and DTDs for an XSL stylesheet that when processed would display a search interface. In this way, those that design DTDs could also design the search interface for the documents associated with that DTD. The DTD and, optionally, the XSL stylesheet would be uploaded to the registry.  Applications accessing the registered DTD would then have the option of processing the stylesheet.

It should be quite evident that simply analyzing the real estate DTD below (figure 2) would not generate an interface such as the one in figure 1. In this particular interface the designer has provided a mechanism by which the interface can expand to allow multiple search parameters across multiple geographical areas (the “Additional Group” button). In addition, most of the items in this interface are constrained by pop-up menus. For example, clicking on the country would display a list of countries that utilize the DTD. That in turn would determine the format for the following buttons such as state. In this case, the country is the USA, so the state pop up would list the states. Such constraint is important for accurate matches. Clearly it would be next to impossible to produce such an intelligent interface based on the DTD alone. JavaScript (for example) could provide the programming horsepower behind such interfaces.

figure 1.  Real Estate Search Interface

 

figure 2 Real Estate Listing DTD 

<!--   Parameter Entities  --> 
  <!ENTITY % OTHER "OTHER"> 
  <!ENTITY % NAME "NAME"> 
  <!ENTITY % ACZ "ADDRESS?,CITY?,ZIP?"> 
  <!ENTITY % SC "STATE?,COUNTRY?"> 
  <!ENTITY % PFW "PHONE?,FAX?,WEB?"> 
  <!ENTITY % BA "BUILDING-AREA|ADD-INFO"> 

  <!--   Notation Declarations   --> 
   <!--  Should point to media viewers at a universal site   --> 
  <!NOTATION gif SYSTEM "gview.exe"> 
  <!NOTATION jpeg SYSTEM "jview.exe"> 
  <!NOTATION mov SYSTEM "Movie Player"> 

  <!ELEMENT RESIDENTIAL-LISTING (GENERAL,FEATURES,FINANCIAL,REMARKS,CONTACTS) > 
  <!ATTLIST RESIDENTIAL-LISTING 
  VERSION CDATA #FIXED "02241999" > 
 

  <!-- ***************************************************************  --> 
  <!ELEMENT GENERAL 
     (IMAGE*,APN?,MLS?,TYPE,PRICE,WHEN-BUILT,LOCATION,STRUCTURE,DATES,LAND-AREA,STATUS,(%OTHER;)?,TERMS*) 
  > 
  <!--The IMAGE element does not include X and Y positions for the placement will more than--> 
  <!--likely be handled by XSL or CSS.--> 
  <!ELEMENT IMAGE EMPTY > 
  <!ATTLIST IMAGE 
  WIDTH    CDATA    #REQUIRED 
  HEIGHT    CDATA    #REQUIRED 
  SRC    CDATA    #REQUIRED 
  NAME CDATA #IMPLIED 
  DESCRIPTION CDATA #IMPLIED> 

  <!ELEMENT APN (#PCDATA) > 
  <!ATTLIST APN 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT MLS (MLS-CODE,MLS-SOURCE?) > 

  <!ELEMENT MLS-CODE (#PCDATA) > 
  <!ATTLIST MLS-CODE 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT MLS-SOURCE (%NAME;,%PFW;) > 
  <!ATTLIST MLS-SOURCE 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT TYPE (#PCDATA) > 
  <!ATTLIST TYPE
  TITLE CDATA #IMPLIED> 

  <!ELEMENT PRICE (#PCDATA) > 
  <!ATTLIST PRICE 
  UNITS    (PESO|USDOLLAR|CANDOLLAR) "USDOLLAR" > 

  <!ELEMENT WHEN-BUILT (ORIGINAL-STRUCTURE, IMPROVEMENTS*) > 

  <!ELEMENT ORIGINAL-STRUCTURE (#PCDATA) >
  <!ATTLIST ORIGINAL-STRUCTURE
  DATE    CDATA    #REQUIRED> 

  <!ELEMENT IMPROVEMENTS (#PCDATA) >
  <!ATTLIST IMPROVEMENTS
  DATE    CDATA    #REQUIRED> 

  <!ELEMENT LOCATION (%ACZ;,ROUGH?) > 
  <!ATTLIST LOCATION 
  COUNTRY    CDATA    #REQUIRED 
  STATE    CDATA    #REQUIRED 
  COUNTY    CDATA    #REQUIRED 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT ROUGH (#PCDATA) > 
  <!ATTLIST ROUGH
  TITLE CDATA #IMPLIED> 

  <!ELEMENT STRUCTURE ((NUM-BEDS|NUM-BATHS|SUPER-STRUCTURE|%BA;)*) > 

  <!ELEMENT NUM-BEDS (#PCDATA) > 

  <!ELEMENT NUM-BATHS (#PCDATA) > 

  <!-- If the property in question is a condo or such, SUPER-STRUCTURE is used --> 
  <!-- to describe the building containing that property --> 
  <!ELEMENT SUPER-STRUCTURE ((NUM-UNITS|NUM-FLOORS|%BA;)*) > 

  <!ELEMENT BUILDING-AREA (#PCDATA) > 
  <!ATTLIST BUILDING-AREA 
  UNITS    (SQ-METRES|SQ-FEET) "SQ-FEET" > 

  <!ELEMENT NUM-UNITS (#PCDATA) > 

  <!ELEMENT NUM-FLOORS (#PCDATA) > 

  <!ELEMENT ADD-INFO (#PCDATA)
  <!ATTLIST ADD-INFO
  TITLE CDATA #IMPLIED> 

  <!ELEMENT DATES (LISTING-DATE,LAST-MODIFIED,EXPIRATION-DATE) > 

  <!ELEMENT LISTING-DATE (#PCDATA) > 

  <!ELEMENT LAST-MODIFIED (#PCDATA) > 

  <!ELEMENT EXPIRATION-DATE (#PCDATA) > 

  <!ELEMENT LAND-AREA (#PCDATA) > 
  <!ATTLIST LAND-AREA 
  UNITS    (HECTARES|ACRES) "ACRES" > 

  <!ELEMENT STATUS (#PCDATA) > 

  <!ELEMENT TERMS (#PCDATA) > 
  <!ATTLIST TERMS 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 
 
 

  <!-- ***************************************************************  --> 
  <!ELEMENT FEATURES (DISCLOSURES,UTILITIES,EXTRAS,CONSTRUCTION,ACCESS,(%OTHER;)?) > 

  <!ELEMENT DISCLOSURES (#PCDATA) >
  <!ATTLIST DISCLOSURES
  TITLE CDATA #IMPLIED> 

  <!ELEMENT UTILITIES (#PCDATA) >
  <!ATTLIST UTILITIES
  TITLE CDATA #IMPLIED> 

  <!ELEMENT EXTRAS (#PCDATA) >
  <!ATTLIST EXTRAS
  TITLE CDATA #IMPLIED> 

  <!ELEMENT CONSTRUCTION (#PCDATA) >
  <!ATTLIST CONSTRUCTION
  TITLE CDATA #IMPLIED> 

  <!ELEMENT ACCESS (#PCDATA) >
  <!ATTLIST ACCESS
  TITLE CDATA #IMPLIED> 
 
 
 
 

  <!-- ***************************************************************  --> 
  <!ELEMENT FINANCIAL 
  (ASSUMABLE,OWNER-CARRY,ASSESSMENTS,DUES,TAXES,LENDER,EARNEST,DIRECTIONS,(%OTHER;)?) > 

  <!ELEMENT ASSUMABLE (#PCDATA) > 
  <!ATTLIST ASSUMABLE 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT OWNER-CARRY (#PCDATA) > 
  <!ATTLIST OWNER-CARRY 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT ASSESSMENTS (#PCDATA) > 
  <!ATTLIST ASSESSMENTS 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT DUES (#PCDATA) > 
  <!ATTLIST DUES 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT TAXES (#PCDATA) > 
  <!ATTLIST TAXES 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT LENDER (#PCDATA) > 
  <!ATTLIST LENDER 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT EARNEST (#PCDATA) > 
  <!ATTLIST EARNEST 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT DIRECTIONS (#PCDATA) > 
  <!ATTLIST DIRECTIONS 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 
 
 
 

  <!-- ***************************************************************  --> 
  <!--This is the freeform desciption section, the general impressions of the property--> 
  <!--The aspects of the property that make it special. The PROPERTY-REFERENCE attribute--> 
  <!--is for naming the property (by what title do you want people to refer to the property). --> 
  <!ELEMENT REMARKS (#PCDATA) > 
   <!ATTLIST REMARKS 
  PROPERTY-REFERENCE CDATA #IMPLIED> 
 
 

  <!-- ***************************************************************  --> 
  <!ELEMENT CONTACTS (COMPANY?,AGENT+,OWNER?,TENANT?,COMMISSION+) > 

  <!ELEMENT COMPANY (%NAME;,%ACZ;,%SC;,%PFW;) > 

  <!ELEMENT AGENT (%NAME;,%ACZ;,%SC;,%PFW;) > 

  <!ELEMENT OWNER (%NAME;,%ACZ;,%SC;,%PFW;) > 
  <!ATTLIST OWNER 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT TENANT (%NAME;,%ACZ;,%SC;,%PFW;) > 
  <!ATTLIST TENANT 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT COMMISSION (RECIPIENT,AMOUNT) > 
  <!ATTLIST COMMISSION 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT RECIPIENT (#PCDATA) > 
  <!ATTLIST RECIPIENT 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT AMOUNT (#PCDATA) >
  <!ATTLIST AMOUNT 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" > 

  <!ELEMENT OTHER (#PCDATA) > 
  <!ATTLIST OTHER 
  SECURITY  (MLS-Only|Restricted|Public) "MLS-Only" 
  TITLE CDATA #IMPLIED  >

  <!ELEMENT NAME (#PCDATA) > 

  <!ELEMENT ADDRESS (#PCDATA) > 
  <!ATTLIST ADDRESS 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT CITY (#PCDATA) > 
  <!ATTLIST CITY 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT ZIP (#PCDATA) > 
  <!ATTLIST ZIP 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT STATE (#PCDATA) > 
  <!ATTLIST STATE 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT COUNTRY (#PCDATA) > 
  <!ATTLIST COUNTRY 
  SECURITY  (MLS-Only|Restricted|Public) "Public" > 

  <!ELEMENT PHONE (#PCDATA) > 

  <!ELEMENT FAX (#PCDATA) > 

  <!ELEMENT WEB (E-MAIL,SITE) > 

  <!ELEMENT E-MAIL (#PCDATA) > 

  <!ELEMENT SITE (#PCDATA) > 
 

  <!ENTITY lt     "&#38;#60;"> 
  <!ENTITY gt     "&#62;"> 
  <!ENTITY amp    "&#38;#38;"> 
  <!ENTITY apos   "&#39;"> 
  <!ENTITY quot   "&#34;">

 

 

 

Cheers, John Petit
KPMG
XMLfs Team
Office: 970 728 9468
Mobile: 312 961 8956

 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]

Search: Match: Sort by:
Words: | Help


Powered by eList eXpress LLC