Using the Wine ontology, I want to create SPARQL query so I can retrieve all wines and their properties like the table below - consider that I don't know the properties' names a priori.
vin | rdf:type | vin:hasMaker | vin:hasSugar | ...
========================================================================== ...
GaryFarrellMerlot | vin:Merlot | vin:Elyse | vin:Dry | ...
--------------------------------------------------------------------------
ElyseZinfandel | vin:Elyse | vin:GaryFarrell | vin:Dry | ...
...
Can someone give me a hint?
-- EDIT
It is not possible to have the query result in the format I mentioned, but I can have it this way:
vin | property | value
=================================================
GaryFarrellMerlot | rdf:type | vin:Merlot
-------------------------------------------------
GaryFarrellMerlot | rdf:hasMaker | vin:Elyse
-------------------------------------------------
...
With this select (thanks cygri):
SELECT DISTINCT ?wine ?property ?value
WHERE {
?o1 a ?class .
?wine a ?o1 .
?wine ?property ?value .
}
This will take wines instead of type of wines (Merlot -> GaryFarrellMerlot). The only problem is it takes wine but also Winery, Regions, Flavours, etc and I wanted only wines and its properties. Besides, there's no such attribute vin:Merlot rdfs:subClassOf vin:Wine. Any hint?
You can't. You need to know beforehand what columns you want in your query result.
Listing all properties of wines isn't very hard of course:
SELECT DISTINCT ?property
WHERE {
?wine a vin:Wine .
?wine ?property ?value .
}
Then you need to write some code that creates the final SPARQL query from the list of results.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With