2011-11-30 13 views
7

मान लीजिए कि मेरे पास विषम जेएसओएन दस्तावेज़ों (यानी नाम-मूल्य-मूल्य मैपिंग) का एक बड़ा हिस्सा है और कक्षाओं (यानी नामित सेट) का पदानुक्रम है कि ये दस्तावेज़ संलग्न हैं। मुझे एक डेटा संरचना स्थापित करने की आवश्यकता है जो अनुमति देगा:क्या आरडीएफ स्टोरेज का उपयोग दस्तावेज़-उन्मुख डेटाबेस के रूप में भी करना संभव है?

  1. JSON दस्तावेज़ों पर सीआरयूडी संचालन।
  2. आईडी द्वारा JSON दस्तावेज़ों को पुनर्प्राप्त करना वास्तव में
  3. एक निश्चित वर्ग से जुड़े सभी JSON दस्तावेज़ों को पुनर्प्राप्त करना वास्तव में
  4. संपादन वर्ग पदानुक्रम: कक्षाओं को जोड़ना/हटाना, उन्हें पुनर्व्यवस्थित करना।

मैं शुरू में एक दस्तावेज़ उन्मुख डेटाबेस में JSON दस्तावेज़ (CouchDB या MongoDB की तरह) भंडारण और (4store) की तरह एक RDF भंडारण में वर्ग पदानुक्रम के भंडारण के विचार के साथ आया था गए हैं। 1, 2 और 4 तब स्वाभाविक रूप से पता लगाए जाते हैं, और भंडारण में प्रत्येक वर्ग के लिए संलग्न दस्तावेज़ आईडी की सूची बनाए रखकर हल किया जाता है।

लेकिन फिर मुझे लगा कि एक आरडीएफ स्टोरेज वास्तव में आईडी द्वारा JSON दस्तावेज़ों को पुनर्प्राप्त करने के दस्तावेज़-उन्मुख हिस्से को कर सकता है। पहली नज़र में यह सच लगता है, लेकिन मुझे अभी भी 2 और 3 के बारे में चिंता है। क्या कोई आरडीएफ स्टोरेज है जो दस्तावेज (नोड्स) को स्पीड दस्तावेज़-उन्मुख डीबी के सेवा दस्तावेजों पर पुनर्प्राप्त करने में सक्षम है? यह -जैसी प्रश्नों की कितनी तेजी से सेवा करेगा? मैंने आरडीएफ स्टोरेज धीमा, संशोधन समस्या इत्यादि के बारे में कुछ सुना है।

क्या कोई आरडीएफ स्टोरेज है जो आईडी द्वारा आकस्मिक पुनर्प्राप्ति वस्तुओं के लिए आरामदायक है, उदाहरण के लिए? जेएसओएन जैसी वस्तुओं को संग्रहीत करने, पुनर्प्राप्त करने और संपादित करने के लिए दस्तावेज़-उन्मुख और आरडीएफ स्टोरेज का उपयोग करने के बीच क्या अंतर है?

+0

क्या आप "reification समस्या" मतलब है के द्वारा किया जा सकता है? –

उत्तर

1

आरडीएफ डेटाबेस में आप उपयोग की जाने वाली सबसे नज़दीकी चीज को ग्राफ़ नाम दिया गया है। एक नामित ग्राफ में, आप आरडीएफ ट्रिपल का एक सेट डाल सकते हैं। आपकी जरूरतों के आधार पर ट्रिपल के इस सेट को एक या कई आरडीएफ दस्तावेज़ों से ज़ोर दिया जा सकता है। आइए कहें कि आप आरडीएफ दस्तावेज़ प्रति नाम एक ग्राफ चाहते हैं। आप एक यूआरआई के साथ ग्राफ का नाम दे सकते हैं जो फाइल स्थान को यूआरएल या आईआरआई को दर्शाता है। उदाहरण के लिए ...

http://yourdomain/files/rdf_file_1 

या

file:///home/myrdffiles/file1 

4store एक ट्रैक्टर दुकान है। क्वाड स्टोर्स का समर्थन ग्राफ नाम और 4 स्टोर विशेष रूप से इसे संभालने के लिए डिज़ाइन किया गया है।

4store आप एक नाम पर ग्राफ़ में ट्रिपल जोर के लिए निम्न आदेश चला सकते हैं के साथ

:

curl -T your_file.rdf http://your_4store_database/data/http://yourdomain/files/rdf_file_1 

/data/ के बाद आप ग्राफ पहचानकर्ता (IRI) जहां ट्रिपल बात पर जोर दिया जा रहा है डाल सकते हैं। अधिक जानकारी के लिए 4store sparql server और 4store Client Libs देखें।

अपने डेटा इस बात पर जोर एक बार जब आप किया है, SPARQL साथ आप यह भी कहा कि ग्राफ के लिए आपकी क्वेरी निर्देशित करने के लिए नामित किया गया ग्राफ़ का उपयोग कर सकते हैं:

SELECT * WHERE { 
    GRAPH <http://youdomain/files/rdf_file_1> { 
     .... some triple patterns in here .... 
    } 
} 

इसके अलावा, 4store भी JSON का समर्थन करता है ताकि आप SPARQL resultset में सीधे प्राप्त कर सकते हैं JSON।

आप 4store आप बहुमूल्य समर्थन यहाँ मिल जाएगा उपयोग करना चाहते हैं: http://4store.org/contact

5

आप मूल रूप से ग्राफ डेटाबेस के लिए इस प्रश्न पूछा (जैसे Neo4j)। यही कारण है कि मैं कुछ नोट्स जोड़ना चाहता हूं।

  1. ग्राफ़ डेटाबेस का उपयोग एकीकृत नोड्स (और रिश्तों) तो अपने दस्तावेजों की जड़ नोड्स के लिए तेजी से प्रारंभिक देखने के लिए indexing पथ के लिए ग्राफ सूचकांकों में है कि (बाहरी या में ग्राफ अनुक्रमित) के माध्यम से किया जाता है
  2. अतिरिक्त (वास्तव में जड़ तक पेड़) तैयार किया जा सकता है कि बस क्लीनर मुख्य-मान देखने)
  3. के रूप में गुणों के साथ नोड्स के पेड़ आप किसी भी सरल है, और जटिल CRUD संचालन संरचनात्मक कर सकते हैं (यह भी आप अपने दस्तावेज़ों मॉडल हैं)
  4. वापस लाने "टाइप" या "क्लास" के सभी दस्तावेज फिर से एक इंडेक्स (इंडेक्स रूट नोड्स टाइप करने के लिए) द्वारा किए जा सकते हैं ओ ग्राफ श्रेणी नोड्स में आर
  5. आप एक पदानुक्रम (या ग्राफ) जो तब सामान्य ग्राफ डेटाबेस API
  6. ग्राफ traversing का उपयोग कर संपादित किया जा सकता में उन "प्रकार या वर्ग" श्रेणी-नोड्स डाल सकते हैं traversers उपयोग किया जा सकता/एकीकृत ग्राफ क्वेरी भाषा (उदाहरण के लिए cypher for Neo4j)
  7. लोड हो रहा है श्रेणीबद्ध डेटा या तो कस्टम आयातकों या एक अधिक सामान्य उप ग्राफ आयातक (जैसे GEOFF)
संबंधित मुद्दे

 संबंधित मुद्दे