- 概要
- 提案データセット
- COVID-19感染リスク推論オントロジー(CIRO)
- オントロジーに基づく個々のデータ(PLOD)
- PLODの使用例
- 3つの密の推論実験の結果
- LODチャレンジ2022向けの説明
- COVID-19の感染拡大防止に向けて,日本国政府では「3つの密」(以下,三密)や,「5つの場面」を提言しています.
- これらの提言に基づき,各人の感染リスクを自動で評価できれば,追跡調査対象者の順序付けやスクリーニングといった保健所で行われている業務を大幅に効率化できると考えています.
- そこで,場所や行動に紐づくCOVID-19感染リスクを整理し,個別の行動事例における感染リスクを推論可能なオントロジー(CIRO)を開発しました.
- 本リポジトリでは,このオントロジーに基づいてナレッジグラフ化(RDF化)された疑似データ(PLOD)を,オープンデータとして提供します.
- このようなデータを使用することで,追跡調査に有用な三密リスクの推論とグラフ検索が可能なことを示しています.
全クラス・インスタンス・プロパティの説明は下記の仕様書を御覧ください。
https://plod-info.github.io/PLOD/ciro.html
以下で代表的なクラス・プロパティを説明します。
接頭辞
Prefix | URI |
: | http://plod.info/rdf/ |
time: | http://www.w3.org/2006/time# |
schema: | http://schema.org/ |
xsd: | http://www.w3.org/2001/XMLSchema# |
代表的なクラス
Name | Description |
schema:Event | イベント |
:Situation | 場所の状況 |
:Action | 人の行動 |
:RiskAction | リスク行動 |
:IndirectContact | 間接接触行動 |
:DropletReachableAction | 飛沫到達行動 |
:Context | コンテキスト。RiskContextをより抽象化したクラス。 |
:RiskContext | イベントや状況に関してリスク行動的な、またはリスク空間的なメタデータを表すクラス |
:SpatialRiskContext | 空間的な感染リスクを表す。 |
:BeihavioralRiskContext | 行動的な感染リスクを表す。 |
:Crowding | 密集 |
:ClosedSpace | 密閉 |
:CloseContact | 密接 |
:Time | 時間(定性的、定量的なものを含む) |
代表的なプロパティ
QName | Domains | Ranges | Description |
schema:location | schema:Event | schema:Place | イベントの場所を表す. |
:action | schema:Event | :Action | イベントにおける人の行動を表す. |
:agent | schema:Event | schema:Person | イベントの主体. |
:time | schema:Event or schema:Situation | :Time | イベントや状況の時間を表す. |
:followingEvent | schema:Event | schema:Event | 次のイベントを表す.時系列的に直後のイベントを意味する. |
:context | schema:Event | :Context | イベントや状況に背景的・文脈的なセマンティクスを付与する.CIROにおいては主に空間的または行動的なリスク要因を表すのに使用される. |
:afford | schema:Place | :Action | 場所が誘引する人の行動を表す. |
:isSituationOf | :Situation | schema:Place | どの場所の状況であるか表す. |
現在,構築したオントロジーを保健所のシステムに応用することを想定しています.そこで,システムへの導入を前に,行動調査を模した擬似的な行動シナリオの模擬データを作成し,オントロジーに基づいてナレッジグラフ化しました.例えば,下図のような行動イベントがナレッジグラフ化されています.赤矢印はCIROのOWL推論により導出されるリンクです.
PLODはRDF形式のデータで提供しているため,トリプルストアに格納することで,クエリ言語SPARQLを使用して様々な検索が可能です.
参考資料:
- 【トリプルストアについての参考資料】トリプルストアの導入 (12ページから)
- 【SPARQLについての参考資料】Wikidataを例としたSPARQLクエリの例(16ページから)
以下のSPARQLクエリの一部はOWL 2 DL推論をサポートした推論エンジン(Pellet, HermiT)が必要になります。
- リスクのあるイベントまたは状況
- 密閉している状況
- 密接しているイベント
- 密集している状況
- 時間的,空間的に交差する異なる2つの行動イベントの組み合わせ
- 同じ都市かつ開始・終了時間がオーバーラップするイベントの組
- Aさんが参加している密閉イベントに同席している人物を,同席回数で降順表示
- 中密閉となった場所と、その場所で行われたイベント回数を降順表示
- 特定の期間でリスクのあるイベントとリスクの種類を取得
PREFIX plod: <http://plod.info/rdf/>
PREFIX schema: <http://schema.org/>
select ?event where {
?event a plod:RiskContext ;
a ?o .
filter(?o = plod:Situation || ?o = schema:Event)
}
PREFIX plod: <http://plod.info/rdf/>
select ?s where {
?s a plod:ClosedSpace .
}
PREFIX plod: <http://plod.info/rdf/>
select ?s where {
?s a plod:CloseContact .
}
PREFIX plod: <http://plod.info/rdf/>
select ?s where {
?s a plod:Crowding .
}
PREFIX plod: <http://plod.info/rdf/>
PREFIX schema: <http://schema.org/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?event1 ?place1 ?city1 ?event2 ?place2 ?city2 where {
?event1 a schema:Event ;
plod:time ?time1 ;
schema:location ?place1 .
?place1 plod:city ?city1 .
?time1 time:hasBeginning ?begin1 ;
time:hasEnd ?end1 .
?event2 a schema:Event ;
plod:time ?time2 ;
plod:agent ?agent ;
schema:location ?place2 .
?event2 schema:location ?place1 .
?place2 plod:city ?city1 .
?time2 time:hasBeginning ?begin2 ; time:hasEnd ?end2 .
filter(xsd:dateTime(?end1) > xsd:dateTime(?begin2)
&& xsd:dateTime(?begin1) < xsd:dateTime(?end2))
filter(?event1 != ?event2)
}
PREFIX plod: <http://plod.info/rdf/>
PREFIX schema: <http://schema.org/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
select distinct ?event1 ?place1 ?city1 ?event2 ?place2 ?city2 where {
?event1 a schema:Event ;
plod:time ?time1 ;
schema:location ?place1 .
?place1 plod:city ?city1 .
?time1 time:hasBeginning ?begin1 ;
time:hasEnd ?end1 .
?event2 a schema:Event ;
plod:time ?time2 ;
plod:agent ?agent ;
schema:location ?place2 .
?event2 schema:location ?place1 .
?place2 plod:city ?city1 .
?time2 time:hasBeginning ?begin2 ; time:hasEnd ?end2 .
filter(xsd:dateTime(?end1) > xsd:dateTime(?begin2)
&& xsd:dateTime(?begin1) < xsd:dateTime(?end2))
filter(?event1 != ?event2)
}
PREFIX plod: <http://plod.info/rdf/>
PREFIX schema: <http://schema.org/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?agent (count(distinct ?event) AS ?cnt) WHERE {
?event plod:agent <http://plod.info/rdf/id/person_a_A> ;
plod:agent ?agent ;
plod:time ?time ;
schema:location ?place .
filter (?agent != <http://plod.info/rdf/id/person_a_A>)
?situation plod:isSituationOf ?place .
?situation rdf:type ?sanmitsu .
?sanmitsu rdfs:label "中密閉"@ja .
} GROUP BY ?agent ORDER BY DESC(?cnt)
PREFIX plod: <http://plod.info/rdf/>
PREFIX schema: <http://schema.org/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?place (count(distinct ?event) AS ?cnt) where {
?event schema:location ?place .
?situation plod:isSituationOf ?place ;
a [ rdfs:label "中密閉"@ja] .
} group by ?place order by DESC(?cnt)
PREFIX plod: <http://plod.info/rdf/>
PREFIX time: <http://www.w3.org/2006/time#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
select ?s ?type where {
?s a ?type ;
plod:time ?time .
?time time:hasBeginning ?begin ;
time:hasEnd ?end .
filter (?begin >= "2020-12-06T19:30:00"^^xsd:dateTime)
filter (?end >= "2020-12-06T21:30:00"^^xsd:dateTime)
filter (?type = plod:ClosedSpace || ?type = plod:CloseContact || ?type = plod:Crowding)
}
3つの密を更に3段階(高リスク、中リスク、低リスク(リスク無し))に分けて,与えられた行動イベントや空間的な状況がどのリスクに該当するか,OWL 2 DL推論により判定する実験を行いました.
OWL 2 DL推論が可能なHermiTを内包するOwlready2を使用した実験用スクリプトを公開しています.各リスクパターンの疑似データ(PLOD)を自動的に作成し,CIROを用いて正しく推論できるか評価を行います.
実験の結果,CIROはこれらのリスクを正しく推論できることを確認しました.
- Impact - 影響力
- 提案オントロジー(CIRO)を保健所のシステムに導入し,PLODデータとして蓄積することで,濃厚接触者の追跡調査の順序付けやスクリーニングといった,保健所で行われている業務を大幅に効率化できます.
- 新型コロナウイルス感染症の患者の実データはプライバシーの問題から一般利用が困難ですが,本データセットは実データに近い模擬データセットであるため,広く感染対策に関する研究開発に利用することができる.
- Creativity - 創造力
- 人の行動と空間に着目して,「3つの密」や「5つの場面」といったわかりやすい感染リスク指標を用いて推論できる,他に類を見ないオントロジーです.さらに,模擬データセットをオープンデータとして公開している点も新しいです.
- Usefulness - 有用性
- 場所や時間などの任意の項目をキーとした検索や,三密の程度の推論が可能です.
- 感染クラスターの特定や,追跡調査の優先度が高い濃厚接触者の特定に利用できます.
- Accessibility - 機械可読性
- オントロジー(CIRO)、模擬データ(PLOD)ともにRDF形式で提供し,可能な限りエンティティをリテラルではなくURI付きリソースとしており,機械可読性は高いと言えます.
- Openness - 開放性
- CC BY 4.0ライセンスのオープンデータとして公開しています.
- RDF化されており,各エンティティに一意なURIが付与されていますが,参照解決は今後の課題としています.
- Linkability - つながる可能
- 多くのLODで使用されているschema.orgの語彙を再利用しており,間接的に多くのデータセットとつながることができます.特に,人の行動やイベントに関するデータセットとつながる可能性が高いと考えます.
- Simple Event Modelを参考にしたイベント中心モデルであり,他のデータセットとの連携や拡張性に優れています.
- 今後の疫学的調査結果を踏まえて三密ルールを調整可能であり,ひいては新型コロナウイルス以外の感染症にも適用できる可能性があります.
- Sustainability − 持続可能性
- 独自サーバではなくGitHub repositoryで管理しており,持続可能性は高いです.
- 現在,北海道庁との連携の議論が進んでおり,継続的な開発と社会実装が見込まれます.
- Shusaku Egami, Yasunori Yamamoto, Ikki Ohmukai, Takashi Okumura: CIRO: COVID-19 Infection Risk Ontology, PLOS ONE, 18(3):e0282291, pp.1-18 (2023) [Open Access]
- 江上周作,山本泰智,大向一輝,奥村貴史: オントロジーを用いたCOVID-19感染リスク行動の推論,第56回人工知能学会セマンティックウェブとオントロジー研究会, SIG-SWO-056-16 (2022) [Open Access]
江上周作,山本泰智,大向一輝,奥村貴史 作『Patient Locational Ontology-based Data (PLOD)』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。
本研究は,AMEDの課題番号JP20he0622042の支援を受けた.また,神崎正英氏,坂根昌一氏,伊藤真和吏氏,野本昌子氏には,本研究を進める上で様々なご助力を頂いた.ここに深く感謝の意を表する.