本ページでは、5章で利用するデータやプログラムを紹介する。
コード5.1(XML) student.xml
コード5.2(DTD) school.dtd
コード5.3(JSON) student.json
コード5.4(JSON)別形式 student2.json
コード5.5(RDF) www.rdf
SELECT DISTINCT ?s WHERE {
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/MusicalWork> .
?s <http://dbpedia.org/ontology/writer> <http://dbpedia.org/resource/Paul_McCartney>
}
SELECT DISTINCT ?s WHERE {
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Film> .
?s <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:American_films> .
?s <http://dbpedia.org/property/released> ?date .
FILTER regex(?date, "^20")
}
SELECT DISTINCT ?s WHERE {
<http://dbpedia.org/resource/Ted_2> <http://dbpedia.org/ontology/starring> ?s .
}
SELECT DISTINCT ?a WHERE {
<http://dbpedia.org/resource/Ted_2> <http://dbpedia.org/ontology/director> ?d .
}
SELECT DISTINCT ?p WHERE {
<http://dbpedia.org/resource/Ted_2> <http://dbpedia.org/ontology/producer> ?p .
}
コード5.11 Cypherによるグラフデータの作成(コード5.8,5.9,5.10の結果を利用)
CREATE (Ted_2:Movie {title:'Ted_2'})
CREATE (Seth_MacFarlane:Person {name:'Seth_MacFarlane'})
CREATE (Scott_Stuber:Person {name:'Scott_Stuber'})
CREATE (Mark_Wahlberg:Person {name:'Mark_Wahlberg'})
CREATE (Morgan_Freeman:Person {name:'Morgan_Freeman'})
CREATE (Seth_MacFarlane)-[:DIRECTED]->(Ted_2)
CREATE (Scott_Stuber)-[:PRODUCED]->(Ted_2)
CREATE (Mark_Wahlberg)-[:ACTEDIN]->(Ted_2)
CREATE (Morgan_Freeman)-[:ACTEDIN]->(Ted_2)
コード5.12 上記のデータベースに対する問い合わせ
MATCH (a:Person {name:'Morgan_Freeman'})-[:ACTEDIN]->(m)
RETURN m
コード5.13 データについては、コード5.11の変わりにコード5.7で得た映画について、5.8,5.9,5.10に対応するコマンドを実行し、Neo4jのグラフデータとして作成するpythonのプログラム(makeMovieDB.py)の出力結果を利用
MATCH (a:Person {name:'Morgan_Freeman'})-[:ACTEDIN]->(m)
<-[:DIRECTED]-(d)-[:DIRECTED]->(m2)<-[:ACTEDIN]-(b:Person)
RETURN a,m,d,m2,b
pythonでDBpediaにアクセスするために、SPARQLWrapperというライブラリを利用しています。利用方法については「SPARQLWrapper python」などで検索すると様々なページが見つかります。
プログラムの漢字コードは、UTF-8に設定していますが、ブラウザ上では文字化けする可能性があります。文字化けをしている場合には、ダウンロードして確認ください。
免責事項:このページに掲載しているプログラムやコードにつきましては、動作の確認をしていますが、計算機環境の違いなどにより、動作しない場合などが考えられます。また、これらのプログラムやコードを使用することによって生じたいかなる損害についても、本サイトは一切責任を負いません。
本ページ群に掲載している情報は、2020年3月の情報であり、リンク切れやソフトウェア等のバージョンアップに関する対応については、必ずしも保証されていないことをご了承ください。
また、このコードの一部は、Linked Open Dataで公開されているDBpediaなどのサイトへのアクセスを行います。授業などで用いる場合には、サーバーへの過度の集中などが起きないようにご配慮ねがいます。