Я написал запрос формы ниже, чтобы извлечь данные из 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