セマンティック・ウェブ

トップ > セマンティック・ウェブ

目次

はじめに

セマンティック・ウェブとは

意味・語彙・スキーマ

Schema.org

Schema.orgの定義の例
Person (type):
  - name (Text)
  - address (Text or PostalAddress)
  - gender (Text or GenderType)
  - birthDate (Date)

ダブリン・コア (Dublin Core)

Dublin Core の定義例
tltle: タイトル
subject: サブジェクト
creator: 作成者
publisher: 発行者
   :

FOAF (Friend of a Friend)

FOAF の定義例
<foaf:Person>
  <foaf:name>山田太郎</foaf:name>
  <foaf:img rdf:resource="/images/yamada.jpg" />
  <foaf:homepage rdf:resource="http://yamada.example.com/" />
</foaf:Person>

記法・文法・言語

RDF (Resource Description Framework)

N-Triples

N-Triples
<http://ja.dbpedia.org/resource/東京タワー> <http://ja.dbpedia.org/property/住所> "芝公園4-2-8" .

Turtle

N-Triples
@prefix dbpedia-ja:  <http://ja.dbpedia.org/resource/> .
@prefix prop-ja:     <http://ja.dbpedia.org/property/> .
dbpedia-ja:東京タワー
    prop-ja:住所 "芝公園4-2-8" ;
    prop-ja:階数 "地上16階、地下2階" .

TriG

未稿。

N-Quads

未稿。

RDF/XML

RDF/XML
<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:prop-ja="http://ja.dbpedia.org/property/">
  <rdf:Description rdf:about="http://ja.dbpedia.org/resource/東京タワー">
    <prop-ja:住所 xml:lang="ja">芝公園4-2-8</prop-ja:住所>
    <prop-ja:階数 xml:lang="ja">地上16階、地下2階</prop-ja:階数>
  </rdf:Description>
</rdf:RDF>

RDFa (RDF in Attribute)

RDFaの例
<html>
<head>
  ...
</head>
<body>
  ...
  <h2 property="http://purl.org/dc/terms/title">The Trouble with Bob</h2>
  <p>Date: <span property="http://purl.org/dc/terms/created">2011-09-10</span></p>
  ...
</body>

RDFa Lite

RDFa Liteの例
<div vocab="http://schema.org/" typeof="Person" resource="#Yamada">
  <div property="name">山田太郎</div>
  <div property="telephone">03-XXXX-XXXX</div>
  <a href="mailto:yamada@example.com" property="email">yamada@example.com</a>
</div>
RDFa Liteの例
<div vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/">
  <div property="name">山田太郎</div>
  <div property="ov:preferredAnimal">Dog</div>
</div>

JSON-LD

JSON-LD の例
<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Person",
  "name": "山田太郎",
  "email": "mailto:yamada@example.com",
  "telephone": "03-XXXX-XXXX"
}
</script>

下記は、Google の検索結果で、記事をリッチリザルトとして上部に写真付きで表示してもらうための例です。

JSON-LD の例
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://news.example.com/20200412/article-123456/"
  },
  "headline": "記事のタイトル・・・",
  "image": "https://news.exapmpe.com/20200412/img-123456.jpg",
  "datePublished": "2020-04-12T18:02:08+09:00",
  "dateModified": "2020-04-12T22:41:53+09:00",
  "author": {
    "@type": "Organization",
    "name": "山田太郎"
  },
   "publisher": {
    "@type": "Organization",
    "name": "Exampleニュース",
    "logo": {
      "@type": "ImageObject",
      "url": "https://news.example.com/img/logo.png",
      "width": 412,
      "height": 68
    }
  },
  "description": "記事の説明・・・・・"
}
</script>

Microdata

RDFa Liteの例
<div itemscope itemtype="http://schema.org/Person">
  <div itemprop="name">山田太郎</div>
  <div itemprop="telephone">03-xxxx-xxxx</div>
  <a itemporp="email" href="mailto:yamada@example.com">yamada@example.com</a>
</div>

Microformats

Microformats の例
<link rel="profile" href="http://microformats.org/profile/hcard">
  :
<div class="vcard">
  <div class="fn">山田太郎</div>
  <div class="tel">03-XXXX-XXXX</div>
  <a href="mailto:yamada@example.com" class="email">yamada@example.com</a>
</div>

OWL (Web Ontology Language)

リンクトデータ

Linked Data

Linked Open Data (LOD)

DBpedia

クエリ言語

SPARQL

例えば下記は、DBpedia のデータから、大林宣彦監督の主な作品(notableWork)を検索して変数 ?work に設定し、それを表示しています。

SPARQL
SELECT ?work WHERE {
  <http://ja.dbpedia.org/resource/大林宣彦> <http://dbpedia.org/ontology/notableWork> ?work.
}

下記の様に、PREFIX を定義して用いることもできます。

SPARQL
PREFIX dbpr:<http://ja.dbpedia.org/resource/>
PREFIX owl:<http://dbpedia.org/ontology/>
SELECT ?work WHERE {
  dbpr:大林宣彦 owl:notableWork ?work.
}

下記では主な作品を検索し、さらにその作品の主要出演者(starring)も検索して表示しています。

SPARQL
SELECT ?work, ?starring WHERE {
  dbpr:大林宣彦 owl:notableWork ?work.
  ?work owl:starring ?starring.
}

下記は逆に、監督(director)が大林宣彦である作品(?work)を検索しています。

SPARQL
SELECT ?work WHERE {
  ?work owl:director dbpr:大林宣彦 .
}

Copyright (C) 2020 杜甫々
初版:2020年4月12日 最終更新:2020年4月12日
http://www.tohoho-web.com/ex/semantic-web.html