Upgrade to Pro — share decks privately, control downloads, hide ads and more …

im@sparqlハンズオン

crssnky
April 10, 2019

 im@sparqlハンズオン

crssnky

April 10, 2019
Tweet

More Decks by crssnky

Other Decks in Technology

Transcript

  1. 1

  2. 2 (WWW関連の標準化団体) が規格するRDF用クエリ言語 W3C PREFIX schema: <http://schema.org/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

    PREFIX imas: <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select distinct ?predicate ?object where{ ?class_iri rdf:type ?class. ?class rdfs:label ?class_label. filter(contains(?class_label,"アイドル")) ?idol_iri rdf:type imas:Idol; schema:name ?idol_name. filter(contains(?idol_name,"千早")) ?idol_iri ?predicate ?object }
  3. 4 “croMisa” 名前 如月千早 担当 23 right 年齢 利き手 Resource

    Description Framework あるリソースのメタデータを記述するための枠組み RDF
  4. 5 ?? 名前 如月千早 担当 23 right 年齢 Resource Description

    Framework あるリソースのメタデータを記述するための枠組み RDF 利き手
  5. 6 “croMisa” 如月千早 担当 23 right 年齢 名前 Resource Description

    Framework あるリソースのメタデータを記述するための枠組み RDF 利き手 ??
  6. 9

  7. • LODのエンドポイント • SPARQLで問い合わせ可能 • アイドルマスターの世界を収録 • GitHubでデータベースを管理 → 全ての人が編集に参加可能

    広がるアイマスワールドをオープンデータ化 WebやアプリからSPARQLで検索・利用可能なエンドポイント 12
  8. 13

  9. 16 PVでよく見るロゴ インターメディア 芸術メディアの融合によって生まれる、 新たなメディアのこと 例 「出張オーディション」=アイマス+フィールドワーク 「MR ST@GE!!」=アイマス+VR Theater

    メディアミックス 複数のメディアを組み合わし、メディア間の 補完と相乗効果を生む手法 例:ゲーム・CD・漫画・アニメ・ライブ など...
  10. 17

  11. 21

  12. 25

  13. 28 ?? 名前 如月千早 担当 23 right 年齢 Resource Description

    Framework あるリソースのメタデータを記述するための枠組み RDF 利き手
  14. 述語 目的語 タイプ アイドル 名前 [アイドル名] 名前 アイドル 要約すると... タイプ

    如月千早 タイプが「アイドル」のインスタンスの名前 が「アイドル名」を表す 主語はなんでもよい
  15. クエリ例 ワイルド カード アイドル タイプ [変数] 名前 SELECT ?名前 WHERE

    { ?主語 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>. ?主語 <http://schema.org/name> ?名前. } im@sparqlのウワサ 日本語を混ぜても 使えるらしい 条件 取得する変数
  16. クエリ例 ワイルド カード アイドル タイプ [変数] 名前 SELECT ?名前 WHERE

    { ?主語 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>. ?主語 <http://schema.org/name> ?名前. } 「“?主語”のタイプはアイドル」 「“?主語”の名前は”?名前”」 SPARQLでは“?◦◦”は変数を表す! 任意の型を入れられ、ワイルドカードとしても使える
  17. アイドルのプロフィール例 述語 目的語 タイプ アイドル 名前 有栖川 夏葉 名前(かな) ありすがわ

    なつは 誕生日 8月16日 身長 168cm 体重 49kg スリーサイズ 85/58/84 血液型 B型 出身地 愛知県 イメージカラー #90E667 (主語)
  18. アイドルのプロフィール例 述語 目的語 タイプ アイドル 名前 有栖川 夏葉 名前(かな) ありすがわ

    なつは 誕生日 8月16日 身長 168cm 体重 49kg スリーサイズ 85/58/84 血液型 B型 出身地 愛知県 イメージカラー #90E667 (主語) (主語) これが得られるクエリを 書いていきます https://sparql.crssnky.xyz/imasrdf/RD Fs/detail/Arisugawa_Natsuha
  19. クエリ例 SELECT ?タイプ ?名前 ?かな ?誕生日・・・・・・・ WHERE { <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Arisugawa_Natsuha> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

    ?タイプ. <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Arisugawa_Natsuha> <http://schema.org/name> ?名前. <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Arisugawa_Natsuha> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#nameKana> ?かな. <https://sparql.crssnky.xyz/imasrdf/RDFs/detail/Arisugawa_Natsuha> <http://schema.org/birthDate> ?誕生日. ・・・・・・・・・・・ } 述語 タイプ 名前 名前(かな) 誕生日 身長 体重 スリーサイズ 血液型 出身地 イメージカラー
  20. 44

  21. 救世主② • “;”(セミコロン)による主語の省略 SELECT ?名前 WHERE { ?主語 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>;

    <http://schema.org/name> ?名前. } SELECT ?名前 WHERE { ?主語 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>. ?主語 <http://schema.org/name> ?名前. } “.”の代わりに”;”を書くことで 同じ主語を続ける意味になり、 次の文で主語を省略できる。 上下どちらも同じ文章。
  22. 救世主①,②の反映 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX imas: <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#> PREFIX schema: <http://schema.org/>

    SELECT ?名前 WHERE { ?主語 rdf:type imas:Idol; schema:name ?名前. } SELECT ?名前 WHERE { ?主語 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://sparql.crssnky.xyz/imasrdf/URIs/imas-schema.ttl#Idol>. ?主語 <http://schema.org/name> ?名前. } 新 旧
  23. 改めてクエリ例 SELECT * WHERE { imasrdf:Arisugawa_Natsuha rdf:type ?タイプ; schema:name ?名前;

    imas:nameKana ?かな; schema:height ?身長; schema:weight ?体重; imas:Bust ?バスト; imas:Waist ?ウエスト; imas:Hip ?ヒップ; imas:BloodType ?血液型; schema:birthPlace ?出身地; imas:Color ?イメージカラー; } 述語 タイプ 名前 名前(かな) 誕生日 身長 体重 スリーサイズ 血液型 出身地 イメージカラー (接頭辞宣言は省略)
  24. 改めてクエリ例 SELECT * WHERE { imasrdf:Arisugawa_Natsuha rdf:type ?タイプ; schema:name ?名前;

    imas:nameKana ?かな; schema:height ?身長; schema:weight ?体重; imas:Bust ?バスト; imas:Waist ?ウエスト; imas:Hip ?ヒップ; imas:BloodType ?血液型; schema:birthPlace ?出身地; imas:Color ?イメージカラー; } 述語 タイプ 名前 名前(かな) 誕生日 身長 体重 スリーサイズ 血液型 出身地 イメージカラー (接頭辞宣言は省略) ⇐SQLと同じ意味「全てを取得」 主語は省略!!
  25. アイマスのユニット DRAMATIC STARS • 天道輝 • 桜庭薫 • 柏木翼 Cleasky

    • 宮尾美也 • 島原エレナ 竜宮小町 • 水瀬伊織 • 三浦あずさ • 双海亜美 P.C.S • 島村卯月 • 五十嵐響子 • 小日向美穂 illumination STARS • 櫻木真乃 • 風野灯織 • 八宮めぐる
  26. SELECT * WHERE { imasrdf:Cleasky rdf:type ?type; schema:name ?name; schema:member

    ?member. } (接頭辞宣言は省略) クエリを書いてみた
  27. 66

  28. イメージ ユニット タイプ Cleasky 名前 メンバー アイドル タイプ 宮尾美也 名前

    • 「imasrdf:Cleaskyの名前は”Cleasky”であり、 メンバーにはimasrdf:Miyao_Miyaがいる。」 • 「imasrdf:Miyao_Miyaの名前は”宮尾美也”である」
  29. クエリ例 SELECT * WHERE { imasrdf:Cleasky rdf:type ?type; schema:name ?unit_name;

    schema:member ?member. ?member schema:name ?idol_name. } (接頭辞宣言は省略) 取得した目的語を主語に配置して、 また述語と目的語を記述すればOK!
  30. イメージ ユニット タイプ Cleasky 名前 メンバー アイドル タイプ 宮尾美也 名前

    • 「imasrdf:Cleaskyの名前は”Cleasky”であり、 メンバーにはimasrdf:Miyao_Miyaがいる。」 • 「imasrdf:Miyao_Miyaの名前は”宮尾美也”である」
  31. 救世主③ • “Group by”句と”Group_Concat”句による集約 SELECT ?unit_name Group_Concat(?idol_name;separator=", ") WHERE {

    imasrdf:Cleasky rdf:type ?type; schema:name ?unit_name; schema:member ?member. ?member schema:name ?idol_name. }Group by ?unit_name ① 集約したい変数を”Group by”句の後ろに書く ② 集約されたグループから、結合して表示したい変数を “Group_Concat”句に渡す。 また、区切り文字(separator)を指定する
  32. 救世主④ • “as”句による変数名の変更 SELECT (?unit_name as ?ユニット名) (Group_Concat(?idol_name;separator=", ")as ?メンバー名)

    WHERE { imasrdf:Cleasky rdf:type ?type; schema:name ?unit_name; schema:member ?member. ?member schema:name ?idol_name. }Group by ?unit_name ( [既存の変数や関数] as [新しい変数名] )
  33. これこそLinked Open Data Cleasky 宮尾美也 メンバー タウラス メンバー Shiny Trinity

    所持 衣装 タイプ 春日未来 メンバー ja.DBpedia 「桐谷蝶々」 C.V. 156cm 秋月律子 身長 身長
  34. 82

  35. 83