मेरे पास SPARQL के बारे में एक सवाल है।SPARQL: कक्षा पदानुक्रम की गहराई अज्ञात है, तो एक ऑन्टोलॉजी का बीमा कैसे प्राप्त करें?
Animals (is a superclass with object property <hasColor>)
------ Mammals (subclass of Animals)
------------- Dog (subclass of Mammals)
---------------- dog1 (a instance with property <hasColor>="white")
---------------- dog2 (a instance with property <hasColor>="red" )
------ Bird (subclass of Animals)
यह SPARQL के साथ "सभी पशु, कि 'सफेद' कर रहे हैं" या "पशु के सभी उदाहरणों" खोजने के लिए संभव है: मैं जानवरों के एक सत्तामीमांसा है? और पीछे: मैं कैसे जान सकता हूं, अगर एक उदाहरण (dog1) जानवरों से संबंधित है?
नोट: कक्षा पदानुक्रम की गहराई और चौड़ाई अग्रिम में अज्ञात है।
इसके अलावा नीचे दिए गए क्वेरी
SELECT ?x WHERE {?x rdfs:subClassOf :Animals . ?x :hasСolor "white"}
काम नहीं करेगा और अगले क्वेरी (सभी पशु, कि 'सफेद' कर रहे हैं) केवल तभी कारगर साबित वर्ग पदानुक्रम की गहराई में जाना जाता है। (तो अगर पदानुक्रम में जाना जाता है, मैं लक्ष्य तक पहुंचने के नीचे करने के लिए पदानुक्रम) के ऊपर से निर्दिष्ट कदम (कर सकते हैं:। 2 कदम इस मामले में
SELECT ?z WHERE {
?x rdfs:subClassOf :Animals .
?y rdfs:subClassOf ?x .
?z rdf:type ?y .
?z :hasColor "white"
}
ही अगले उदाहरण के लिए सच है - "पशु के सभी उदाहरणों को खोजने के"
SELECT ?z WHERE {
?x rdfs:subClassOf :Animals .
?y rdfs:subClassOf ?x .
?z rdf:type ?y .
}
क्या करें, अगर hierarchie अज्ञात है?
क्वेरी SDB साथ कार्रवाई की जाएगी (है के एक घटक के जेना)। select ?x where {?x rdfs:subClassOf :Animals . ?x :hasСolor "white"})
युपीडी:
मैं की तरह कुछ करना चाहते हैं। समाधान इस प्रकार दिखाई देंगे "सभी पशु (उदाहरण), कि 'सफेद' कर रहे हैं" के लिए?
चयन y कहां {x rdfs: subClassOf *: पशु। ? वाई rdf: टाइप? एक्स। ? Y : hasColor "सफेद"}
धन्यवाद! मैंने प्रोटेज के साथ क्वेरी का परीक्षण किया। चुनें? एक्स कहां {? X rdfs: subClassOf *: Animals} ठीक काम करता है। लेकिन चुनें? एक्स कहां {? X rdfs: subClassOf *: पशु। ? x: hasСolor "white"} कोई मिलान नहीं मिला – ERG
इसकी अजीब क्वेरी SELECT? x? y WHERE {? x rdfs: subClassOf *: Animals। ? y rdf: type? x। "} ठीक काम करता है और सभी उदाहरण लौटाता है, लेकिन अगर जोड़ना (? x: हैसोलर" सफेद ") को यह कोई मिलान नहीं मिला है – ERG
@ERG: और 'SELECT? x के बारे में क्या है {? x rdfs : subClassOf *: पशु।? y rdf: type? x।? y: hascolor "white"} '? –