mirror of
https://github.com/Babibubebon/gbizinfo-lod.git
synced 2024-09-22 22:54:21 +09:00
292 lines
12 KiB
Python
292 lines
12 KiB
Python
from rdflib import URIRef
|
|
|
|
from ..namespace import *
|
|
from . import CSV2RDFMapper, Literal, _TripleMapType, bpo
|
|
|
|
|
|
class GbizInfoHojinMapper(CSV2RDFMapper):
|
|
"""法人情報・法人基本情報"""
|
|
|
|
@property
|
|
def graph(self) -> URIRef:
|
|
return URIRef("http://hojin-info.go.jp/graph/hojin")
|
|
|
|
@staticmethod
|
|
def map_to_triples(row: dict[str, str]) -> list[_TripleMapType]:
|
|
s = HJ_DATA[row["ID-識別値"]]
|
|
ss = HJ_BASIC[row["ID-識別値"]]
|
|
|
|
triples = [
|
|
(s, HJ.法人基本情報, ss),
|
|
(s, RDF.type, HJ.法人情報型),
|
|
(ss, RDF.type, HJ.法人基本情報型),
|
|
# 1
|
|
(
|
|
ss,
|
|
IC.ID,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.ID型),
|
|
(IC.体系, IC_ID.corporateNumber),
|
|
(IC.識別値, row["ID-識別値"]),
|
|
]
|
|
),
|
|
),
|
|
# 2, 3
|
|
(
|
|
ss,
|
|
IC.名称,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.名称型),
|
|
(IC.種別, row["名称[日本語表記]-種別"]),
|
|
(IC.表記, row["名称[日本語表記]-表記"]),
|
|
(IC.カナ表記, row["名称[日本語表記]-カナ表記"]),
|
|
]
|
|
),
|
|
),
|
|
# 2, 3
|
|
(
|
|
ss,
|
|
IC.名称,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.名称型),
|
|
(IC.種別, row["名称[英語表記]-種別"]),
|
|
(IC.表記, row["名称[英語表記]-表記"]),
|
|
(IC.カナ表記, row["名称[英語表記]-カナ表記"]),
|
|
]
|
|
),
|
|
),
|
|
# 4, 5
|
|
(
|
|
ss,
|
|
IC.活動状況,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.状況型),
|
|
(
|
|
IC.発生日,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.日時型),
|
|
(
|
|
IC.標準型日時,
|
|
Literal(
|
|
row["活動状況-発生日"],
|
|
datatype=XSD.dateTime,
|
|
),
|
|
),
|
|
]
|
|
),
|
|
),
|
|
(IC.説明, row["活動状況-説明"]),
|
|
]
|
|
),
|
|
),
|
|
# 6, 7, 8, 9, 10, 11, 12, 13
|
|
(
|
|
ss,
|
|
IC.住所,
|
|
bpo(
|
|
[
|
|
(RDF.type, HJ.住所型),
|
|
(IC.種別, row["住所[日本語表記]-種別"]),
|
|
(IC.表記, row["住所[日本語表記]-表記"]),
|
|
(IC.郵便番号, row["住所[日本語表記]-郵便番号"]),
|
|
(IC.都道府県, row["住所[日本語表記]-都道府県"]),
|
|
(
|
|
IC.都道府県コード,
|
|
URIRef(
|
|
f"http://imi.go.jp/ns/code_id/code/jisx0401#{row['住所[日本語表記]-都道府県コード']}"
|
|
),
|
|
),
|
|
(IC.市区町村, row["住所[日本語表記]-市区町村"]),
|
|
(
|
|
IC.市区町村コード,
|
|
URIRef(
|
|
f"http://imi.go.jp/ns/code_id/code/jisx0402#{row['住所[日本語表記]-市区町村コード']}"
|
|
),
|
|
),
|
|
(HJ.町名番地等, row["住所[日本語表記]-町名番地等"]),
|
|
]
|
|
),
|
|
),
|
|
# 6, 7, 8, 9, 10, 11, 12, 13, 14
|
|
(
|
|
ss,
|
|
IC.住所,
|
|
bpo(
|
|
[
|
|
(RDF.type, HJ.住所型),
|
|
(IC.種別, row["住所[英語表記]-種別"]),
|
|
(IC.表記, row["住所[英語表記]-表記"]),
|
|
(IC.郵便番号, row["住所[英語表記]-郵便番号"]),
|
|
(IC.都道府県, row["住所[英語表記]-都道府県"]),
|
|
(
|
|
IC.都道府県コード,
|
|
URIRef(
|
|
f"http://imi.go.jp/ns/code_id/code/jisx0401#{row['住所[英語表記]-都道府県コード']}"
|
|
),
|
|
),
|
|
(IC.市区町村, row["住所[英語表記]-市区町村"]),
|
|
(
|
|
IC.市区町村コード,
|
|
URIRef(
|
|
f"http://imi.go.jp/ns/code_id/code/jisx0402#{row['住所[英語表記]-市区町村コード']}"
|
|
),
|
|
),
|
|
(HJ.町名番地等, row["住所[英語表記]-町名番地等"]),
|
|
(
|
|
HJ.市区町村町名番地等,
|
|
row["住所[英語表記]-市区町村町名番地以下"],
|
|
),
|
|
]
|
|
),
|
|
),
|
|
# 15
|
|
(
|
|
ss,
|
|
IC.組織種別,
|
|
URIRef(f"http://imi.go.jp/ns/code_id/code/kind#{row['組織種別']}"),
|
|
),
|
|
# 16
|
|
(
|
|
ss,
|
|
HJ.更新日時,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.日時型),
|
|
(
|
|
IC.標準型日時,
|
|
Literal(
|
|
(
|
|
f"{row["更新日時"]}T00:00:00"
|
|
if row["更新日時"]
|
|
else None
|
|
),
|
|
datatype=XSD.dateTime,
|
|
),
|
|
),
|
|
]
|
|
),
|
|
),
|
|
# 17, 18, 19, 20
|
|
(
|
|
ss,
|
|
HJ.公表組織,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.組織型),
|
|
(
|
|
IC.ID,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.ID型),
|
|
(
|
|
IC.体系,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.ID体系型),
|
|
(
|
|
IC.名称,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.名称型),
|
|
(
|
|
IC.表記,
|
|
row["公表組織-ID名称"],
|
|
),
|
|
]
|
|
),
|
|
),
|
|
(
|
|
IC.発行者,
|
|
bpo(
|
|
[
|
|
(RDF.type, IC.実体型),
|
|
(
|
|
IC.名称,
|
|
bpo(
|
|
[
|
|
(
|
|
RDF.type,
|
|
IC.名称型,
|
|
),
|
|
(
|
|
IC.表記,
|
|
row[
|
|
"公表組織-ID発行者"
|
|
],
|
|
),
|
|
]
|
|
),
|
|
),
|
|
]
|
|
),
|
|
),
|
|
]
|
|
),
|
|
),
|
|
(IC.識別値, row["公表組織-ID識別値"]),
|
|
]
|
|
),
|
|
),
|
|
(
|
|
IC.名称,
|
|
bpo(
|
|
[(RDF.type, IC.名称型), (IC.表記, row["公表組織-名称"])]
|
|
),
|
|
),
|
|
]
|
|
),
|
|
),
|
|
# 21, 22
|
|
(
|
|
ss,
|
|
HJ.区分,
|
|
bpo(
|
|
[
|
|
(IC.種別, row["区分-処理種別"]),
|
|
(IC.表記, row["区分-処理表記"]),
|
|
]
|
|
),
|
|
),
|
|
# 21, 22
|
|
(
|
|
ss,
|
|
HJ.区分,
|
|
bpo(
|
|
[
|
|
(IC.種別, row["区分-訂正種別"]),
|
|
(IC.表記, row["区分-訂正表記"]),
|
|
]
|
|
),
|
|
),
|
|
# 21, 22
|
|
(
|
|
ss,
|
|
HJ.区分,
|
|
bpo(
|
|
[
|
|
(IC.種別, row["区分-最新種別"]),
|
|
(IC.表記, row["区分-最新表記"]),
|
|
]
|
|
),
|
|
),
|
|
# 21, 22
|
|
(
|
|
ss,
|
|
HJ.区分,
|
|
bpo(
|
|
[
|
|
(IC.種別, row["区分-過去種別"]),
|
|
(IC.表記, row["区分-過去表記"]),
|
|
]
|
|
),
|
|
),
|
|
]
|
|
return triples
|
|
|
|
|
|
__all__ = ["GbizInfoHojinMapper"]
|