Announcing BBY Open Metis SPARQL Endpoint Alpha

submitted by bernierjohn on Tue, 01/22/2013 - 14:30

Announcing BBY Open Metis SPARQL Endpoint Alpha

Billions of products are available to the average consumer every day, most just a couple of clicks away. Products themselves are made up of a wide range of attributes that influence people's purchasing decisions -- for example, products in the Best Buy catalog have an average of 31 actionable attributes that could make a difference in what a customer ultimately purchases. The number of product attributes range from a couple, in the case of a simple object like a gift card, to near 100 in the case of a home appliance. With these complex product offerings humans (both consumers and employees) are at a disadvantage. As a consumer, have you ever been challenged to find that one product that exactly fits your needs? How many times have you been disappointed with a product's features and returned the item?

BBY Open believes the answer to more intelligent shopping lies in smarter, more in-depth queries of product data. That's why we're happy to announce the second phase release of our product insight engine, Metis. To enable deep product data querying, we have released our first SPARQL endpoint at http://metis.bbyopen.com/sparql?query=, now available for public queries.

So if you're scratching your head a bit, let's try to clear things up with an example. Say I'm interested in highly rated Sony products with three or more reviews, like: "Find me all Sony products with a rating of 4.5 or higher as long as there are at least 3 reviews, order by price and give me back the first 100."
The subsequent SPARQL query would look something like this:


PREFIX gr: <http://purl.org/goodrelations/v1#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX v: <http://rdf.data-vocabulary.org/#>
SELECT ?product ?productName ?price ?average ?total
WHERE {
?offering gr:includesObject ?object ;
gr:hasPriceSpecification ?ps .
?ps gr:hasCurrencyValue ?price .
?object gr:typeOfGood ?x .
?x gr:hasMakeAndModel ?product .
?product gr:hasManufacturer ?entity ;
gr:name ?productName .
?entity gr:legalName 'Sony' .
?x v:hasReview ?aggregate .
?aggregate v:average ?average ;
v:count ?total .
FILTER( ?price > "10.00"^^xsd:float)
FILTER( ?total > "3.00"^^xsd:float)
FILTER( ?average > "4.50"^^xsd:float)
}
ORDER BY DESC(?price)
LIMIT 100

Click here to see result in a browser
Or "Show me 100 Ukelele-related Best Buy products between 10 and 100 dollars":


PREFIX gr: <http://purl.org/goodrelations/v1#>
SELECT ?name ?price
WHERE {
?offering gr:includesObject ?object;
gr:hasPriceSpecification ?ps .
?ps gr:hasCurrencyValue ?price .
?object gr:typeOfGood ?good .
?good gr:hasMakeAndModel ?make . ?make gr:name ?name . FILTER( ?price > '10.00'^^xsd:float && ?price < '100.00'^^xsd:float && regex(?name, '^Ukulele', 'i'))
} ORDER BY DESC(?price)
LIMIT 100

Click here to see result in a browser

From these examples we can see how the Metis SPARQL endpoint starts to open the door for developers to build rich product data experiences that semantically engage customers in discovering Best Buy products deep inside our catalog. If directly querying data resources isn't your thing, or if you are unfamiliar with semantic web technologies, please stay tuned -- in the coming weeks, the Metis team will be churning out simple RESTful API endpoints for developers to enable everyone to take advantage of this powerful technology.

As always, check for updates, service releases and pose your questions on Twitter, @bbymetis.

blog comments powered by Disqus