2012-04-20 16 views
8

Utilizzando la Wine ontology, voglio creare interrogazione SPARQL in modo da poter recuperare tutti i vini e loro proprietà come il tavolo qui sotto - ritengo che non conosco i nomi delle proprietà a priori.di query SPARQL per recuperare tutti gli oggetti e le proprietà

vin     | rdf:type  | vin:hasMaker  | vin:hasSugar | ... 
========================================================================== ... 
GaryFarrellMerlot | vin:Merlot | vin:Elyse   | vin:Dry  | ... 
-------------------------------------------------------------------------- 
ElyseZinfandel  | vin:Elyse | vin:GaryFarrell | vin:Dry  | ... 
... 

Qualcuno può darmi un suggerimento?

- EDIT

Non è possibile avere il risultato della query nel formato ho già detto, ma posso avere in questo modo:

vin    | property  | value 
================================================= 
GaryFarrellMerlot | rdf:type  | vin:Merlot 
------------------------------------------------- 
GaryFarrellMerlot | rdf:hasMaker | vin:Elyse 
------------------------------------------------- 
... 

Con questa select (grazie cygri) :

Questo prenderà vini anziché tipo di vini (Merlot -> GaryFarrellMerlot). L'unico problema è che prende vino ma anche cantina, regioni, sapori, ecc. E volevo solo vini e le sue proprietà. Inoltre, c'è no tale attributo vin: Merlot rdf: subClassOf vin: Vino. Qualche suggerimento?

risposta

11

Non è possibile. È necessario sapere in anticipo quali colonne si desidera nel risultato della query.

Listing tutte le proprietà dei vini non è molto difficile, naturalmente:

SELECT DISTINCT ?property 
WHERE { 
    ?wine a vin:Wine . 
    ?wine ?property ?value . 
} 

allora avete bisogno di scrivere del codice che crea la query SPARQL finale dalla lista dei risultati.

+0

Grazie cygri! hai qualche suggerimento per la mia modifica sopra? – ksiomelo

+3

Bene, l'ontologia del vino non è un semplice modello RDF ma una complessa ontologia OWL. Quindi, per fare cose più complesse, come dedurre che Merlot sia una sottoclasse di Wine, è necessario un OWL reasoner (o probabilmente un triplo store che supporti OWL). – cygri

Problemi correlati