Запрос SPARQL для извлечения свойства schema.org/Product isSimilarTo

Я написал запрос формы ниже, чтобы извлечь данные из schema.org/Product, однако есть свойство isSimilarTo, связанное с schema.org/Product, которое может иметь несколько значений, мне нужно извлечь все значения для свойства isSimilarTo в массив для каждого продукта. Как я мог этого добиться?

Я использую аналогичный запрос, как показано ниже:

PREFIX schema: <http://schema.org/> 
PREFIX xsd:    <http://www.w3.org/2001/XMLSchema#> 

SELECT ?productName ?modelNumber ?price ?sellerName 
WHERE {
   ?product a schema:Product . 
   ?product schema:name ?productNameVal . 
   # str() to strip any language tags
   BIND(str(?productNameVal) AS ?productName)
   ?product schema:model ?modelNumberVal . 
   BIND(str(?modelNumberVal) AS ?modelNumber)
   ?product schema:offers ?offer . 
   ?offer a schema:Offer . 
   ?offer schema:price ?priceVal . 
   # Remove $ and cast to decimal
   BIND(xsd:decimal(replace(?priceVal,"\\$","")) AS ?price)
   ?offer schema:seller ?seller. 
   # In case there's a level of indirection for seller name
   OPTIONAL {
    ?seller schema:name ?sellerSchemaName . 
   }
   BIND(str(coalesce(?sellerSchemaName,?seller)) AS ?sellerName )
}
ORDER BY ?modelNumber ?price

person user1965449    schedule 23.01.2015    source источник
comment
В SPARQL нет понятия массива. Если вы хотите, чтобы несколько значений были связаны с другим, вы обычно просто получаете несколько строк и, возможно, упорядочиваете их по основному (например, чтобы получить такие строки, как a, a1, a, a2 и т. д.). Однако, если вам абсолютно необходим какой-то массив, подобный формату, возможно, тот, который вы можете проанализировать локально, вы можете найти подходящий ответ в разделе Агрегирование результатов. из запроса SPARQL.   -  person Joshua Taylor    schedule 24.01.2015