Párování nemovitostí 1 Princip párování Pomocí kolekce atributů (cPairingAttribute) definujících nemovitost se definuje zdrojová nemovitost (oHitsource). Tato kolekce univerzálně popisuje všechny typy nemovitostí. Atributy z kolekce cPairingAttribute jsou dvojího typu. Povinné a nepovinné. Povinné atributy cPairingAttributeRequired musí být vždy definovány jako jediná hodnota (bez intervalu hodnot), která nesmí být NULL. Ostatní atributy (cPairingAttributeOptional - nepovinné) nemusí být definovány vůbec a mohou být reprezentovány hodnotou NULL. Klíčový atribut pro párování je atribut s názvem OfferTypeId, s hodnotami (nabídka nebo poptávka). Pro potřeby párování je definována množina různých nemovitostí cHittarget , které mají být spárovány se zdrojovou nemovitostí oHitsource podle níže uvedených pravidel. Výsledkem procesu párování je seznam nemovitostí cHitpaired, jako podmnožina cHittarget, splňující podmínky pro párování. Podmnožinou atributů cPairingAttribute jsou tzv. klíčové atributy cPairingAttributeKEY. Tyto atributy nabývají pouze diskrétních hodnot (z číselníků) a v procesu párování musí být identické jak v oHitsource tak v oHittarget a nesmí nabývat hodnot NULL ani na jedné straně páru (source-target)
1.1 Párovací toleranční okno Podmnožinu atributů z kolekce cPairingAttribute, které nejsou z kolekce cPairingAttributeRequired, definujeme jako cPairingAttributeOptional . Tyto atributy nabývají převážně libovolné hodnoty, vždy mohou mít hodnotu NULL. Obecně platným párovacím pravidlem pro tuto kolekci atributů je skutečnost, že hodnoty těchto atributů v páru (source-target) jsou identické nebo blízké. Míru "blízkosti" definuje pro každý atribut párovací okno (oAtributOptionalWindow), což je v podstatě interval nejnižší a nejvyšší povolené hodnoty 〈oAtributOptionalWindow.low, oAtributOptionalWindow.high〉. Aby byl považován určitý Atribut (páru source-target) za zpárovaný musí být splněna podmínka: oAtributOptionaltarget ϵ 〈oAtributOptionalWindow.low, oAtributOptionalWindow.high〉 kde hodnoty oAtributOptionalWindow.low, oAtributOptionalWindow.high jsou derivovány od hodnoty oAtributOptionalsource podle následujícho pravidla: oAtributOptionalWindow.low = oAtributOptionalsource ● (1 - oAtributOptionalWindow.px) oAtributOptionalWindow.high = oAtributOptionalsource ● (1 + oAtributOptionalWindow.px) kde hodnota oAtributOptionalWindow.px reprezentuje pro každý atribut z kolekce oAtributOptional procenta šířky tolerančního okna. Tyto hodnoty jsou určeny implicitně (automatická volba párování) nebo je nastavuje uživatel (manuální párování)
1.2 Lokalizační atributy nemovitosti Pro mechanizmus párování hraje speciální roli vymezení lokality a řídí se jinými pravidly než ostatní atributy cPairingAttributeOptional popsané výše. Atributy lokalizace nemovitosti (lokalizační atributy) jsou detailně popsány v tabulce níže. Atribut IdCountry je vždy povinný (kolekce cPairingAttributeRequired). Ostatní lokalizační atributy nemovitosti jsou z kolekce cPairingAttributeOptional . Dále platí následující sekvenční pravidla definující hierarchii významu jednotlivých lokalizačních atributů nemovitosti: 1.2.1
Párování s hierarchickými lokalizačními atributy
Pokud není definován atribut coordinate (tedy coordinate.X a coordinate.Y jsou NULL), jsou pro párování použity tzv. hierarchické lokalizační atributy. Ty jsou seřazeny podle významu lokalizace nemovitosti následovně: IdCountry → subRegion → municipality → street → building_cp nebo building_co. Pokud oHitsource některý z těchto atributů nemá (je NULL), s tím, že se test realizuje seshora od IdCountry, započne proces párování se všemi lokalizačními atributy od IdCountry až do atributu předešlému od tohoto atributu. Během párování se v oHittarget sledují všechny tyto lokalizační atributy. Pokud je v sledovaném oHittarget některý z těchto atributů NULL, je nemovitost pro párování diskvalifikována. Z výše uvedeného vyplývá pro oHitsource : • Pokud je atribut subRegion NULL, je lokalizace párována pouze na úrovni IdCountry. • Pokud je atribut municipality NULL, je lokalizace párována pouze na úrovni subRegion. • Pokud je atribut street NULL, je lokalizace párována pouze na úrovni municipality. • Pokud je atribut building_cp and building_co NULL, je lokalizace párována pouze na úrovni street.
příklad: pro oHitsource jsou definovány lokalizační atributy: (IdCounty=1, subRegion=1, municipality='Praha', street='Americká') pro cHittarget budou například vyřazeny: oHittarget : (IdCounty=1, subRegion=1, municipality='Praha', street='Lodecká') oHittarget : (IdCounty=1, subRegion=1, municipality='Brno', street='Americká') oHittarget : (IdCounty=1, subRegion=1, municipality=NULL, street='Americká') oHittarget : (IdCounty=1, subRegion=2, municipality='Praha', street='Lodecká') oHittarget : (IdCounty=1, subRegion=NULL, municipality='Praha', street='Lodecká')
1.2.2
Párování s lokalizační atributem coordinate
Pokud je definován atribut coordinate (coordinate.X a coordinate.Y jsou různý od NULL), je realizováno párování s jediným lokalizačním atributem coordinate. Všechny nemovitosti z cHittarget, které neleží v oblasti definované kružnici se středem coordinate.X a
2
coordinate.Y a poloměrem coordinate.radius nebudou zpárovány s oHitsource.
2 Pravidla párování Každá z nemovitostí oHittarget v kolekci cHittarget , která má být párovatelná s oHitsource, musí splňovat následující kritéria: a) atribut offerTypeId pro oHitsource musí být u všech zpárovaných oHittarget opačný b) atributy cPairingAttributeKEY pro oHitsource musí být u všech zpárovaných oHittarget identický c) všechny atributy cPairingAttributeRequired pro oHittarget nesmí být NULL d) všechny cPairingAttributeOptional v oHitsource, které nemají hodnotu NULL, nesmí mít hodnotu NULL také v oHittarget (v programu bude možné tuto podmínku volitelně ignorovat) e) všechny cPairingAttributeOptional (kromě Lokalizačních atributů) v oHitsource, které nemají hodnotu NULL, musejí splňovat podmínku: oAtributOptionaltarget ϵ 〈oAtributOptionalWindow.low, oAtributOptionalWindow.high〉. Pokud některý atribut nepadne do tolerančního okna, k zpárování (source-target) nedojde. Pokud je podmínka d) ignorována, pak jsou testovány pouze ty atributy z cPairingAttributeOptional , které jsou v oHittarget různé od NULL a zároveň jsou v oHitsource různé od NULL.¨ f) Lokalizační atributy se párují speciálním algoritmem popsaným v kapitole: "Lokalizační atributy nemovitosti "
3
oAtribute CategoryId
popis kategorie nemovitosti
oAtributRequired
oAtributKEY
oAtributOptional
oAtributOptional Window.px
ano
ano
-
-
oAtributRequired
oAtributKEY
oAtributOptional
ano ano ano ano ano ano ano -
ano ano ano ano ano ano ano ano ano ano ano ano
ano ano ano ano ano
podkategorie (další dělení Kategorie):
SubCategoryId
SubCategoryID
bit mask
Kategorie
CategoryID
význam
6 7 8 9 10 11 12 19 20 24 25 26
16 32 64 128 256 512 1024 1 2 1 2 4
byt
1 1 1 1 1 1 1 4 4 6 6 6
1+1 2+1 3+1 4+1 5+1 >5+1 Garsoniéra Stavební Ostatní Obchodní Sklad Výroba
parcela Komerční prostora
OfferTypeId
nabídka/poptávka
ano
-
-
-
CommercialModeId
prodej/pronájem
ano
ano
-
-
CountryId
kód země
ano
ano
-
-
kód pro okres nebo obvod (velké město) – číselník OctopusPro
-
ano
ano
-
jméno obce
-
ano
ano
-
Street
jméno ulice
-
ano
ano
-
BuildingNumber
číslo popisné, číslo orientační
-
ano
ano
-
X,Y souřadnice (RUIAN) Poloměr (radius) v km od středu (X,Y)
-
-
ano
-
lokalizační atributy
SubRegionId
Municipality
coordinate: coordinate.X coordinate.Y coordinate.radius
Area2
plocha nemovitosti
-
-
ano
35
cena nemovitosti
-
-
ano
35
OwnershipId
kód vlastnictví
-
ano
ano
-
FullText
volný text
-
ano
ano
-
Price
3
1) atribut je kalkulován v procesu párování pouze pro IdCategory (byt, dům) 2) atribut je v jednotkách m2 3) atribut je platný pro všechny kategorie, pro commercialMode=Prodej jsou hodnoty atributu absolutní, pro commercialMode=Pronájem, jsou hodnoty relativní, vztažené na 1 měsíc.