投稿

6月, 2022の投稿を表示しています

Schema.org + JSON-LD を RDFLib で読み込んでみる

本記事では、Schema.org の語彙を使って記述された JSON-LD を、RDF を扱える Python ライブラリ RDFLib に読み込む方法を見てみます。 【目次】 [1]はじめに [2]RDFLib と JSON-LD の読み込み例 [3]Web ページ内の JSON-LD を読み込んでみる [4]Schema.org のコンテキスト (1)"@context": "https://schema.org" の解釈 (2)コンテキスト情報のありかを探る (3)コンテキストの内容をダウンロードしてみる [5]RDFLib 6.1.1 における、とりあえず回避策? (1)@context を置き換える (2)@context を削除+パーサにコンテキストを渡す [1]はじめに 記事『 Web ページ内の JSON-LD を Python + PyLD で覗いてみる(Schema.org) 』で、Web ページに組み込まれた JSON-LD を見ました。 また、JSON-LD は RDF( Resource Description Framework )のシリアライズ形式の一つであり、RDF としても解釈できる旨を書きました。 RDF として扱うと、セマンティックウェブ系の技術を使っていろいろな応用が期待できそうです。 例えば、収集した情報をマージしてナレッジグラフを構成したり、SPARQL のようなクエリ言語を利用して情報を抽出したり、新たな知識の発見につなげたり、などなど。 そこで、本記事では、Schema.org の語彙を使って記述された JSON-LD を、RDF を扱える Python ライブラリ RDFLib に読み込む方法を見てみます。 今回もセマンティックウェブ技術とか RDF には深入りせず、利用方法に絞ってます。 なお、本記事のコードは Google Colaboratory で動作を確認しています。 [2]RDFLib と JSON-LD の読み込み例 RDFLib は、RDF を操作するためのオープンソース Python パッケージです。 rdflib https://rdflib.readthedocs.io/en/stable/# RDFLib (Gi

Web ページ内の JSON-LD を Python + PyLD で覗いてみる(Schema.org)

Web ページに組み込まれた JSON-LD を見てざっくりと JSON-LD の雰囲気をつかんで、HTMLから JSON-LD を取り出す方法を見てみます。 【目次】 [1]はじめに [2]Web ページに組み込まれた JSON-LD の例 (1)Wikipedia の例 (2)ブログ(Bloggerの場合) の例 [3]クローラ向け構造化データとしての JSON-LD [4]Linked Data とシリアライズフォーマット [5]Schema.org による語彙の定義 [6]JSON-LDをHTMLに組み込む方法 [7]PyLD を使って HTMLから JSON-LD を抽出する [1]はじめに アプリ開発に携わる方々にとって「JSON」は常識的なものだと思いますが、「JSON-LD」 は知らない、という人もいらっしゃるのではないかと思います。 逆に JSON-LD は、Web コンテンツ制作や SEO(検索エンジン最適化) 関係の方々にとって必須知識かもしれません。(JSON-LD より Schema.org のほうが身近な言葉かも。) 一方、SemanticWeb や LOD に関わる人なら「RDFのシリアライズ形式の一つ」の一言で終了かもしれません。 JSON-LD が最も利用されている例は、Google クローラなどに Web コンテンツの内容を伝えたり、リッチな検索結果を表示させるためのメタデータとして Web コンテンツ内に組み込むものだと思います。 しかし、JSON-LD はクローラ向けに特化した仕様ではありません。 実際、記事『 Googleナレッジグラフの検索APIを使ってみる(Google Knowledge Graph Search API) 』で取り上げた API の戻りデータも JSON-LD でした。 そこで、本ブログではアプリ開発者視点から JSON-LD を見ていきたいと思います。 まず今回は JSON-LDの仕様には深入りせず、実例として Web ページに組み込まれた JSON-LD を見て雰囲気をつかみ、その後HTMLから JSON-LD を取り出す方法を見ておきます。 [2]Web ページに組み込まれた JSON-LD の例 まずは細かいところはおいといて、実例をざっと見てみます。