Запрос SPARQL для возврата определителей оператора

#sparql #wikidata

#sparql #викиданные

Вопрос:

Я использую приведенный ниже запрос для возврата сведений о Google.

 SELECT
?property
?propertyLabel
?qval
(GROUP_CONCAT(DISTINCT ?val_Label; separator="; ") AS ?val_Label) WHERE {
    ?property a wikibase:Property; wikibase:claim ?p; wikibase:statementProperty ?ps; wikibase:qualifier ?pq.
    ?property rdfs:label ?propertyLabel . FILTER (LANG(?propertyLabel) = 'en' )
    ?company ?p ?statement . ?statement wikibase:rank ?rank .
    FILTER (?rank IN (wikibase:NormalRank, wikibase:PreferredRank))
    ?statement ?ps ?value . # URI, literal or blank node
    OPTIONAL {?value rdfs:label ?valueLabel . FILTER (LANG(?valueLabel) = 'en')}
    BIND (COALESCE(?valueLabel, ?value) AS ?val_Label)
    OPTIONAL { ?statement ?pq ?qval }
} GROUP BY ?property ?propertyLabel ?qval
  VALUES (?company) {(wd:Q95)}
  

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

Комментарии:

1. Свойства значения квалификатора не совпадают со свойствами, возвращаемыми ?pq переменной. wikibase:qualifier возвращает только представление определителя свойства, например, для того, чтобы wd:P169 оно возвращало pq:P169 , но свойства определителя, используемые в инструкции, обычно отличаются. Например, pq:P580 (время начала) или pq:P582 (время окончания)

2. Или я неправильно понял ваш вопрос? Например, для заявления главного исполнительного директора вам нужны квалификаторы времени начала и окончания или нет?

3. Это верно, и, например, на фондовой бирже есть символ тикера, я бы тоже хотел его получить. Если у какого-либо свойства есть ссылки, я хотел бы также получить их.

4. Эти свойства просто прикреплены к самой инструкции. Вам пришлось бы отфильтровать свойства для тех, которые находятся в пространстве имен определителей. Но я все еще не понимаю, как должен выглядеть ваш конечный результат. Прямо сейчас у вас есть значения в виде объединенной строки.

5. WHERE {?property a wikibase:Property; wikibase:claim ?p; wikibase:statementProperty ?ps.?property rdfs:label ?propertyLabel . FILTER (LANG(?propertyLabel) = 'en' ) ?company ?p ?statement . ?statement wikibase:rank ?rank . FILTER (?rank IN (wikibase:NormalRank, wikibase:PreferredRank)) optional{?statement ?pq ?qval filter(strstarts(str(?pq), str(pq:)) amp;amp; !strstarts(str(?pq), str(pqv:)))} ?statement ?ps ?value . # URI, literal or blank node OPTIONAL {?value rdfs:label ?valueLabel . FILTER (LANG(?valueLabel) = 'en')}BIND (COALESCE(?valueLabel, ?value) AS ?val_Label) }