Предположим, я запросил DBPedia как this:

select * where
{
  ?x ?y ?z .
  filter (?x = <http://dbpedia.org/resource/Abracadabra>)
}

И в итоге получили много троек:

x   y   z  
http://dbpedia.org/resource/Abracadabra     http://www.w3.org/2002/07/owl#sameAs    http://de.dbpedia.org/resource/Abrakadabra  
http://dbpedia.org/resource/Abracadabra     http://www.w3.org/2002/07/owl#sameAs    http://fr.dbpedia.org/resource/Abracadabra  
http://dbpedia.org/resource/Abracadabra     http://www.w3.org/2002/07/owl#sameAs    http://ko.dbpedia.org/resource/아브라카다브라  
...

Можно ли определить, из какого этих наборов данных была получена каждая тройка?
Я хочу загрузить и использовать локально некоторые из этих наборов данных, но сначала я должен выяснить, какие из них полезны для меня, на основе содержащихся в них троек.

В худшем случае я хотел бы знать, какие наборы данных содержат rdfs: метки.

P.S. Этот подход не работает,? g всегда http://dbpedia.org

3
user2665887 19 Авг 2014 в 17:48
Кстати, это своего рода запах кода, который нужно делать { ?x ?y ?z filter( ?x = <...> ) }. Сделайте либо { <...> ?y ?z }, либо { values ?x { <...> } ?x ?y ?z }.
 – 
Joshua Taylor
19 Авг 2014 в 19:09
Я знаю, что это плохо, но я не мог быстро понять, как ограничивать и печатать? X одновременно. Позже собираюсь прочитать некоторые стандарты SPARQL -_-
 – 
user2665887
19 Авг 2014 в 20:41
Второй вариант, который я упомянул, values ?x { <...> } ?x ?y ?z связывает ?x с указанным значением (ями). Хороший оптимизатор должен понимать, что подобный фильтр имеет тот же эффект, но, на мой взгляд, values делает намерение более ясным.
 – 
Joshua Taylor
19 Авг 2014 в 20:45

1 ответ

Лучший ответ

Из каталогов в листинге, на которые вы ссылаетесь, я думаю, вы захотите получить данные с английского Википедия. Тем не менее, там все еще много файлов. Набор данных DBpedia (3.9) содержит дополнительную информацию о различных файлах, которые вы можете загрузить. Возможно, самое главное, в нем говорится:

Найдите свойства, используемые в различных наборах данных DBpedia, здесь.

Эта ссылка приведет вас к свойствам набора данных DBpedia 3.9, который, я думаю, ответит за вас, который в каких наборах данных находятся свойства. Чтобы ответить конкретно на ваш "худший случай", он говорит, что значения rdfs: label хранятся в заголовках набор данных. Несмотря на то, что они называют это Заголовками , я думаю, что это то, что вы найдете как

labels_en.nq.bz2
labels_en.nt.bz2
labels_en.tql.bz2
labels_en.ttl.bz2 

В списке, на который вы указали. Я не знаю, есть ли способ автоматизировать поиск наборов данных. Было бы хорошо, если бы таблица в свойствах набора данных DBpedia 3.9 была где-то закодирована и могла быть запрошена, потому что тогда это было бы легко.

3
Joshua Taylor 19 Авг 2014 в 19:16
2ct: Я тоже не смог найти способ запросить эти свойства.
 – 
Spork
19 Авг 2014 в 20:00
Спасибо, я внимательно прочитал «Набор данных DBpedia (3.9)» перед тем, как спросить, но даже не заметил ссылку на «Свойства набора данных DBpedia 3.9», они хорошо поработали, скрывая это: D
 – 
user2665887
19 Авг 2014 в 20:52