Как проверить расстояние до верхней категории в dbpedia в sparql - PullRequest
0 голосов
/ 03 июля 2019

Я использую следующий запрос, чтобы получить категории dbpedia (т.е. skos:broader|dct:subject) данного URI dbpedia.

all_urls = ['http://dbpedia.org/resource/Machine_learning', 'http://dbpedia.org/resource/Category:Machine_learning']

for url in all_urls:
    print("------")
    print(url)
    print("------")
    sparql.setQuery("""
        SELECT * WHERE {<"""
             +url+
            """>skos:broader|dct:subject ?resource 
            }
    """)

    sparql.setReturnFormat(JSON)
    results = sparql.query().convert()

    for result in results["results"]["bindings"]:
        print('resource ---- ', result['resource']['value'])

Вывод:

------
http://dbpedia.org/resource/Machine_learning
------
resource ----  http://dbpedia.org/resource/Category:Cybernetics
resource ----  http://dbpedia.org/resource/Category:Learning
resource ----  http://dbpedia.org/resource/Category:Machine_learning
------
http://dbpedia.org/resource/Category:Machine_learning
------
resource ----  http://dbpedia.org/resource/Category:Artificial_intelligence
resource ----  http://dbpedia.org/resource/Category:Learning

Теперь я хочу проверить расстояние каждой категории в выводе до верхнего уровня системы категорий dbpedia (в соответствии с моим текущим пониманием dbc:Contents - это верхний элемент в иерархии skos: broder и dct: subject). Возможно ли это сделать в sparql?

Я рад предоставить более подробную информацию, если это необходимо.

...