[Rets-dev] Roll-up clarifications to some of the threads of the
last several days.
Paul Stusiak
pstusiak at falcontechnologies.com
Wed May 2 02:49:33 CDT 2007
Since we seem to have had some misconceptions presented as facts, I feel
that it is important to correct them.
The State of RETS 1
The state of the RETS 1 standard names informed many of the decisions
for RETS 2. Some of the concerns voiced were that there was no
consistency between the various MLS data sources and that there was too
much work needed to create a simple client. The simple client was
described as a client that needed access to a small number of fields
that were, hopefully, consistent across all MLS systems. These clients
may directly serve a human audience - IDX type systems used for Internet
marketing or they may be used as part of a larger system - Automated
Valuation or Current Market Analysis system, mapping system "mash-up" or
as an input to another system - collecting the seller name and contact
information to feed into the appraisal process or other service order.
RETS 1 did not meet this need. To access many parts of the information,
a metadata aware client was required, even some elements that should
have been well-known proved to be missing from the standard names. In
many cases, this awareness was gained by having a programmer examine the
information, contact the support staff to get the meaning of the element
and then to code against that information. Changes to the information
returned from the system frequently required changes to the code.
While many people who regularly attend the RETS meetings understand that
a metadata aware client is relatively straight-forward to implement,
many of the people who need to get to the RETS data are not easily able
to build such clients.
Additionally, there was no mechanism in RETS 1 to extend the system,
using an XML format, to return all the information described in the
metadata. Some locations provided their own extensions, but there was no
consistent method to extend the XML with RETS 1.
The second concern voiced, that it was difficult to build clients
against RETS 1 systems indicated that there were not enough tools. Each
client started from scratch, implementing the RETS 1 standard. While
there are some good sources of code available, many developers chose to
build it themselves. Customization was then applied to each systems that
the client connected to, hopefully limited to a small number of changes,
but in practice, the changes seemed to be predicated on the MLS system
vendor. Some vendors had a consistent implementation of RETS 1 across
all servers at all MLS sites while others placed that control in the
hands of the MLS, to determine when and if they should move to a more
recent version. Field differences also caused differences between sites
and systems, requiring customization at some level for each site.
Finally, for the purposes of this discussion - there are several other
concerns that have validity with RETS 1 that I will not discuss, there
was a concern that the community had spent too much time in creating
standards that were handled by other, existing standards rather than
focus on the domain specific concerns. Let existing standards for
transport, data description and security be handled by other standards
and weave those together into a new standard.
Some Choices Around RETS2
One possible solution to the problems described for RETS 1 was to use
more external standards to assist in the development. Most tool vendors
and platform vendors had invested heavily in Web Services. This
technology suite also had broad adoption in the enterprise space,
suggesting that the pool of knowledge would be very broad.
While the WS suite is fairly complete, including well defined discovery
and security, the level of expertise required to work with this suite
was more complex than that of RETS 1. Most, if not all of the developers
who attend RETS meetings and participate on the rets-dev list have
sufficient expertise to work with this suite of technology and have
voiced their support. There is a substantial body of developers who will
not fit into this category who have need to access the information
provided by RETS. This gap will be bridged by providing tools to further
abstract the details of RETS2 from these developers. While this is
important, it is not particularly germane to the discussion of schema.
The choice of Web Services strongly implies the use of XML Schema in the
delivery of the response and practically mandate the use of XML in that
response. While legacy and distributed database concerns are addressed
in the use of the DELIMITED formats, other users are encouraged to use
one of the payloads (schema) described by RETS2.
To be very clear, the RETS2 Service document, the document that
discusses the basic architecture and the 'transport' protocols has been
ratified and adopted by the RETS community. Part of the adoption
includes the use of schema as an integral part of the standard and of
compliance. In this community we are attempting to discuss the details
of the implementation of the schema.
RETS2 Schemas
Specifically, in RETS2, there are discovery schema that should permit a
service requestor (client) to determine which resources (payload types)
are available on a specific service as well as using the wsdl to
determine (and build stubs) the actual request types that are provided.
There are a large number of different payloads described for RETS2.
These are not considered an exhaustive list. Changing technology or
local conditions will generate new payloads that will be described
outside of those defined by RETS2, but the mechanism to create them is
present. It is also expected that many MLS sites will require extensions
to the defined payloads. Again there is a mechanism to extend the
payloads in a standard way. There is no mechanism for over-riding the
definitions in RETS2. It is not permitted.
Let me repeat the last couple of sentences so that everyone is clear.
Again there is a mechanism to extend the payloads in a standard way.
There is no mechanism for over-riding the definitions in RETS2. It is
not permitted. While it may appear possible, the validation step will
break in generated clients when the redefinition is encountered.
Specifically, over-riding in the same namespace is not a compliant act.
As part of compliance, as discussed and decided, the validation will be
against the reference and not the instance.
This has been discussed at length over the past two years. For those of
just now joining the conversation, many of these discussions occurred at
the various meetings, including teleconference calls. These were
announced through the rets-dev mailing list on an open conference line.
For those of you attempting to re-open these choices, you have rehashed
the same arguments that were rejected over the last several years.
You'll have to come up with new arguments to sway the community.
Reiterating your position is unlikely to change any minds.
The extension mechanism uses the standard XML Schema definition of using
a separate namespace to create these extensions. Please refer to the
simple example of extension that was posted prior to the last meeting.
Also note that there is an un-typed payload provided to help those who
need to see only a small set of the data, the IDX payloads.
For the majority of uses, stronger typing is needed to ensure that the
data actually has some meaning. Using an area value of 'HUGE' is not
possible for legal description or for CMA or AVM or regular Appraisal
purposes never mind trying to sell the property.
I would generally describe the best practices to be, assuming that the
MLS has decided that the data should be retained, taking the small set
of information that contains this type of bad information and re-map to
an extension field of localmls-area-comment or some such name since it
isn't really an area at all, but a comment about an area. Data in the
same field that has 'correct' information would pass through using the
rets standard name. There are several ways to do this remapping, either
at run-time or more likely, as part of a data mapping exercise. Other
solutions are possible than what I describe as a best practice. I do
claim that the method described in a thread earlier this week is not the
correct solution. Over-riding the definition will break clients.
There are several structural and naming problems with the existing
schema. While the discussion did not get to these points because of the
concerns of a few of the attendees. There seems to be an interest from
many groups in the industry to move to a stronger typing system. While
we can argue about the relative merits of typing and attempt to get 100%
of the information from 100% of the locations, there is value in moving
to stronger typing.
The current state of the schema is as a proposal. At least one
completely untyped schema has been presented. As has been pointed out in
private communications, there is a minimum set of typing needed to make
RETS2 schema useful. For those who need it, within RETS2 there is a
DELIMITED and ENCODED-DELIMITED formats to permit data replication. As
has been mentioned before, there seems to be some will in the MLS
community to move to better data standards. This is within the scope of
RETS and has been for as long as I have been involved, from RETS 1.0 if
not earlier.
Given the apparent willingness of the managers of the data to work
towards better data, a natural place to handle that improvement is
within the upcoming changes that are proposed for the RETS2 schema.
While it is possible that this will prove to be reaching too far, typing
and naming, it seems that this is an opportune time to make that
stretch. We should at least make the attempt.
We seem to be getting mired in technical details rather than moving
forward. At the absolute minimum, we need to be building some consensus
on the element names. Toward that end, I would suggest that those with
concerns about typing set that aside. Those with desire for greater
typing to ignore that for the time being and both to focus on gathering
the missing element names, clarifying element names and building the set
of items that should be in the schema. Rather than arguing about the
relative merits of pattern matching during the validation process, we
should be debating the division between
Properties/Listings/PublicRecords and similar discussions. What elements
belong where? Do we have all the needed schema? Where is the
element/attribute XXX? These and many other questions are where we need
to focus our attention.
I don't deny that the process of typing may be difficult. I do believe
that many things will fall out naturally. I do believe that there are
potential solutions to resolve a large number of cases of mis-typed
data. In the near term, however, let's get on with the job of
identifying element names.
--
Paul Stusiak
Falcon Technologies Corp.
More information about the Rets-dev
mailing list