سيمينٽڪ ويب ۽ ڳنڍيل ڊيٽا ٻاهرين خلا وانگر آهن: اتي زندگي ناهي. اتي وڃڻ لاءِ گهٽ يا گهٽ وقت جي ڊگهي عرصي لاءِ... خير، مون کي خبر ناهي ته هنن توهان کي ٻار جي حيثيت ۾ ڇا چيو هو ان جي جواب ۾ ”مان خلاباز بڻجڻ چاهيان ٿو. پر توهان مشاهدو ڪري سگهو ٿا ته ڌرتيء تي ڇا ٿي رهيو آهي؛ اهو تمام آسان آهي هڪ شوقين astronomer يا اڃا به هڪ پیشہ ور.
آرٽيڪل تازو تي ڌيان ڏيندو، ڪيترن ئي مهينن کان پراڻي، آر ڊي ايف اسٽوريج جي دنيا مان رجحانات. پهرين پيراگراف ۾ استعارا ڪٽ جي هيٺان ايپيڪ سائز جي اشتهارن جي تصوير کان متاثر ڪيو ويو.
ايپيڪ تصوير

I. RDF رسائي لاءِ GraphQL
ته GraphQL جو مقصد هڪ آفاقي ڊيٽابيس تائين رسائي واري ٻولي بڻجڻ آهي. GraphQL استعمال ڪندي RDF تائين رسائي جي صلاحيت بابت ڇا؟
دٻي مان هي موقعو فراهم ڪيو ويو آهي:
- اسٽار ڊاگ (, );
- TopQuadrant پراڊڪٽس (, ).
جيڪڏهن مخزن اهڙو موقعو فراهم نٿو ڪري، اهو آزاديءَ سان لاڳو ڪري سگهجي ٿو هڪ مناسب ”حل ڪندڙ“ لکڻ سان. اھو اھو آھي جيڪو انھن ڪيو، مثال طور، فرانسيسي منصوبي ۾ . يا توهان هاڻي ڪجهه به نه لکي سگهو ٿا، پر صرف وٺو .
سيمينٽڪ ويب ۽ لنڪ ٿيل ڊيٽا جي هڪ آرٿوڊوڪس پيروڪار جي نقطي نظر کان، اهو سڀ ڪجهه، يقينا، افسوسناڪ آهي، ڇاڪاڻ ته اهو لڳي ٿو ته ايندڙ ڊيٽا سائلو جي چوڌاري ٺهيل انضمام لاء ٺهيل آهي، ۽ مناسب پليٽ فارم (آر ڊي ايف اسٽورز، يقينا) .
GraphQL کي SPARQL سان ڀيٽڻ جا تاثر ٻه ڀيرا آهن.
- هڪ طرف، GraphQL SPARQL جي هڪ ڏور رشتي وانگر نظر اچي ٿو: اهو سوالن جي ٻيهر نموني ۽ گهڻائي جي مسئلن کي حل ڪري ٿو جيڪي عام طور تي REST لاءِ آهن - جنهن جي بغير، شايد، ان تي غور ڪرڻ ممڪن نه هوندو. سوال جي ٻولي, گهٽ ۾ گهٽ ويب لاء؛
- ٻئي طرف، گرافڪ ايل جي سخت اسڪيما مايوس ڪندڙ آهي. ان جي مطابق، ان جي "تفصيل" تمام محدود لڳي ٿي RDF جي مڪمل موٽڻ جي مقابلي ۾. ۽ ملڪيت جي رستن جو ڪو به analogue نه آهي، تنهنڪري اهو اڃا به واضح ناهي ته اهو "Graph-" ڇو آهي.
II. MongoDB لاءِ اڊاپٽر
ھڪڙو رجحان جيڪو اڳئين ھڪڙي کي پورو ڪري ٿو.
- Stardog ۾ هاڻي - خاص طور تي، سڀ هڪ ئي GraphQL تي - مونگو ڊي بي ڊيٽا جي نقشي کي ورچوئل آر ڊي ايف گرافس ۾ ترتيب ڏيو؛
- گراف ڊي بي تازو ڪيو آهي مونگو ڊي بي سوال تي SPARQL ۾ ٽڪرا داخل ڪريو.
جيڪڏهن اسان JSON ذريعن جي اڊاپٽرن جي باري ۾ وڌيڪ وسيع طور تي ڳالهايون ٿا، جيڪي انهن ذريعن ۾ محفوظ ڪيل JSON کي RDF جي طور تي نمائندگي ڪرڻ جي اجازت ڏين ٿا، وڌيڪ يا گهٽ، اسان کي ياد ڪري سگهون ٿا ڪافي ڊگهو. جنهن کي ترتيب ڏئي سگهجي ٿو، ، اپاچي جينا ڏانهن.
پهرين ٻن رجحانن کي اختصار ڪندي، اسان اهو چئي سگهون ٿا ته RDF اسٽوريج "پولي گلوٽ تسلسل" جي حالتن ۾ انضمام ۽ آپريشن لاءِ مڪمل تياري جو مظاهرو ڪن ٿا. اهو معلوم ٿئي ٿو، تنهن هوندي به، اهو آخري ڊگهي عرصي کان فيشن کان ٻاهر آهي، ۽ ان کي تبديل ڪيو پيو وڃي ملٽي ماڊل. RDF اسٽوريج جي دنيا ۾ ملٽي ماڊلنگ بابت ڇا؟
مختصر ۾، ڪو به طريقو. مان هڪ الڳ مضمون ڏيڻ چاهيان ٿو ملٽي ماڊل ڊي بي ايم ايسز جي موضوع تي، پر هن وقت اهو نوٽ ڪري سگهجي ٿو ته في الحال ڪو به ملٽي ماڊل ڊي بي ايم ايس نه آهن ”بنياد“ گراف ماڊل تي (RDF ان جو هڪ قسم سمجهي سگهجي ٿو) . ڪجھ ننڍا ملٽي ماڊلنگ - متبادل LPG گراف ماڊل لاءِ آر ڊي ايف اسٽوريج سپورٽ - ۾ بحث ڪيو ويندو .
III. OLTP بمقابلہ OLAP
بهرحال، ساڳيو گارٽنر اهو ملٽي ماڊل بنيادي طور تي هڪ غير شرط آهي آپريٽنگ ڪمرا ڊي بي ايم ايس. اهو سمجھڻ وارو آهي: "ملٽي ويريٽ اسٽوريج" جي صورتحال ۾، بنيادي مسئلا ٽرانزيڪشن سان پيدا ٿين ٿا.
پر ڪٿي آهن RDF اسٽوريج OLTP-OLAP پيماني تي واقع آهن؟ مان هن طرح جواب ڏيندس: نه اتي ۽ نه هتي. ظاهر ڪرڻ لاءِ انهن جو مقصد ڇا آهي، ڪجهه ٽيون مخفف گهربل آهي. هڪ اختيار جي طور تي مان تجويز ڪندس اوليپ - آن لائين دانشورانه پروسيسنگ.
تنهن هوندي به:
- GraphDB ۾ لاڳو ڪيل MongoDB سان گڏ انضمام واري ميڪانيزم گهٽ ۾ گهٽ نه آهن لکڻ جي ڪارڪردگي جي مسئلن جي چوڌاري ڪم ڪرڻ؛
- Stardog اڃا به وڌيڪ ۽ مڪمل طور تي وڃي ٿو انجڻ، ٻيهر رڪارڊنگ ڪارڪردگي کي بهتر بڻائڻ جي مقصد سان.
ھاڻي مون کي مارڪيٽ ۾ ھڪڙو نئون پليئر متعارف ڪرائڻ ڏيو. IBM Netezza ۽ Amazon Redshift جي ٺاهيندڙن کان - . هڪ پراڊڪٽ جي اشتهار مان هڪ تصوير ان جي بنياد تي آرٽيڪل جي شروعات ۾ پوسٽ ڪئي وئي هئي. AnzoGraph پوزيشن پاڻ کي هڪ GOLAP حل جي طور تي. توهان ونڊو فنڪشن سان SPARQL ڪيئن پسند ڪندا آهيو؟ -
SELECT ?month (COUNT(?event) OVER (PARTITION BY ?month) AS ?events) WHERE { … }IV. RocksDB
اڳ ۾ ئي اعلي Stardog 7 Beta جي اعلان تي، جنهن چيو ته Stardog RocksDB کي بنيادي اسٽوريج سسٽم طور استعمال ڪرڻ وارو آهي - هڪ اهم-ويل اسٽور، گوگل جي ليول ڊي بي جو هڪ فيسبوڪ فورڪ. اهو هڪ خاص رجحان بابت ڳالهائڻ جي قابل ڇو آهي؟
پهريون، فيصلو ڪندي ، نه رڳو آر ڊي ايف اسٽوريج RocksDB ڏانهن ”ٽرانسپلانٽ“ ٿيل آهن. ArangoDB، MongoDB، MySQL ۽ MariaDB، Cassandra ۾ RocksDB کي اسٽوريج انجڻ جي طور تي استعمال ڪرڻ جا منصوبا آهن.
ٻيو، منصوبا (يعني نه پراڊڪٽس) لاڳاپيل عنوانن تي ٺاهيا ويا آهن RocksDB تي.
مثال طور، eBay استعمال ڪري ٿو RocksDB in توهان جي "علم جي گراف" لاء. رستي ۾، اهو پڙهڻ لاء مذاق آهي: پڇا ڳاڇا جي ٻولي گھر ۾ پيدا ٿيل فارميٽ جي طور تي شروع ڪئي وئي، پر تازو ئي ان کي منتقل ڪيو ويو آهي وڌيڪ SPARQL وانگر. جيئن ته مذاق ۾: ڪو مسئلو ناهي ڪيترو علم گراف اسان ٺاهيو، اسان اڃا تائين RDF سان ختم ڪريون ٿا.
ٻيو مثال - جيڪو ڪجهه مهينا اڳ ظاهر ٿيو . ان جي تعارف کان اڳ، Wikidata جي تاريخي معلومات تائين رسائي حاصل ڪرڻي پوندي هئي معياري Mediawiki API ڏانهن. هاڻي تمام گهڻو ممڪن آهي خالص SPARQL سان. "هوڊ جي هيٺان" پڻ آهي RocksDB. رستي جي ذريعي، WDHQS ٺاهيو ويو، اهو لڳي ٿو، ان شخص طرفان جيڪو درآمد ڪيو فري بيس کي Google Knowledge گراف ۾.
V. LPG سپورٽ
اچو ته توهان کي ياد ڏياريان ته LPG گرافس ۽ RDF گرافس جي وچ ۾ بنيادي فرق.
ايل پي جي ۾، اسڪالر پراپرٽيز کي ايج مثالن لاءِ تفويض ڪري سگھجن ٿا، جڏهن ته آر ڊي ايف ۾ اهي صرف ايج ”قسم“ کي تفويض ڪري سگھجن ٿا (پر نه رڳو اسڪالر پراپرٽيز، پر عام ڪنيڪشن پڻ). ايل پي جي جي مقابلي ۾ آر ڊي ايف جي هي حد هڪ يا ٻيو ماڊلنگ ٽيڪنڪ. RDF جي مقابلي ۾ LPG جي حدن کي ختم ڪرڻ وڌيڪ ڏکيو آهي، پر LPG گرافس آر ڊي ايف گراف جي ڀيٽ ۾ هاري درسي ڪتاب جي تصويرن وانگر وڌيڪ آهن، ڇو ته ماڻهو انهن کي چاهيندا آهن.
ظاهر آهي، "ايل پي جي سپورٽ" جو ڪم ٻن حصن ۾ ٿئي ٿو:
- آر ڊي ايف ماڊل ۾ تبديليون آڻيندي جيڪا ان ۾ ايل پي جي جي جوڙجڪ کي تخليق ڪرڻ ممڪن بڻائي ٿي؛
- RDF سوالن جي ٻولي ۾ تبديليون آڻيندي جيڪا هن تبديل ٿيل ماڊل ۾ ڊيٽا تائين رسائي ممڪن بڻائي ٿي، يا مشهور LPG سوالن جي ٻولين ۾ هن ماڊل تي سوال ڪرڻ جي صلاحيت کي لاڳو ڪرڻ.
V.1. ڊيٽا ماڊل
هتي ڪيترائي ممڪن طريقا آهن.
V.1.1. سنگلٽن ملڪيت
آر ڊي ايف ۽ ايل پي جي کي همٿائڻ لاءِ سڀ کان وڌيڪ لفظي طريقو شايد آهي :
- ان جي بدران، مثال طور، اڳڪٿي
:isMarriedToاڳڪٿيون استعمال ڪيون وينديون آهن:isMarriedTo1,:isMarriedTo2۽ وغيره تي. - اهي اڳڪٿيون پوءِ نون ٽرپلٽس جا موضوع بڻجي وڃن ٿيون:
:isMarriedTo1 :since "2013-09-13"^^xsd:date۽ ٻيا. - اڳڪٿين جي انهن مثالن جو ڪنيڪشن هڪ عام پيشڪش سان گڏ فارم جي ٽن حصن جي ذريعي قائم ڪيو ويو آهي
:isMarriedTo1 rdf:singletonPropertyOf :isMarriedTo. - ظاهر آهي،
rdf:singletonPropertyOf rdfs:subPropertyOf rdf:type، پر سوچيو ته توهان کي صرف لکڻ ڇو نه گهرجي:isMarriedTo1 rdf:type :isMarriedTo.
"LPG سپورٽ" جو مسئلو هتي RDFS سطح تي حل ڪيو ويو آهي. اهڙي فيصلي کي مناسب ۾ شامل ڪرڻ جي ضرورت آهي . RDF اسٽورن لاءِ ڪجھ تبديليون گھربل ٿي سگھن ٿيون جيڪي ڳنڍڻ جي نتيجن جي حمايت ڪن ٿيون، پر ھاڻي، سنگلٽن پراپرٽي کي صرف ھڪڙي ماڊلنگ ٽيڪنڪ جي طور تي سوچي سگھجي ٿو.
V.1.2. ريفڪيشن صحيح ٿي ويو
گهٽ بيوقوف طريقا ان احساس مان نڪرندا آهن ته ملڪيت جا مثال مڪمل طور تي ٽنهي طرفن کان تڪڙي هوندا آهن. ٽنڊي الهيار بابت ڪجهه چوڻ سان، اسان ملڪيت جي مثالن بابت ڳالهائڻ جي قابل ٿي سگهنداسين.
انهن طريقن مان سڀ کان وڌيڪ مضبوط آهي ، عرف آر ڊي آر، Blazegraph جي کوٽائي ۾. اهو شروع کان ئي آهي پنهنجي لاء ۽ AnzoGraph لاء. طريقه ڪار جي پختگي جو اندازو لڳايو ويو آهي حقيقت اها آهي ته ان جي فريم ورڪ اندر ۾ لاڳاپيل تبديليون . نقطي، بهرحال، انتهائي سادو آهي. RDF جي Turtle serialization ۾ توھان ھاڻي ڪجھ ھن طرح لکي سگھو ٿا:
<<:bob :isMarriedTo :alice>> :since "2013-09-13"^^xsd:date .V.1.3. ٻيا طريقا
توهان باضابطه اصطلاحن سان تنگ نه ٿا ڪري سگهو، پر صرف اهو فرض ڪريو ته ٽرپلٽس وٽ ڪجهه سڃاڻپ ڪندڙ آهن، جيڪي، يقينا، URIs آهن، ۽ انهن URIs سان نوان ٽريپلٽ ٺاهي رهيا آهن. باقي اهو آهي ته SPARQL ۾ انهن URIs تائين رسائي ڏيو. سو اسٽار ڊاگ.
Allegrograph ۾ وچولي طريقي سان. اهو معلوم ٿئي ٿو ته ٽنهي جي سڃاڻپ ڪندڙ Allegrograph ۾ ، پر جڏهن ٽرپل خاصيتون لاڳو ڪندي اهي ٻاهر نه نڪرندا آهن. بهرحال، اهو اڃا تائين رسمي اصطلاحن کان تمام گهڻو پري آهي. اهو قابل ذڪر آهي ته ٽرپلٽ خاصيتون URI نه آهن، ۽ انهن خاصيتن جا قدر پڻ صرف لفظي ٿي سگهن ٿا. ايل پي جي جي پيروي ڪندڙ بلڪل حاصل ڪندا آهن جيڪي اهي چاهيندا هئا. خاص طور تي ايجاد ڪيل NQX فارميٽ ۾، RDF* لاءِ مٿي ڏنل هڪ مثال هن طرح نظر اچي ٿو:
:bob :marriedTo :alice {"since" : "2013-09-13"}V.2. ٻوليون پڇڻ
ماڊل سطح تي هڪ يا ٻئي طريقي سان LPG کي سپورٽ ڪرڻ، توهان کي اهڙي نموني ۾ ڊيٽا تي سوالن کي ممڪن بڻائڻ جي ضرورت آهي.
- RDF * سوالن جي حمايت لاء Blazegraph и . هڪ SPARQL* سوال هن طرح نظر اچي ٿو:
SELECT * { <<:bob :isMarriedTo ?wife>> :since ?since }- Anzograph پڻ سپورٽ ڪري ٿو ۽ حمايت ڪرڻ وارو آهي , Neo4j ۾ هڪ سوال جي ٻولي.
- Stardog پنهنجي مدد ڪري ٿو SPARQL ۽ گريملن. توھان حاصل ڪري سگھوٿا ٽريپلٽ URI ۽ ”ميٽا-انفارميشن“ SPARQL ۾ ڪجھ ھن طرح استعمال ڪندي:
SELECT * {
BIND (stardog:identifier(:bob, :isMarriedTo, ?wife) AS ?id)
?id :since ?since
}- Allegrograph پڻ پنهنجي مدد ڪري ٿو SPARQL:
SELECT * { ("since" ?since) franz:attributesNameValue ( :bob :marriedTo ?wife ) }رستي جي ذريعي، گراف ڊي بي هڪ وقت تي ٽينڪرپپ / گريملين کي سپورٽ ڪيو بغير LPG جي سپورٽ، پر اهو 8.0 يا 8.1 ورزن ۾ بند ٿي ويو.
VI. لائسنس جي سختي
”چونڊ جي ٽرپل اسٽور“ ۽ ”اوپن سورس ٽرپل اسٽور“ سيٽن جي چونڪ ۾ تازو اضافو نه ڪيو ويو آهي. نئون اوپن سورس RDF اسٽور روزمره جي استعمال لاءِ سٺو انتخاب ٿيڻ کان تمام ڊگهو رستو آهي، ۽ نوان RDF اسٽور جيڪي آئون استعمال ڪرڻ چاهيان ٿو (جهڙوڪ AnzoGraph) بند ذريعو آهن. بلڪه، اسان به گهٽتائي بابت ڳالهائي سگهون ٿا ...
يقينا، اوپن سورس ماضي ۾ بند نه ڪيو ويو آهي، پر ڪجهه اوپن سورس ريپوزٽريز سستي طور تي هاڻي نه ڏٺو ويو آهي چونڊڻ جي قابل. Virtuoso، جنهن جو هڪ اوپن سورس ايڊيشن آهي، منهنجي خيال ۾، بگ ۾ غرق آهي. Blazegraph AWS طرفان خريد ڪيو ويو ۽ Amazon Neptune جو بنياد ٺاهيو ويو؛ هاڻي اهو واضح ناهي ته ڇا گهٽ ۾ گهٽ هڪ وڌيڪ رليز ٿيندو. صرف جينا رهي ٿي...
جيڪڏهن کليل ذريعو تمام ضروري نه آهي، پر توهان صرف ان کي ڪوشش ڪرڻ چاهيو ٿا، پوء هر شيء اڳ کان گهٽ گلابي آهي. مثال طور:
- اسٽار ڊاگ مفت ورزن کي ورهايو (جڏهن ته، باقاعده ورزن جي آزمائشي مدت ٻيڻو ٿي چڪو آهي)؛
- в , جتي اڳ ۾ توهان هڪ مفت بنيادي منصوبو چونڊي سگهو ٿا، معطل ڪيو آهي نئين صارف جي رجسٽريشن.
عام طور تي، سراسري IT شخص لاء، خلا وڌيڪ ۽ وڌيڪ ناقابل رسائي ٿي رهيو آهي؛ ان جي ترقي ڪارپوريشن جو تمام گهڻو بڻجي رهيو آهي.
جو ذريعو: www.habr.com
