Извлечение предикатов на основе даты / времени из 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
Теперь это вернет любое свойство, строковая форма которого содержит строки "Дата" или "Дата". Вы обнаружите, что большинство из них - это то, что вы ищете. Тем не менее, лучший способ сделать это может состоять в том, чтобы искать вещи, которые имеют xsd: date в качестве диапазона, используя такой запрос:
select ?p where {
?p a owl:DatatypeProperty ;
rdfs:range xsd:date .
}
limit 100
Преимущество этого заключается в том, что вы получите свойства, значения которых должны быть датами, даже если их имя не содержит даты. Например, вы получите: