翟貴敏,董龍明
(1.南京市莫愁中等專業學校,南京 210017;2.陸軍駐南京地區軍事代表室,南京 210008)
基于元數據模型的房地產信息發布訂閱算法
翟貴敏1,董龍明2
(1.南京市莫愁中等專業學校,南京210017;2.陸軍駐南京地區軍事代表室,南京210008)
伴隨著Internet技術的快速發展,電子商務由傳統的客戶/服務器(C/S)模式轉變為瀏覽器/服務器(B/S)模式,通信交互方式也由客戶請求服務后等待獲得應答緊耦合同步的交互模式向松散異步通信模式轉變。當前,絕大多數房地產交易平臺都是采用B/S模式,具有以下特征:
(1)大規模:由于Internet是開放的,瀏覽者可能數量巨大,并且分布于世界,這需要服務器具有很好的負載承受能力。
(2)動態性:交易平臺的參與者往往不是固定不變的,可以動態地加入或退出。
(3)松散耦合:由于參與者具有動態性,就要求它們應當以一種松散耦合的方式,進行信息交互和協同工作。
為了適應電子商務新的特征帶來的挑戰,近年來人們相繼提出了多種技術,例如:Web Service[1]、網格[2]、語義Web[3]、P2P計算[4]、云計算[5]等技術,從不同的角度解決Internet環境下的問題,但均沒有很好地解決Internet環境中各參與者如何以松散耦合的方式進行信息交互的問題。耦合可以分為空間、時間和控制流三個方面進行劃分:
(1)空間耦合:信息交互的雙方是否需要彼此的地址信息。
(2)時間耦合:信息交互的雙方在交互過程中是否需要同時處于運行狀態。
(3)控制流耦合:信息交互的雙方是否必須要阻塞等待對方的應答。
隨著房地產行業的澎湃發展,新房、二手房、廉租房等各種房源不斷推出,購房者或租房者往往容易在這些浩瀚的房源信息面前變得不知所措,無從選擇。當前,各種房產交易平臺雖然推出各種基于關鍵詞的搜索服務,客戶能夠選擇例如:價格、地理位置、房屋大小等關鍵詞能夠過濾一些不符合條件的房源,能夠一定程度上減少房屋信息。但是,這種方式仍存在著一些問題,客戶每次登錄到房地產交易平臺需要重復選擇這些條件才能找到合適的房源,一方面不夠人性化,之前選擇的房源信息未能夠及時保存,客戶如果想查看已瀏覽過的房源需要重復選擇搜索條件;另一方面搜索引擎大量重復工作,增加了交易平臺后臺服務器的負載。當前,如何降低服務器的負載和及時提供合適的房屋信息給合適的客戶成為各種房屋交易平臺亟需解決的問題。
本文使用元數據模型技術對房地產行業房源和客戶需求進行統一描述,并建立元數據數據模型,作為房源發布者和需求者間的統一語義基礎,并基于該元數據模型設計相應的發布訂閱算法,作為房屋交易雙方信息發布和訂閱機制,支持房產信息的合理推送和實時發布。
房地產交易平臺中,基于Map的數據模型將發布事件和訂閱條件表示成為三元組形式(屬性名,謂詞,屬性值),例如:事件(價值,=,1000)表示:“價值等于1000元”的事件;訂閱條件(價值,<,1000)表示:“價值低于1000元”的訂閱條件。屬性名一般可以用領域有意義的概念表示,謂詞通常是一些邏輯運算符,如:“=”、“>”、“<”、“>=”、“<=”、“”、“”等。復合式訂閱條件,可以使用邏輯運算符表示,如:(坐落,,武昌區)&&(價值,<,100萬)表示坐落在武昌區并且總價低于100萬的房屋。
房屋描述信息越全面越好,并形成統一的規范,在發布后,發布訂閱系統能夠抽取出統一的數據模型,與不同的訂閱條件進行匹配,根據匹配度量方法對訂閱因子進行加權求得匹配度。房屋描述元數據模型可以分為核心概念模型和擴展概念模型。核心概念模型描述了6種房屋基本屬性信息,例如:坐落、樓層、戶型、面積、價值、建筑年代;擴展概念模型描述了房屋輔助配套信息,例如:交通、綠化、學區、裝修、生活設施等信息。基于該房屋元數據模型,房屋發布者可以發布房源的基本信息,如:05年精裝修,武昌區萬達廣場1棟204單元,面積為:100平,單價8000,雙地鐵口,中小學雙學區,出門為購物廣場。假如此時一個有意購房者作了如下訂閱房源時,可以這樣描述:“地理位置=武漢市/價值<9000”。由于武昌區屬于武漢市,發布訂閱系統應該能將該房源推薦給該客戶,但是,當前基于內容的發布訂閱系統單從字符串比較匹配的角度來講,不能解決這個語義匹配問題,因此,必須定義這些基本概念下等價或比較等各種運算關系。
核心概念模型中基本概念 “坐落”(英文名:Location)描述了房屋的地理位置,值一般為行政區域值,可以根據行政區域劃分定義坐落的關系,例如:中國?湖北省?武漢市?武昌區街道小區,逐級定位房屋位置,可以用謂詞 “?”表示值的取值關系,這樣通過謂詞“?”坐落值構成了自頂向下的樹形結構。概念“樓層”(英文名:Floor)描述了房屋所屬的樓層,值一般使用數字來表示,謂詞使用比較大小的數值運算符表示,如:“=”、“>”、“<”、“>=”、“<=”。基本概念“戶型”(英文名:Apartment)描述了房間客廳數目和朝向,可以使用約定格式來表示,“×室×廳,×室(廳)朝南”(×為數字)。基本概念“面積”(英文名:Area)描述了房屋的面積,值一般使用數字來表示,單位一般為平方米,謂詞使用比較大小的數值運算符。基本概念“價值”(英文名:Price)描述了房屋當前的價格,使用數值來表示,單位為萬元。基本概念“建筑年代”(英文名:Building year)描述了房屋的建造年代,通常使用數字表示,謂詞同樣使用數值比較大小的數值運算符。
擴展概念模型中的概念一般使用自然語言來描述,很難使用精確的量化數值來描述和比較,通常可以量化等級來表示。擴展概念“交通”(英文名:Traffic)可以使用交通便利和交通堵塞兩個極端表示,交通便利可以取值1,交通堵塞為0。擴展概念“綠化”(英文名:Green)表示房屋周圍綠化情況,同樣可以用數值0~1進行量化,1表示綠化達到深林覆蓋程度,0表示該小區基本上沒有綠化。擴展概念 “學區”(英文名:School District)表示房屋所在學區學校情況,可以將中小學按照市排名,進前三中小學的學區打分為1,學校一般的學區打分為0.5,周圍沒有學校就讀需要擇校的房屋學區分為0。擴展概念“裝修”(英文名:Decoration)表示房屋的裝修情況,精裝修的房屋裝修項為1,毛坯房的裝修項值取0。擴展概念“生活設施”(英文名:Living Facilities)表示房屋周圍生活便利程度,如菜市場、醫院、購物超市、健身房、理發、等生活必須設施,可以根據實際情況進行量化,同樣取值在0~1之間。
基于房屋元數據模型描述的事件和訂閱條件采用多索引數據結構存儲,如圖1和2所示。

圖1 事件的數據結構

圖2 訂閱的數據結構
其中各字段表示的含義如下:
concept:核心數據概念名或擴展數據概念名;
datatype:數據類型;
value:屬性值;
operator:謂詞;
index:事件或訂閱序號。
2.1房屋事件索引表
對于購房者而言,其首要感興趣的是房屋事件的基本概念屬性,賣房者通常情況下能夠精確描述房屋的基本信息,在事件索引表中,謂詞operator通常取值為等于,因此,事件索引表中謂詞可以省略,采用事件概念名作為一級索引,數據類型作為二級索引,屬性值作為三級索引。事件索引表的結構如圖3所示。

圖3 事件索引表結構
房屋描述越全面越好,事件發布對房屋的描述要求所有的核心概念屬性和擴展概念屬性全覆蓋,不能有缺省值。
2.2訂閱條件索引表
對訂閱條件索引表,采用邏輯運算符LOP(包括:關系與/、關系或/、等)作為一級索引以連接復合事件,采用關系運算符OP(例如:=、>、<、等)作為二級索引,數據類型作為三級索引,屬性值作為四級索引,在每個屬性值后面加上訂閱序號來標識訂閱號,訂閱條件索引表如圖4所示。
訂閱條件不需要對所有的概念屬性進行約束,可以根據客戶需求有選擇地指定概念屬性的約束條件,對原子約束條件內,使用關系運算符OP連接,復合事件是由多個原子約束條件通過邏輯運算符LOP構成的。

圖4 訂閱條件索引表結構
為了便于索引表的建立和維護,需要對屬性概念和值進行合理的排序,規則如下:
(1)事件索引表一級節點為屬性概念,按照核心概念和擴展概念的順序固定順序進行排列;
(2)事件索引表的二級節點為數據類型,不需要排序;
(3)事件索引表的三級節點為屬性值,對數值類型和分數類型按照值的升序進行排列,對字符串類型按照其字典順序排序;
(4)訂閱條件索引表中的一級節點為邏輯運算符,不需要排序;
(5)訂閱條件索引表中的二級節點為關系邏輯符,不需要排序;
(6)訂閱條件索引表中的三級和四級節點索引分布為屬性和數據類型,同樣不需要排序;
(7)事件索引表的五級節點為屬性值,對數值類型和分數類型按照值的升序進行排列,對字符串類型按照其字典順序排序。
2.3事件索引表的建立過程
對一個新發布的房源事件Pi,根據屬性描述在索引表中找到對應的索引值,如果找到對應的索引值,則將該房源事件的標識Pi加入對應索引值最后的索引值;如果沒找到,則根據二分查找法進行定位找到插入的位置,建立新的索引節點,并將該房源事件Pi加入到該值的后面。
2.4訂閱條件索引表的建立過程
(1)對一個新發布的訂閱條件Sj,首先判斷是原子訂閱條件還是復合訂閱條件,如果是原子訂閱條件,則跳至(2);如果是復合訂閱條件,則跳至(6);
(2)在所有二級節點中查找關系運算符,若找到對應的關系運算符,則跳至(3),否則,在二級節點中加入該關系運算符,并建立對應的子節點索引,本次建立索引過程結束;
(3)在三級節點中查找訂閱條件Sj的屬性概念,如找到對應的屬性概念,則跳至(4),否則在三級節點中加入該屬性概念名并建立其對應的子節點索引,本次建立索引過程結果;
(4)在五級節點中查找該屬性值,如找到對應的屬性值,跳至(5),否則在五級節點中加入該屬性值,并將訂閱條件Sj加入到該值的后面;
(5)在五級節點中根據二分查找法進行定位找到插入的位置,建立新的索引節點,并將該訂閱條件Sj加入到該值的后面;
(6)對邏輯運算符進行分解,在一級節點中進行查找,如找到對應的邏輯運算符,則跳至(2),否則,在一級節點中加入該關系運算符,并根據原子訂閱條件方法建立對應的子節點索引。
2.5索引表的維護
索引表的建立過程就是索引表中針對某個事件或訂閱條件的插入過程。在實際運行過程中,事件表和訂閱表不但需要插入,還需要維護。維護是指節點的修改或刪除。當購房者對購房條件進行修改時,就需要對訂閱事件索引表中的某些訂閱條件進行刪除或修改;當房源已經被購房者購買并成交后,需要在房源事件索引表中將該房源的ID進行刪除。
在房地產交易平臺中,存在著兩種發布訂閱情形:一是發布新房源時需要實時推薦給需要的購房者,稱之為:“一事件,多訂閱”;二是新購房者訂閱意向的房屋條件時系統得將已發布的滿足訂閱條件的房源推薦給購房者,稱之為“一訂閱,多事件”。
“一事件,多訂閱”要求事件代理服務器能夠將剛發布的房源事件對訂閱索引表進行匹配,找到所有和該事件匹配的訂閱條件。
輸入:房源事件描述P
輸出:所有和事件P匹配的訂閱條件S
(1)將事件P按照2.2.2節的算法加入事件索引表;
(2)在訂閱條件索引表中分別根據事件概念屬性名查找與之匹配的訂閱條件屬性名;
(3)若找到匹配的屬性名,則根據事件的數據類型查找與之匹配的訂閱條件數據類型;
(4)若找到匹配的數據類型,則根據事件的屬性值與訂閱條件屬性值進行比較;根據關系運算符規則,判斷事件的屬性值與訂閱條件屬性值求得真假值,如為真,則將該值下的訂閱事件號index加入到訂閱條件集合TSet;否則,將該值下的訂閱事件號index加入到訂閱條件集合FSet;
(5)從集合TSet中將FSet中元素剔除,剩下的集合S則為所有和事件P匹配的訂閱條件S。
“一訂閱,多事件”要求事件代理服務器能夠從事件索引表中找出所有滿足該訂閱條件的所有房源事件。
輸入:訂閱條件S
輸出:所有滿足該訂閱條件S的房源事件集合
(1)將訂閱條件S按照3.2.2節所描述的算法加入到訂閱條件索引表;
(2)判斷訂閱條件S是復合訂閱條件還是原子訂閱條件,如果是原子訂閱條件則跳轉到(3);如果是復合訂閱條件,根據邏輯運算符進行分解直至分解為原子訂閱條件,根據步驟(3)分別求得滿足原子訂閱條件的事件集合P;
(3)對原子訂閱條件,對每個事件索引表每個屬性,如果事件屬性名==S.屬性名/事件索引表二級節點的事件數據類型==S.數據類型,那么,對每屬性值滿足訂閱條件的關系運算符,則:將該事件加入到事件集合P;
(4)如果訂閱條件為原子訂閱條件,則集合P是所有滿足該訂閱條件S的房源事件集合;如果是復合原子事件,則求得多個滿足原子事件集合P,根據兩個原子訂閱條件Si和Sj間的邏輯運算符按照如下規則逐層求得集合Pi和Pj運算結果:
Ⅰ、Si和Sj間的邏輯運算符為:/,則P∩PiPj;
Ⅱ、Si和Sj間的邏輯運算符為:/,則P=Pi∪Pj。
為了解決面向Internet房地產交易平臺語義不一致性導致信息不能有效及時交互,本文提出了基于元數據模型的房地產信息發布訂閱算法,能夠作為房屋交易雙方信息的有效發布和訂閱,對解決當前電子商務系統信息不暢具有現實指導意義。
[1]Draluk V.Discovering Web Services:An Overview.In:Apers P,ed.Proc.of the 27th Int'l Conf.on Very Large Databases Roma:Morgan Kaufmann Publishers,2001:637-640.
[2]都志輝,陳渝,劉鵬,等.網格計算[M].北京:清華大學出版社,2002.
[3]Tim Berners2Lee[R],James Hendler and Ora Lassila.The Semantic Web.Scientific American May,2001.
[4]Stoica I,Morris R,Karger D.Chord:A Scalable Peer-to-Peer Lookup Service for Internet Applications[A],2001.
[5]Sims K.IBM Introduces Ready-to-Use Cloud Computing Collaboration Services Get Clients Started with Cloud Computing[OL].http:// www-03.ibm.com/press/us/en/pressrelease/22613.wss,2007.
Metadata Model;Publish/Subscribe Algorithm;Real Estate Trading Platform
Real Estate Information Publish-Subscribe Algorithm Based Metadata Model
1007-1423(2016)24-0020-05DOI:10.3969/j.issn.1007-1423.2016.24.005
翟貴敏(1982-),女,江蘇徐州人,碩士,講師,研究方向為:人工智能、軟件開發技術
2016-06-02
2016-08-21
發布訂閱算法能夠實現面向Internet信息的發布、發現和有效利用。針對房地產行業客戶需求的多樣化和描述的不一致性,提出房地產元數據模型,作為房地產信息統一描述的語義基礎,能夠實現信息的及時傳遞和有效推送。
元數據模型;發布訂閱算法;房地產交易平臺
董龍明(1982-),男,江蘇建湖人,博士,工程師,研究方向為為軟件工程、高可信軟件
Publish/subscribe algorithm can realize for Internet information publishing,discovery and effective use.For the diversification and description inconsistency of real estate industry customer needs,proposes a real estate metadata model as a basis for the semantic description of unified real estate information,enables timely and efficient transmission of information push.