Skip to content

glucoseinc/virtualhome-script-editor

 
 

Repository files navigation

ナレッジグラフ推論チャレンジ【実社会版】提供データセット

video kg

目次

  1. 提供データセット
  2. データセットの構成
  3. ナレッジグラフの説明
  4. ナレッジグラフの使用方法
  5. 同様のナレッジグラフの作成方法

提供データセット

  • 仮想空間内で日常生活行動をシミュレーションした動画データ
  • 動画の内容をナレッジグラフ化したデータ("誰"がどんな"物"にどんな"行動"をしてその結果"物の状態"や"位置関係"がどうなったか)
  • 上記をオープンデータとして公開

データセットの構成

  • 動画
    • mp4形式
    • 199種類の行動シナリオ(更新: 2022/12/28)
    • 1種類につきキャラクター後方視点(ファイル名末尾0),室内カメラ切替視点(ファイル名末尾1),部屋の四隅に設置した固定カメラ視点(ファイル末尾2〜5)があります.また,1つの行動シナリオにつき,異なる部屋の間取り(scene)で最小1〜最大7パターンのデータを生成しています.合計1,206個の動画 (更新: 2022/12/28)
    • キャラクター動作がゆっくりな動画は高齢者の動きを再現しています
  • ナレッジグラフ
  • 台本データ
    • txt形式
    • 動画とナレッジグラフを生成するためにVirtualHome2KGに与えたデータ
    • 行動のタイトルと簡単な文章説明を含む

ナレッジグラフの説明

オントロジーの仕様書

全クラス・インスタンス・プロパティの説明は下記の仕様書を御覧ください。
https://aistairc.github.io/VirtualHome2KG/vh2kg_ontology.html
以下で代表的なクラス・プロパティを説明します。

スキーマ図

schema

接頭辞
Prefix URI
: http://example.org/virtualhome2kg/ontology/
ho: http://www.owl-ontologies.com/VirtualHome.owl#
time: http://www.w3.org/2006/time#
x3do https://www.web3d.org/specifications/X3dOntology4.0#
代表的なクラス
QName Description
ho:Activity 家庭での人間の日常活動。このクラスはHomeOntologyから再利用されている。
:Event アクティビティを構成する細かなイベント。
:Action イベント内で行われる人間の動作(アクション)。
:Object 食べ物、家具、電化製品、消耗品、生活用品など、家庭内にある様々なオブジェクト。
:Situation 特定の瞬間における家庭内の状況。その瞬間における家庭内のすべてのオブジェクトの状態(State)インスタンスは、このクラスのインスタンスの一部分(part)となる。
:State 特定の瞬間における、特定の物体の状態。イベントの前後で状態が変化する場合にのみ新たにインスタンスが作成される。
:StateType オブジェクトの状態の種類. このクラスのインスタンスは、VirtualHomeのobject statesに基づいている。
:Attribute オブジェクトの属性。
:Shape オブジェクトの形状と位置を表すクラス。サイズと座標を含む3Dバウンディングボックスの値を持つ。このクラスはX3D ontologyから再利用されている。
time:Duration 動作の実行時間(秒数)。 このクラスはTime Ontologyから再利用されている。
代表的なプロパティ
QName Domains Ranges Description
:activty :Character :Activity キャラクター(エージェント)とアクティビティを関連付ける。
:action :Event :Action イベントとアクション(動作)を関連付ける。アクティビティはアクションのシーケンスで構成される。
:eventNumber :Event xsd:int アクティビティにおけるイベントの順序を示す。
:situationBeforeEvent :Event :Situation あるイベントをある状況に関連付ける。何らかのイベントが実行される前の家庭内の状況。
:situationAfterEvent :Event :Situation あるイベントをある状況に関連付ける。何らかのイベントが実行された後の家庭内の状況。
:mainObject :Event :Object ho:objectのサブプロパティ。イベントをメインオブジェクトに関連付ける。イベントにおける動作対象のオブジェクトを表す。「object_Xをobject_Yにactionする」のような場合、object_Xを指定する場合にこのプロパティを使う。
:targetObject :Event :Object ho:objectのサブプロパティ。イベントをターゲットオブジェクトに関連付ける。イベントにおける動作対象のオブジェクトを表す。「object_Xをobject_Yにactionする」のような場合、object_Yを指定する場合にこのプロパティを使う。
time:hasDuration :Event time:Duration イベントとその実行時間を関連付ける。
:isStateOf :State :Object オブジェクトとその状態を関連付ける。
:state :State :StateType 状態をその値に関連付ける。
:affords :Object :Action オブジェクトとアクションを関連付ける。オブジェクトのアフォーダンスを意味する。
:attribute :Object :Attribute オブジェクトに属性を関連付ける。
:partOf :State :Situation オブジェクトの状態(State)が、どの瞬間の家庭内の状況(Situtation)のものであるかを表す。
:bbox :State :Shape ある時点でのオブジェクトの状態のリソースと形状リソースを関連付ける。
:nextActivity :Activity :Activity アクティビティ間の関係を表す。次のアクティビティ。
:nextEvent :Event :Event イベント間の関係を表す。次のイベント。
:nextSituation :Situation :Situation 状況間の関係を表す。次の状況。
:nextState :State :State オブジェクトの状態間の関係を表す。オブジェクトの次の状態。
:between :Shape :Shape 主にドアオブジェクトに適応される。キッチンとリビングの間にドアがある場合、このプロパティはドアとリビング、ドアとキッチンの関係に使用される。詳細はVirtualHomeのrelationsをご覧ください。
:close :Shape :Shape オブジェクト間の距離が1.5m以内であることを意味する。詳細はVirtualHomeのrelationsをご覧ください。
:facing :Shape :Shape オブジェクト1からオブジェクト2が見えることを意味する。オブジェクトの中心間の距離が5m以内。詳細はVirtualHomeのrelationsをご覧ください。
:holds_lh :Shape :Shape 左手でオブジェクトを持っていることを意味する。したがって主語はCharacterに関するShapeである。詳細はVirtualHomeのrelationsをご覧ください。
:holds_rh :Shape :Shape 右手でオブジェクトを持っていることを意味する。したがって主語はCharacterに関するShapeである。詳細はVirtualHomeのrelationsをご覧ください。
:inside :Shape :Shape オブジェクト1がオブジェクト2の中に位置していることを意味する。詳細はVirtualHomeのrelationsをご覧ください。
:on :Shape :Shape オブジェクト1がオブジェクト2の上に位置していることを意味する。

具体的なナレッジグラフの説明

kgの例 (listen to music)

ナレッジグラフの使用方法

ナレッジグラフはRDF形式のデータで提供しているため,トリプルストアに格納することで,クエリ言語SPARQLを使用して様々な検索が可能です.また,SPARQLエンドポイントを提供していますので,そちらから直接ご利用いただけます.

参考資料:

SPARQLエンドポイント

本データセットを格納したSPARQLエンドポイントを提供しています。
http://kgrc4si.ml:7200/sparql
リポジトリは「KGRC4SIv01」を選択してください。(2022/12/28時点)
トリプルストアとしてOntotext GraphDBを使用しています.基本的な使用方法はこちらの動画を御覧ください。

SPARQLクエリ例

アクティビティの一覧を取得する

PREFIX ex: <http://example.org/virtualhome2kg/instance/>
PREFIX : <http://example.org/virtualhome2kg/ontology/>
select DISTINCT * where {
    ?activity :virtualHome ex:scene1 .
}

実行結果

「インターネットをブラウズする」というアクティビティ中のイベントとアクションを取得する

PREFIX ex: <http://example.org/virtualhome2kg/instance/>
PREFIX : <http://example.org/virtualhome2kg/ontology/>
select DISTINCT * where {
    ex:browse_internet_scene1 :hasEvent ?event .
    ?event :action ?action .
}

実行結果

インタラクションしているオブジェクトのタイプ一覧

PREFIX : <http://example.org/virtualhome2kg/ontology/>
select distinct ?objectType where { 
    ?event (:mainObject|:targetObject) ?object .
    ?object a ?objectType .
}

実行結果

よく掴まれているオブジェクト

PREFIX ho: <http://www.owl-ontologies.com/VirtualHome.owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX : <http://example.org/virtualhome2kg/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ac: <http://example.org/virtualhome2kg/ontology/action/>
select ?name (count(?object) AS ?count) where { 
	?objectClass rdfs:subClassOf :Object .
    ?object a ?objectClass ;
            rdfs:label ?label ; 
            dcterms:identifier ?id .
    ?event ho:object ?object .
    ?event :action ac:grab .
    BIND(concat(?label, ?id) AS ?name)
} group by ?object ?name order by desc(count(?object))

実行結果

オブジェクトの高さ情報を追加する

PREFIX x3do: <https://www.web3d.org/specifications/X3dOntology4.0#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX : <http://example.org/virtualhome2kg/ontology/>
PREFIX ex: <http://example.org/virtualhome2kg/instance/>
CONSTRUCT {
    ?object :height ?height_node .
    ?height_node rdf:value ?size_y1 ;
           :unit :meter .
} WHERE {
	?state1 :isStateOf ?object ; :bbox ?shape1 .
	?shape1 x3do:bboxSize ?size1 .
	?size1 rdf:rest ?size_y .
    ?size_y rdf:first ?size_y1 .
    BIND(REPLACE(STR(?object), STR(ex:) ,"") AS ?object_name)
    BIND(URI(CONCAT(STR(ex:),"height_", ?object_name)) AS ?height_node)
}

実行結果

同様のナレッジグラフの作成方法

本データセットは我々の提案システム「VirtualHome2KG」を使用して作成されています。
詳細はこちらの資料を御覧ください。

リファレンス

  • 江上周作,鵜飼孝典,窪田文也,大野美喜子,北村光司,福田賢一郎: 家庭内の事故予防に向けた合成ナレッジグラフの構築と推論,第56回人工知能学会セマンティックウェブとオントロジー研究会, SIG-SWO-056-14 (2022) [J-STAGE]
  • Egami, S., Nishimura, S., Fukuda, K.: A Framework for Constructing and Augmenting Knowledge Graphs using Virtual Space: Towards Analysis of Daily Activities. Proceedings of the 33rd IEEE International Conference on Tools with Artificial Intelligence. pp.1226-1230 (2021) [IEEE Xplore]
  • Egami, S., Nishimura, S., Fukuda, K.: VirtualHome2KG: Constructing and Augmenting Knowledge Graphs of Daily Activities Using Virtual Space. Proceedings of the ISWC 2021 Posters, Demos and Industry Tracks: From Novel Ideas to Industrial Practice, co-located with 20th International Semantic Web Conference. CEUR, Vol.2980 (2021) [pdf]

ライセンス

クリエイティブ・コモンズ・ライセンス
江上周作,他 作『VirtualHome2KGデータセット―家庭内の日常生活行動のシミュレーション動画とナレッジグラフ―』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。
https://github.com/aistairc/VirtualHome2KGにある作品に基づいている。

謝辞

この成果は,国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の委託業務(JPNP20006, JPNP180013)の結果得られたものです.

About

RDF data for Knowledge Graph Reasoning Challenge.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 79.4%
  • CSS 15.8%
  • Dockerfile 3.9%
  • Other 0.9%