Получение rdf: типа узла root - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть следующие данные:

@prefix ex: <http://example.com/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sch: <http://schema.org/> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<ex:a4fe06ac906b092870> a ex:XXXX ;
    ex:pA [ a ex:YYYY ;
            ex:bar "value" ;
            ex:foo "" ;
            ex:name "another_name" ] ;
    ex:pB "another_value" ;
    ex:pC [ a ex:ZZZZ ;
            ex:identifier "the id" ;
            ex:index "asdf" ] .

, которые можно визуализировать как this .

Узел root определен как узел без входящих ребер.

Узел root в этом примере это ex: a4fe06ac906b092870, а тип rdf: ex: XXXX.

Какой запрос SPARQL вернет мне, например: XXXX?

1 Ответ

1 голос
/ 28 апреля 2020

Исходя из комментария UninformedUser, запрос SPARQL, который будет возвращать тип rdf: узла root:

        SELECT ?o 
        WHERE { 
            ?s a ?o . 
            FILTER NOT EXISTS {
                ?s_in ?p_in ?s .
            } 
        }

Поскольку желателен тип rdf: типа root, только те предметы с краем rdf: type должны быть рассмотрены (?s a ?o .).

?s_in ?p_in ?s . в фильтре будет сопоставлять все узлы с ребром rdf: type, имеющим входящее ребро. Затем эти узлы отфильтровываются по результатам.

Остается только rdf: тип узла root.

...