0

I am trying to get a list of movies per country (mainly China, Japan, Korea). I wanted to try out the LinkedMDB so i ran the following simple SPARQL

select distinct ?countryName where  {
  ?film a movie:film ;  movie:country ?country  .
  ?country rdfs:label ?countryName .
 }   

The results could be found here results It is

"Saudi Arabia (Country)"
"Mozambique (Country)"
"Madagascar (Country)"
"Afghanistan (Country)"
"Pakistan (Country)"
"Sri Lanka (Country)"
"Bhutan (Country)"
"India (Country)"

1- Am I missing something or the dataset coverage per country is poor?
2- What other SPARQL end point sources I could add (besides dbpedia)?
P.S. DBPedia covergae was fairly poor as well (Only 76 movies, Chinese Films in Mandarin)

user1848018
  • 1,086
  • 1
  • 14
  • 33
  • I don't think that [DBpedia's coverage](http://dbpedia.org/snorql/?query=select+%3Fcountry+%28count%28distinct+%3Ffilm%29+as+%3FnFilms%29+where+%7B%0D%0A++%3Ffilm+a+dbpedia-owl%3AFilm+.%0D%0A++optional+%7B+%3Ffilm+dbpedia-owl%3Acountry+%3Fcountry+%7D%0D%0A%7D%0D%0Agroup+by+%3Fcountry+%0D%0Aorder+by+desc%28%3FnFilms%29) is all that bad. It is true that most movies don't have country information, though. – Joshua Taylor Jul 21 '14 at 22:50
  • A filter like `regex(?cty,"China") and lang(?label)="zh"` shouldn't get you all that many results. If you're seeing the string "China", then it sounds much more like the language of the label is English, not Mandarin. – Joshua Taylor Jul 21 '14 at 22:51
  • Thanks Joshua, but is there anything wrong with my query from LinkedMDB? Hard to believe there is just 8 countries. – user1848018 Jul 22 '14 at 13:30
  • The movie( http://data.linkedmdb.org/page/film/10700) is a chinese movie and It has a country field , how come the LinkedMDB query reports no movie from China? – user1848018 Jul 22 '14 at 14:31
  • Look at what the values for its country property are, though: `` and ``. By doing `?country rdfs:label ?countryName`, you're limiting yourself to countries that have an rdfs:label. If ``, doesn't have a label, you won't include it in your results. – Joshua Taylor Jul 22 '14 at 15:58
  • Now, what is strange is that select distinct ?country { [] movie:country ?country } only returns 8 results. However, linkedMDB has some strange execution limits (2500 results per query, I think). It might be it pulls up the first 2500 results and just takes the countries from those. – Joshua Taylor Jul 22 '14 at 16:01
  • Yes, I think it's something about the query limits. You may notice that each of those countries has `rdf:type movie:country`. If you search for countries that way, i.e., with `select distinct ?country { ?country a movie:country }`, then you get lots of results. – Joshua Taylor Jul 22 '14 at 16:04
  • Great point Joshua. It worked. I reversed the order, in summary something select * {?country a movie:country . ?film movie:country ?country } and then it worked. Since you figured it out, do you want to answer the result or should I do this? – user1848018 Jul 24 '14 at 13:30
  • Also you mentioned something about the draw back of using filters like regex(?countryName,"China") so what would be the best way to filter the countries for just China if I don't use this filter? – user1848018 Jul 24 '14 at 13:34

0 Answers0