Извлечение предикатов на основе даты / времени из DBPedia

Я хочу извлечь все операторы из файла дампа DBPedia.

Можно ли написать запрос sparql для извлечения списка предикатов, который содержит значения даты (например, releaseDate, deathDate, birthDate,...)?

1 ответ

Решение

Вы можете написать запрос SPARQL (вы пометили SPARQL, так что, по-видимому, именно так вы хотите запрашивать эти вещи), который находит такие свойства. Все, что вам нужно сделать, это запросить вещи, которые являются owl: DatatypeProperties (поскольку даты должны быть литералами), а затем выполнить фильтрацию на основе их строкового представления. Например:

select ?p where {
  ?p a owl:DatatypeProperty
  filter( contains( str(?p), "Date" ) || contains( str(?p), "date" ))
}
limit 100

Результаты SPARQL

Теперь это вернет любое свойство, строковая форма которого содержит строки "Дата" или "Дата". Вы обнаружите, что большинство из них - это то, что вы ищете. Тем не менее, лучший способ сделать это может состоять в том, чтобы искать вещи, которые имеют xsd: date в качестве диапазона, используя такой запрос:

select ?p where {
  ?p a owl:DatatypeProperty ;
     rdfs:range xsd:date .
}
limit 100

Результаты SPARQL

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

Другие вопросы по тегам