В настоящее время я ищу способ запросить DBPedia в базе данных Infobox Onyology через конечную точку SPARQL, чтобы получить список классов, подклассов выбранного класса и свойств данного класса.Насколько я смог найти, вам нужно либо знать свойство, которое вы ищете, либо искать что-то конкретное - все примеры, которые я нашел, основаны на идее, что вы захотите найти что-то конкретное(например, население городов выше определенной высоты и т. д.), тогда как я хотел бы создать что-то, где я мог бы эффективно «просматривать» категории.Например, начиная со списка подклассов «owl: Thing» на этой диаграмме иерархии классов и представляя пользователю список подклассов выбранного подкласса.Кажется возможным просмотреть что-то вроде этого через вики отображений, но было бы предпочтительнее напрямую запросить конечную точку SPARQL.
Есть ли какой-нибудь простой запрос SPARQL, который бы возвращал доступные классы и свойства этих классов?
Обновление: Я нашел способ получить иерархию классов, как кажется, путем итерации по этого запроса:
SELECT ?subject WHERE {
?subject rdfs:subClassOf owl:Thing
}
Который возвращает список подклассов owl: Thing, и если я заменяю owl: Thing одним из подклассов, я получаю список подклассов этого, пока нет подклассов, и в этот момент я могу выбрать все ресурсы, которые имеюттип, заданный выбранным подклассом.Я все еще не совсем уверен, как получить все свойства, общие для подкласса.
Обновление 2 Становимся ближе.Этот запрос возвращает мне все свойства (потомки dbpedia: property), которые также являются страной, и их названия:
SELECT DISTINCT ?prop ?title WHERE {
?country ?prop ?value.
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
}
Это фактически все, что я действительно просил.Последнее, что я сейчас пытаюсь сделать, это попытаться упорядочить их по количеству страниц, на которых они появляются (предположительно, наиболее распространенные свойства будут наиболее интересными).