Friday, July 16, 2010

Listing Object Model (LOM) Core

LOM Core 25 Elements

Intro



Lately my interests have gravitated toward web services and marking up listing information to xml. However, another inefficiency within the Real Estate Industry is how listing information is distributed to web endpoints. Within HTML, Word, or an Excel spreadsheet, I cringe at the ways listing information is being sent from an end user to service provider or service provider to service provider. Remember I'm talking old school here, average age is in the 50's and climbing.




So with that stomach churning thought in 3d motion, I thought to myself wouldn't it be great to have a minimalistic shortlist of elements to markup a listing for Grandma, a tween, or anyone else in need of a simple service like this. In the past, I've used Dublin Core, a specification of 15 meta tags for semantically describing documents. Thinking to myself, "LOM Core must be very simple like Dublin Core because simple always wins on the net."




Without hesitation, I proceeded to diagram (see above) a list of essential words or elements which would describe a lowest common denominator real estate listing. I came up with the following at first, in no particular order (well alphabetical):



LOM Core 25 Elements




  • address

  • agent

  • beds

  • baths

  • city

  • contact

  • country

  • description

  • email

  • firstname

  • lastname

  • listing

  • location

  • organization

  • owner

  • phonenumber

  • postalcode

  • price

  • size

  • state

  • status

  • style

  • squarefeet

  • squaremeters

  • type



I stopped at 25 to keep it as simple as possible. Obviously, I could have kept going but simple would have easily morphed into complex.



Use Cases



Since we now have our shortlist of elements, we need a business purpose or use case. I came up with five, initially, but of course we are not limited to only these.



1. For Sale By Owner Lisiting


[sourcecode language="css"]
<?xml version="1.0" encoding="UTF-8"?>
<listing>
<type>residential</type>
<style>Single Family</style>
<beds>3</beds>
<baths>2</baths>
<size>
<squarefeet>2000</squarefeet>
</size>
<location>
<address>1234 My Street</address>
<city>Orlando</city>
<state>FL</state>
<postalcode>32801</postalcode>
<country>US</country>
</location>
<description>Modern and functional.</description>
<status>active</status>
<price>$150,000</price>
<contact>
<owner>
<firstname>John</firstname>
<lastname>Smith</lastname>
<phonenumber>555-3333</phonenumber>
<email>jsmith@john.smith.name</email>
</owner>
</contact>
</listing>
[/sourcecode]

2. Residential Agent Listing


[sourcecode language="css"]
<?xml version="1.0" encoding="UTF-8">
<listing>
<type>residential</type>
<style>Single Family</style>
<beds>4</beds>
<baths>2</baths>
<size>
<squarefeet>3000</squarefeet>
</size>
<location>
<address>5678 Your Street</address>
<city>Orlando</city>
<state>FL</state>
<postalcode>32801</postalcode>
<country>US</country>
</location>
<description>Family size.</description>
<status>active</status>
<price>190,500</price>
<contact>
<agent>
<firstname>Jane</firstname>
<lastname>Doe</lastname>
<phonenumber>555-5555</phonenumber>
<email>jdoe@jane.doe.name</email>
<organization>Jane Doe Realty</organization>
</agent>
</contact>
</listing>
[/sourcecode]

3. Commercial Owner Listing


[sourcecode language="css"]
<?xml version="1.0" encoding="UTF-8"?>
<listing>
<type&gt;commercial</type>
<style>office</style>
<size>
<squarefeet>3000</squarefeet>
</size>
<location>
<address>1010 Biz Way Suite 200</address>
<city>Orlando</city>
<state>FL</state>
<postalcode>32801</postalcode>
<country>US</country>
</location>
<description>Build to suit office space.</description>
<status>active</status>
<price>$100/sqft</price>
<contact>
<owner>
<firstname>Bob</firstname>
<lastname>Johnson</lastname>
<phonenumber>555-9999</phonenumber>
<email>bjohnson@bob.johnson.name</email>
</owner>
</contact>
</listing>
[/sourcecode]

4. Commercial Agent Listing


[sourcecode language="css"]
<?xml version="1.0" encoding="UTF-8"?>
<listing>
<type>commercial</type>
<style>office</style>
<size>
<squarefeet>4000</squarefeet>
</size>
<location>
<address>2020 Easy Street Suite 300</address>
<city>Orlando</city>
<state>FL</state>
<postalcode>32801</postalcode>
<country>US</country>
</location>
<description>Plenty of space for cubicles. Build to suit.</description>
<status>active</status>
<price>$200/sqft</price>
<contact>
<agent>
<firstname>Jen</firstname>
<lastname>Wright</lastname>
<phonenumber>555-7777</phonenumber>
<email>jwright@jen.wright.name</email>
<organization>Wright Realty</organization>
</agent>
</contact>
</listing>
[/sourcecode]

5. International Listing


[sourcecode language="css"]
<?xml version="1.0" encoding="UTF-8"?>
<listing>
<type>commercial</type>
<style>bank</style>
<size>
<squaremeters>1000</squaremeters>
</size>
<location>
<address>7 Picardy Place</address>
<city>Edinburgh</city>
<postalcode>EH1 3JT</postalcode>
<country>Scotland</country>
</location>
<description>Former bank branch, build to suit</description>
<status>active</status>
<price>300EUR/sqmt</price>
<contact>
<agent>
<firstname>Will</firstname>
<lastname>Jones</lastname>
<phonenumber>0131 5554343</phonenumber>
<email>wjones@will.jones.name</email>
<organization>Jones Realty</organization>
</agent>
</contact>
</listing>
[/sourcecode]

Summary



In sum, LOM Core is a simplified shortlist of 25 core real estate elements allowing anyone to markup a residential or commercial listing. The examples above are soley for exercise purposes, but as you can see LOM can adapt to different types of listings quite effortlessly. The next step is to solidify schemas (DTD, XML Schema, RelaxNG) for validating followed by creating a web-based tool using a form for users to enter in their listing elements to create a LOM Core listing on the fly. Users could then send or copy and paste the LOM Core listing and distribute and transform as needed.



--Corey