基于元数据模型的房地产信息发布订阅算法

2016-10-17 01:13翟贵敏董龙明
现代计算机 2016年24期
关键词:数据模型房源房屋

翟贵敏,董龙明

(1.南京市莫愁中等专业学校,南京 210017;2.陆军驻南京地区军事代表室,南京 210008)

基于元数据模型的房地产信息发布订阅算法

翟贵敏1,董龙明2

(1.南京市莫愁中等专业学校,南京210017;2.陆军驻南京地区军事代表室,南京210008)

0 引言

伴随着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)控制流耦合:信息交互的双方是否必须要阻塞等待对方的应答。

随着房地产行业的澎湃发展,新房、二手房、廉租房等各种房源不断推出,购房者或租房者往往容易在这些浩瀚的房源信息面前变得不知所措,无从选择。当前,各种房产交易平台虽然推出各种基于关键词的搜索服务,客户能够选择例如:价格、地理位置、房屋大小等关键词能够过滤一些不符合条件的房源,能够一定程度上减少房屋信息。但是,这种方式仍存在着一些问题,客户每次登录到房地产交易平台需要重复选择这些条件才能找到合适的房源,一方面不够人性化,之前选择的房源信息未能够及时保存,客户如果想查看已浏览过的房源需要重复选择搜索条件;另一方面搜索引擎大量重复工作,增加了交易平台后台服务器的负载。当前,如何降低服务器的负载和及时提供合适的房屋信息给合适的客户成为各种房屋交易平台亟需解决的问题。

本文使用元数据模型技术对房地产行业房源和客户需求进行统一描述,并建立元数据数据模型,作为房源发布者和需求者间的统一语义基础,并基于该元数据模型设计相应的发布订阅算法,作为房屋交易双方信息发布和订阅机制,支持房产信息的合理推送和实时发布。

1 房地产元数据模型

房地产交易平台中,基于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之间。

2 发布订阅算法

基于房屋元数据模型描述的事件和订阅条件采用多索引数据结构存储,如图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。

3 结语

为了解决面向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.

猜你喜欢
数据模型房源房屋
基于区块链的微网绿电交易数据模型研究
UMAMMA历史房屋改造
房屋
从一句广告词看房地产经纪的本质
基于Pro/E 的发射装置设计数据快速转化方法
转租房屋,出现问题由谁负责?
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
奇怪又有趣的房屋