forked from edward/owl-map
Avoid matching tram stops with buildings
This commit is contained in:
parent
ed113d8d71
commit
238fbeef05
|
@ -174,6 +174,8 @@ def get_item_tags(item):
|
||||||
osm_list = set()
|
osm_list = set()
|
||||||
|
|
||||||
skip_isa = {row[0] for row in database.session.query(model.SkipIsA.item_id)}
|
skip_isa = {row[0] for row in database.session.query(model.SkipIsA.item_id)}
|
||||||
|
if item.is_tram_stop():
|
||||||
|
skip_isa.add(41176) # building (Q41176)
|
||||||
|
|
||||||
seen = set(isa_list) | skip_isa
|
seen = set(isa_list) | skip_isa
|
||||||
while isa_items:
|
while isa_items:
|
||||||
|
|
|
@ -45,7 +45,6 @@ class Item(Base):
|
||||||
def wd_url(self):
|
def wd_url(self):
|
||||||
return f"https://www.wikidata.org/wiki/{self.qid}"
|
return f"https://www.wikidata.org/wiki/{self.qid}"
|
||||||
|
|
||||||
|
|
||||||
def get_claim(self, pid):
|
def get_claim(self, pid):
|
||||||
return [i["mainsnak"]["datavalue"]["value"] if "datavalue" in i["mainsnak"] else None
|
return [i["mainsnak"]["datavalue"]["value"] if "datavalue" in i["mainsnak"] else None
|
||||||
for i in self.claims.get(pid, [])]
|
for i in self.claims.get(pid, [])]
|
||||||
|
@ -145,13 +144,18 @@ class Item(Base):
|
||||||
|
|
||||||
return dict(d) or None
|
return dict(d) or None
|
||||||
|
|
||||||
|
def get_isa_qids(self):
|
||||||
|
return {v["id"] for v in self.get_claim("P31") if v}
|
||||||
|
|
||||||
def is_street(self):
|
def is_street(self):
|
||||||
street_items = {
|
street_items = {
|
||||||
'Q79007', # street
|
'Q79007', # street
|
||||||
'Q21000333', # shopping street
|
'Q21000333', # shopping street
|
||||||
}
|
}
|
||||||
return any(v and v["id"] in street_items for v in self.get_claim("P31"))
|
return bool(street_items & self.get_isa_qids())
|
||||||
|
|
||||||
|
def is_tram_stop(self):
|
||||||
|
return 'Q2175765' in self.get_isa_qids()
|
||||||
|
|
||||||
# class Claim(Base):
|
# class Claim(Base):
|
||||||
# __tablename__ = "claim"
|
# __tablename__ = "claim"
|
||||||
|
|
Loading…
Reference in a new issue