Соединение Linkedmdb и DBpedia с помощью федеративных запросов SPARQL
Я запустил следующий запрос и получил данные для фильмов и соответствующий им URI- код DBpedia из connectedmdb.
SELECT ?film ?label ?dbpediaLink
WHERE {
?film rdf:type movie:film .
?film rdfs:label ?label .
?film owl:sameAs ?dbpediaLink
FILTER(regex(str(?dbpediaLink), "dbpedia", "i"))
}
LIMIT 100
Я хочу получить категорию для этих фильмов из DBpedia, используя ?dbpediaLink
URI. Кроме того, мне нужно получить значение dcterms:subject
Свойство для фильма из DBpedia. Я не могу понять, как их соединить? Могу ли я сделать это через SPARQL или мне нужно написать код для этого?
1 ответ
Вы хотите федеративный запрос SPARQL. Вам не нужно писать код (кроме запроса SPARQL). Вам понадобится конечная точка, которая их поддерживает, и, поскольку она требует запроса нескольких конечных точек, вам может потребоваться запустить собственную конечную точку (которая может не содержать каких-либо фактических данных, но может выполнять федерацию для вас). Исходя из изложенных выше требований, вы, вероятно, захотите запрос, подобный следующему. Обратите внимание, что я удалил ?dbpediaLink
из прогнозируемых переменных; то есть этот запрос не SELECT ?dbpediaLink
, поскольку вы, вероятно, не заинтересованы в том, чтобы видеть это значение, а использовать его для извлечения данных из DBpedia. Вы можете добавить его обратно, если хотите, конечно.
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX movie: <http://data.linkedmdb.org/resource/movie/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?film ?label ?subject WHERE {
SERVICE <http://data.linkedmdb.org/sparql> {
?film a movie:film .
?film rdfs:label ?label .
?film owl:sameAs ?dbpediaLink
FILTER(regex(str(?dbpediaLink), "dbpedia", "i"))
}
SERVICE <http://dbpedia.org/sparql> {
?dbpediaLink dcterms:subject ?subject
}
}
LIMIT 50
Вы не можете запустить это напрямую с конечной точки DBpedia SPARQL, но вы можете использовать ARQ Jena для локального выполнения запроса, и ARQ выполнит запросы к другим конечным точкам за вас. Я создал пустой файл, data.n3
перейти на ARQ как --query
аргумент, и смог выполнить запрос следующим образом (где query.sparql
это запрос выше):
$ arq --query query.sparql --data data.n3
Результаты выглядят следующим образом. Обратите внимание, что каждый ресурс DBpedia может быть связан с рядом категорий dcterms:subject
собственности, поэтому даже если у нас есть LIMIT 50
там мы получаем не пятьдесят фильмов, а пятьдесят строк результатов.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| film | label | subject |
================================================================================================================================================================================
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:1960s_horror_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Films_directed_by_Jun_Fukuda> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Giant_monster_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Monster_movies> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:1966_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Godzilla_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Japanese_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Kaiju_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Mothra> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Terrorism_in_fiction> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:1960s_science_fiction_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Sequel_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Japanese-language_films> |
| <http://data.linkedmdb.org/resource/film/11> | "Godzilla vs. the Sea Monster" | <http://dbpedia.org/resource/Category:Mystery_Science_Theater_3000_episodes> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:1930s_musical_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:American_musical_comedy_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:American_romantic_comedy_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:American_romantic_musical_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:1935_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:American_screwball_comedy_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:Black-and-white_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:Films_directed_by_Mark_Sandrich> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:1930s_romantic_comedy_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:United_States_National_Film_Registry_films> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:Films_set_in_London> |
| <http://data.linkedmdb.org/resource/film/105> | "Top Hat" | <http://dbpedia.org/resource/Category:RKO_Pictures_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:American_children's_fantasy_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Best_Original_Music_Score_Academy_Award_winners> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:E.T._the_Extra-Terrestrial> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:English-language_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:1980s_science_fiction_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:1982_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Alien_visitation_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Amblin_Entertainment_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Films_directed_by_Steven_Spielberg> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:1985_novels> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:American_science_fiction_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Films_produced_by_Steven_Spielberg> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Films_set_in_the_San_Fernando_Valley> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Films_that_won_the_Best_Sound_Mixing_Academy_Award> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:United_States_National_Film_Registry_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Universal_Pictures_films> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Best_Drama_Picture_Golden_Globe_winners> |
| <http://data.linkedmdb.org/resource/film/154> | "E.T. the Extra-Terrestrial" | <http://dbpedia.org/resource/Category:Films_that_won_the_Best_Visual_Effects_Academy_Award> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:1960s_drama_films> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:American_films> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:1969_films> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:Films_shot_in_New_Orleans,_Louisiana> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:Directorial_debut_films> |
| <http://data.linkedmdb.org/resource/film/155> | "Easy Rider" | <http://dbpedia.org/resource/Category:Films_about_drugs> |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------