ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
مان توهان کي ذاتي تجربي مان ٻڌايان ٿو ته ڪهڙو مفيد هو ڪٿي ۽ ڪڏهن. اهو هڪ جائزو ۽ مقالو آهي، انهي ڪري اهو واضح ٿئي ٿو ته توهان اڳتي ڇا ۽ ڪٿي ڳولي سگهو ٿا - پر هتي مون وٽ خاص طور تي ذاتي تجربو آهي، ٿي سگهي ٿو ته توهان لاء هر شيء بلڪل مختلف آهي.

سوالن جي ٻولين کي ڄاڻڻ ۽ استعمال ڪرڻ جي قابل ٿيڻ ڇو ضروري آهي؟ ان جي بنيادي طور تي، ڊيٽا سائنس ڪم جا ڪيترائي اهم مرحلا آهن، ۽ تمام پهريون ۽ سڀ کان اهم (ان کان سواء، يقينا ڪجھ به ڪم نه ڪندو!) ڊيٽا حاصل ڪرڻ يا ڪڍڻ آهي. گهڻو ڪري، ڊيٽا ڪنهن نه ڪنهن شڪل ۾ ويٺي آهي ۽ اتان کان "ٻيهر" حاصل ڪرڻ جي ضرورت آهي. 

سوالن جون ٻوليون توهان کي هي ڊيٽا ڪڍڻ جي اجازت ڏين ٿيون! ۽ اڄ مان توهان کي انهن سوالن جي ٻولين بابت ٻڌايان ٿو جيڪي مون لاءِ ڪارآمد ثابت ٿيون آهن ۽ مان توهان کي ٻڌايان ٿو ۽ توهان کي ڏيکاريندس ته ڪٿي ۽ ڪيئن بلڪل- ان جي مطالعي جي ضرورت ڇو آهي.

ڊيٽا سوالن جي قسمن جا ٽي مکيه بلاڪ هوندا، جن تي اسين هن مضمون ۾ بحث ڪنداسين:

  • "معياري" سوالن جي ٻوليون اھي آھن جيڪي عام طور تي سمجھي وينديون آھن جڏھن ھڪڙي سوال جي ٻولي بابت ڳالھائيندا آھن، جھڙوڪ تعلقي الجبرا يا SQL.
  • اسڪرپٽنگ سوال ٻوليون: مثال طور، پٿون شيون پانڊا، نمپي يا شيل اسڪرپٽنگ.
  • علم جا گراف ۽ گراف ڊيٽابيس لاءِ ٻوليون پڇو.

هتي لکيل سڀ ڪجهه صرف هڪ ذاتي تجربو آهي، جيڪو مفيد هو، حالتن جي وضاحت سان ۽ ”ڇو ان جي ضرورت هئي“ - هرڪو ڪوشش ڪري سگهي ٿو ته اهڙيون حالتون توهان جي رستي ڪيئن اچي سگهن ۽ انهن ٻولين کي سمجهي انهن لاءِ اڳواٽ تيار ڪرڻ جي ڪوشش ڪريو. ان کان اڳ جو توهان کي ڪنهن پروجيڪٽ تي (فوري طور تي) درخواست ڏيڻي پوندي يا ان منصوبي تي وڃڻو پوندو جتي انهن جي ضرورت هجي.

"معياري" سوال ٻوليون

معياري پڇا ڳاڇا ٻوليون خاص طور تي ان معنى ۾ آهن ته اسان عام طور تي انهن بابت سوچيندا آهيون جڏهن اسان سوالن بابت ڳالهايون ٿا.

لاڳاپي وارو الجبرا

اڄ ڇو تعلقي الجبرا جي ضرورت آهي؟ چڱيءَ ريت سمجھڻ لاءِ ته سوالن جون ٻوليون ھڪ خاص طريقي سان ڇو ٺاھيون وڃن ٿيون ۽ انھن کي شعوري طور استعمال ڪن ٿيون، توھان کي انھن کي سمجھڻ جي ضرورت آھي.

تعلقي الجبرا ڇا آهي؟

باضابطه وصف هن ريت آهي: لاڳاپي وارو الجبرا هڪ تعلقي ڊيٽا ماڊل ۾ لاڳاپن تي عمل جو هڪ بند نظام آهي. ان کي ٿورو وڌيڪ انساني طور تي رکڻ لاءِ، هي جدولن تي آپريشن جو هڪ اهڙو نظام آهي جنهن جو نتيجو هميشه هڪ ٽيبل هوندو آهي.

ڏسو سڀ لاڳاپو آپريشن ۾ هي Habr کان آرٽيڪل - هتي اسان بيان ڪريون ٿا ته توهان کي ڄاڻڻ جي ضرورت آهي ۽ اهو ڪٿي ڪم ۾ اچي ٿو.

ڇو؟

سمجھڻ جي شروعات ڪھڙين سوالن جي ٻولين جي باري ۾ آھي ۽ ڪھڙي عملن جي پويان مخصوص سوالن جي ٻولين ۾ اظهار جي پٺيان آھن، اڪثر ڪري ھڪڙي وڌيڪ ڄاڻ ڏئي ٿو ته سوالن جي ٻولين ۾ ڪھڙو ڪم ۽ ڪيئن.

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
کان ورتو ويو هي مضمون آپريشن جو ھڪڙو مثال: شامل ڪريو، جيڪو جدولن ۾ شامل ٿئي ٿو.

مطالعي لاء مواد:

اسٽينفورڊ کان سٺو تعارفي ڪورس. عام طور تي، لاڳاپو الجبرا ۽ نظريي تي تمام گهڻو مواد موجود آهن - Coursera، Udacity. اتي پڻ مواد جو هڪ وڏو مقدار آن لائن آهي، بشمول سٺو تعليمي ڪورس. منهنجي ذاتي صلاح: توهان کي لازمي طور تي لاڳاپيل الجبرا کي چڱي طرح سمجهڻ جي ضرورت آهي - هي بنياديات جو بنياد آهي.

وارو SQL ايس

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
کان ورتو ويو هي مضمون.

SQL بنيادي طور تي لاڳاپي واري الجبرا جو هڪ نفاذ آهي - هڪ اهم انتباہ سان، SQL بيان ڪندڙ آهي! اهو آهي، جڏهن هڪ سوال لکندو آهي تعلقي الجبرا جي ٻولي ۾، توهان اصل ۾ چوندا آهيو ته ڪيئن ڳڻپ ڪجي - پر SQL سان توهان وضاحت ڪريو ٿا ته توهان ڇا ڪڍڻ چاهيو ٿا، ۽ پوء DBMS اڳ ۾ ئي (مؤثر) اظهار پيدا ڪري ٿو تعلقي الجبرا جي ٻولي ۾ (انهن جي. مساوات اسان کي سڃاتو وڃي ٿو ڪوڊ جو نظريو).

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
کان ورتو ويو هي مضمون.

ڇو؟

لاڳاپو DBMSs: Oracle، Postgres، SQL Server، وغيره اڃا به تقريبن هر جڳهه آهن ۽ اتي هڪ ناقابل يقين حد تائين اعلي موقعو آهي ته توهان کي انهن سان رابطو ڪرڻو پوندو، جنهن جو مطلب آهي ته توهان کي SQL پڙهڻو پوندو (جيڪو تمام گهڻو امڪان آهي) يا ان کي لکڻو پوندو ( نه ته ممڪن ناهي).

ڇا پڙهو ۽ پڙهو

مٿي ڏنل ساڳين لنڪن جي مطابق (لڳاپي واري الجبرا جي باري ۾)، مواد جو هڪ ناقابل اعتبار مقدار آهي، مثال طور، هي.

رستي ۾، NoSQL ڇا آهي؟

"اهو هڪ ڀيرو ٻيهر زور ڏيڻ جي قابل آهي ته اصطلاح "NoSQL" هڪ بلڪل spontaneous اصل آهي ۽ ان جي پويان عام طور تي قبول ٿيل تعريف يا سائنسي ادارو ناهي." ملندڙ هڪ مضمون حبر تي.

حقيقت ۾، ماڻهن اهو محسوس ڪيو ته ڪيترن ئي مسئلن کي حل ڪرڻ لاء هڪ مڪمل لاڳاپو ماڊل جي ضرورت ناهي، خاص طور تي انهن لاء جتي، مثال طور، ڪارڪردگي نازڪ آهي ۽ ڪجهه سادي سوالن جي مجموعي طور تي غالب آهن - جتي اهو ضروري آهي ته ميٽرڪ کي تڪڙو حساب ڪرڻ ۽ انهن کي لکڻ لاء. ڊيٽابيس، ۽ گهڻيون خاصيتون لاڳاپي سان نڪرنديون آهن نه رڳو غير ضروري، پر نقصانڪار پڻ - ڇو ته ڪنهن شيءِ کي عام ڪيو وڃي جيڪڏهن اهو اسان لاءِ سڀ کان اهم شيءِ (ڪجهه مخصوص ڪم لاءِ) خراب ڪري ڇڏيندو - پيداوار؟

انهي سان گڏ، لچڪدار اسڪيمن جي ضرورت هوندي آهي بدران ڪلاسيڪل رشتي واري ماڊل جي مقرر ڪيل رياضياتي اسڪيمن جي - ۽ هي ناقابل يقين حد تائين ايپليڪيشن ڊولپمينٽ کي آسان بڻائي ٿو جڏهن سسٽم کي ترتيب ڏيڻ ۽ جلدي ڪم ڪرڻ شروع ڪرڻ، نتيجن کي پروسيس ڪرڻ - يا اسڪيما ۽ ذخيرو ٿيل ڊيٽا جا قسم. ايترا اهم نه آهن.

مثال طور، اسان هڪ ماهر سسٽم ٺاهي رهيا آهيون ۽ ڪجهه ميٽا معلومات سان گڏ هڪ مخصوص ڊومين تي معلومات ذخيرو ڪرڻ چاهيون ٿا - اسان شايد سڀني شعبن کي نه ٿا ڄاڻون ۽ صرف هر رڪارڊ لاء JSON کي ذخيرو ڪريو - اهو اسان کي ڊيٽا کي وڌائڻ لاء هڪ تمام لچڪدار ماحول ڏئي ٿو. ماڊل ۽ جلدي ورجائي رهيو آهي - تنهن ڪري هن حالت ۾، NoSQL به وڌيڪ ترجيح ۽ وڌيڪ پڙهڻ جي قابل هوندو. مثال داخلا (منهنجي هڪ پروجيڪٽ مان جتي NoSQL صحيح هو جتي ضرورت هئي).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

توهان وڌيڪ پڙهي سگهو ٿا هتي NoSQL بابت.

ڇا پڙهائي؟

هتي، بلڪه، توهان کي صرف پنهنجي ڪم جو چڱيءَ طرح تجزيو ڪرڻ جي ضرورت آهي، ان ۾ ڪهڙيون ملڪيتون آهن ۽ ڪهڙا NoSQL سسٽم موجود آهن جيڪي هن وضاحت کي پورو ڪن ٿا - ۽ پوءِ هن سسٽم جو مطالعو شروع ڪريو.

اسڪرپٽنگ سوال ٻوليون

پهرين ۾، اهو لڳي ٿو، پٿون کي عام طور تي ان سان ڇا ڪرڻو آهي - اهو هڪ پروگرامنگ ٻولي آهي، ۽ نه ئي سوالن بابت.

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

  • پانڊاس لفظي طور تي ڊيٽا سائنس جي سوئس آرمي چاقو آهي؛ ان ۾ ڊيٽا جي تبديلي، مجموعي وغيره جو هڪ وڏو مقدار ٿئي ٿو.
  • Numpy - ویکٹر حساب، ميٽرڪ ۽ لڪير الجبرا اتي.
  • اسڪائپي - هن پيڪيج ۾ تمام گهڻو رياضي آهي، خاص طور تي انگ اکر.
  • Jupyter ليب - تمام گھڻا تحقيقي ڊيٽا تجزيا ليپ ٽاپن ۾ چڱيءَ طرح ٺھيل آھن - ڄاڻڻ لاءِ مفيد.
  • درخواستون - نيٽ ورڪ سان ڪم ڪرڻ.
  • Pyspark ڊيٽا انجنيئرن ۾ تمام گهڻو مشهور آهي، گهڻو ڪري توهان کي هن سان رابطو ڪرڻو پوندو يا اسپارڪ، صرف انهن جي مقبوليت جي ڪري.
  • *سيلينيم - سائيٽن ۽ وسيلن مان ڊيٽا گڏ ڪرڻ لاءِ تمام ڪارآمد، ڪڏهن ڪڏهن ڊيٽا حاصل ڪرڻ لاءِ ٻيو ڪو طريقو ناهي.

منهنجو مکيه مشورو: پيٿون سکو!

پنڌ

اچو ته هيٺين ڪوڊ کي مثال طور وٺون:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

لازمي طور تي، اسان ڏسون ٿا ته ڪوڊ کلاسک SQL نموني ۾ ٺهڪي اچي ٿو.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name

پر اهم حصو اهو آهي ته هي ڪوڊ اسڪرپٽ ۽ پائپ لائن جو حصو آهي؛ حقيقت ۾، اسان پٿون پائپ لائن ۾ سوالن کي شامل ڪري رهيا آهيون. هن صورتحال ۾، سوال جي ٻولي اسان وٽ لائبريرين جهڙوڪ پانڊاس يا پي اسپارڪ کان اچي ٿي.

عام طور تي، pySpark ۾ اسان هڪ ئي قسم جي ڊيٽا جي تبديليءَ کي ڏسون ٿا سوال جي ٻولي ذريعي روح ۾:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

ڪٿي ۽ ڇا پڙهو

عام طور تي پٿون پاڻ تي ڪو مسئلو ناهي مطالعي لاء مواد ڳوليو. آن لائن سبقن جو وڏو تعداد آھي پاندا, پي اسپارڪ ۽ ڪورسز تي اسپار (۽ پڻ پاڻ طرفان DS). مجموعي طور تي، هتي جو مواد گوگلنگ لاءِ بهترين آهي، ۽ جيڪڏهن مون کي هڪ پيڪيج چونڊڻو هو ته ان تي ڌيان ڏيڻ لاءِ، اهو پنڊاس هوندو، يقيناً. DS + Python مواد جي ميلاپ جي حوالي سان پڻ تمام گھڻو.

شيل هڪ سوال جي ٻولي طور

ڪافي ڪجھ ڊيٽا پروسيسنگ ۽ تجزياتي پروجيڪٽ جيڪي مون سان ڪم ڪيا آهن، حقيقت ۾، شيل اسڪرپٽ جيڪي پٿون، جاوا، ۽ شيل ڪمانڊ پاڻ ۾ ڪوڊ سڏين ٿا. تنهن ڪري، عام طور تي، توهان پائپ لائنن تي غور ڪري سگهو ٿا bash/zsh/etc ڪنهن قسم جي اعليٰ سطحي سوال جي طور تي (توهان ڪري سگهو ٿا، يقينا، اتي شيون لوپ، پر اهو شيل ٻولين ۾ ڊي ايس ڪوڊ لاءِ عام ناهي)، اچو ته ڏيو. هڪ سادو مثال - مون کي وڪي ڊيٽا جي QID ميپنگ ڪرڻي هئي ۽ روسي ۽ انگريزي وڪيز جي مڪمل لنڪس، ان لاءِ مون بيش ۾ ڪمانڊز مان هڪ سادي درخواست لکي ۽ آئوٽ پٽ لاءِ پٿون ۾ هڪ سادي اسڪرپٽ لکي، جنهن مان هن طرح گڏ ڪريو:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

جتي

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

اها هئي، حقيقت ۾، پوري پائپ لائن جيڪا گهربل ميپنگ ٺاهي؛ جيئن اسان ڏسون ٿا، هر شي فلو موڊ ۾ ڪم ڪيو:

  • pv فائل پاٿ - فائل سائيز جي بنياد تي ترقي واري بار ڏئي ٿو ۽ ان جي مواد کي اڳتي وڌائي ٿو
  • unpigz -c آرڪائيو جو حصو پڙهيو ۽ jq کي ڏنو
  • jq سان ڪيئي - اسٽريم فوري طور تي نتيجو پيدا ڪيو ۽ ان کي پوسٽ پروسيسر ڏانهن منتقل ڪيو (ساڳي ئي پهرين مثال سان) پٿون ۾
  • اندروني طور تي، پوسٽ پروسيسر هڪ سادي رياستي مشين هئي جيڪا فارميٽ ڪري ٿي 

مجموعي طور تي، وڏي ڊيٽا (0.5TB) تي فلو موڊ ۾ ڪم ڪندڙ هڪ پيچيده پائپ لائن، اهم وسيلن کان سواءِ ۽ هڪ سادي پائپ لائن ۽ ڪجهه اوزارن مان ٺهيل آهي.

ٻيو اهم ٽپ: ٽرمينل ۾ سٺو ۽ اثرائتو ڪم ڪرڻ جي قابل ٿي وڃو ۽ bash/zsh/etc لکو.

ڪٿي مفيد ٿيندو؟ ها، تقريبن هر جڳهه - ٻيهر، انٽرنيٽ تي مطالعو ڪرڻ لاء ڪافي مواد موجود آهن. خاص طور تي، هتي هي منهنجو اڳوڻو مضمون.

آر اسڪرپٽنگ

ٻيهر، پڙهندڙ شايد چئي سگهي ٿو - خير، هي هڪ مڪمل پروگرامنگ ٻولي آهي! ۽ يقينا، هو صحيح ٿيندو. بهرحال، مون کي عام طور تي R سان اهڙي حوالي سان منهن ڏيڻو پوي ٿو، حقيقت ۾، اهو هڪ سوال جي ٻولي سان تمام گهڻو ملندو هو.

آر هڪ شمارياتي ڪمپيوٽنگ ماحول ۽ ٻولي آهي جامد ڪمپيوٽنگ ۽ ويزولائيزيشن لاءِ (جي مطابق هي).

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
ورتو هتي کان. رستي ۾، مان سفارش ڪريان ٿو، سٺو مواد.

ڇو هڪ ڊيٽا سائنسدان کي ڄاڻڻ جي ضرورت آهي R؟ گهٽ ۾ گهٽ، ڇاڪاڻ ته اتي غير آئي ٽي ماڻهن جو هڪ وڏو پرت آهي جيڪو آر ۾ ڊيٽا جو تجزيو ڪري ٿو. مون ان کي هيٺ ڏنل هنڌن ۾ ڏٺو:

  • دواسازي شعبي.
  • حياتيات جا ماهر.
  • مالياتي شعبي.
  • ماڻهو هڪ خالص رياضياتي تعليم سان جيڪي انگن اکرن سان ڊيل ڪن ٿا.
  • خاص شمارياتي ماڊل ۽ مشين لرننگ ماڊل (جيڪي اڪثر ڪري صرف ليکڪ جي نسخي ۾ R پيڪيج جي طور تي ڳولي سگهجن ٿا).

ڇو ته اهو اصل ۾ هڪ سوال جي ٻولي آهي؟ فارم ۾ جنهن ۾ اهو اڪثر ملي ٿو، اهو اصل ۾ هڪ ماڊل ٺاهڻ جي درخواست آهي، جنهن ۾ ڊيٽا پڙهڻ ۽ سوالن (ماڊل) جي پيٽرولن کي درست ڪرڻ، انهي سان گڏ پيڪيجز ۾ ڊيٽا کي ڏسڻ جهڙوڪ ggplot2 - اهو پڻ سوالن لکڻ جو هڪ فارم آهي. .

visualization لاءِ مثال سوال

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

عام طور تي، R مان ڪيترائي خيال python پيڪيجز ۾ لڏي ويا آھن جھڙوڪ pandas، numpy يا scipy، like dataframes ۽ data vectorization - تنھنڪري عام طور تي R ۾ ڪيتريون ئي شيون توھان کي واقف ۽ آسان لڳي وينديون.

مطالعي لاء ڪيترائي ذريعا آهن، مثال طور، هي.

علم جا گراف

هتي مون کي ٿورڙي غير معمولي تجربو آهي، ڇاڪاڻ ته مون کي گهڻو ڪري علم گرافس ۽ سوالن جي ٻولين سان گرافس لاء ڪم ڪرڻو پوندو. تنهن ڪري، اچو ته مختصر طور تي بنيادي ڳالهين تي وڃو، ڇاڪاڻ ته هي حصو ٿورو وڌيڪ غير معمولي آهي.

ڪلاسيڪل تعلقي ڊيٽابيس ۾ اسان وٽ هڪ مقرر ڪيل اسڪيما آهي، پر هتي اسڪيما لچڪدار آهي، هر پيشڪش اصل ۾ هڪ ”ڪالمن“ آهي ۽ ان کان به وڌيڪ.

تصور ڪريو ته توهان هڪ شخص کي ماڊل ڪري رهيا آهيو ۽ اهم شين کي بيان ڪرڻ چاهيو ٿا، مثال طور، اچو ته هڪ مخصوص شخص، ڊگلس ايڊمز، ۽ هن وضاحت کي بنياد طور استعمال ڪريو.

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
www.wikidata.org/wiki/Q42

جيڪڏهن اسان هڪ تعلقي ڊيٽابيس استعمال ڪريون ٿا، ته اسان کي هڪ وڏي ٽيبل يا ٽيبل ٺاهڻي پوندي جنهن ۾ وڏي تعداد ۾ ڪالمن موجود هوندا، جن مان گهڻا NULL هوندا يا ڪجهه ڊفالٽ False Value سان ڀريل هوندا، مثال طور، اهو ممڪن ناهي ته اسان مان گهڻن وٽ هجي. ڪورين نيشنل لئبرريءَ ۾ داخلا - يقيناً، اسان انهن کي جدا جدا جدولن ۾ رکي سگهون ٿا، پر اهو آخرڪار هڪ لچڪدار منطقي سرڪٽ کي ماڊل ڪرڻ جي ڪوشش ڪئي ويندي جنهن ۾ اڳڪٿين سان گڏ هڪ مقرر ٿيل لاڳاپو استعمال ڪندي.

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
تنهن ڪري تصور ڪريو ته سڀئي ڊيٽا هڪ گراف جي طور تي يا بائنري ۽ يونيري بوليان اظهار جي طور تي ذخيرو ٿيل آهي.

توهان ڪٿي به هن کي منهن ڏئي سگهو ٿا؟ پهريون، ڪم سان گڏ ڊيٽا وڪي، ۽ ڪنهن به گراف ڊيٽابيس يا ڳنڍيل ڊيٽا سان.

هيٺيون مکيه سوال ٻوليون آهن جيڪي مون استعمال ڪيون آهن ۽ ڪم ڪيو آهي.

SPARQL

وڪيپيڊيا:
SPARQL (recursive مخفف от انج. SPARQL پروٽوڪول ۽ RDF سوال جي ٻولي) ڊيٽا جي سوال جي ٻولي، ماڊل جي نمائندگي آر ڊي ايف، انهي سان گڏوگڏ پروٽوڪول انهن درخواستن کي منتقل ڪرڻ ۽ انهن جو جواب ڏيڻ. SPARQL هڪ سفارش آهي W3C ڪنسورشيم ۽ ٽيڪنالاجي مان هڪ لفظي ويب.

پر حقيقت ۾ اها منطقي غير ۽ بائنري اڳڪٿين لاءِ هڪ سوالي ٻولي آهي. توھان صرف شرطي طور تي بيان ڪري رھيا آھيو جيڪو Boolean ايڪسپريس ۾ طئي ٿيل آھي ۽ ڇا نه آھي (ڏاڍو آسان).

RDF (ريسورس ڊڪشنري فريم ورڪ) جو بنياد پاڻ، جنهن تي SPARQL سوالن تي عمل ڪيو ويندو آهي، هڪ ٽرپل آهي object, predicate, subject - ۽ سوال روح ۾ مخصوص پابندين جي مطابق گھربل ٽي ڀيرا چونڊيندو آھي: ھڪڙو X ڳولھيو جيئن p_55(X, q_33) صحيح آھي - جتي، يقينا، p_55 ھڪڙي قسم جو تعلق ID 55 سان آھي، ۽ q_33 ھڪڙو آھي اعتراض ID 33 سان (هتي ۽ سڄي ڪهاڻي، ٻيهر هر قسم جي تفصيل کي ختم ڪندي).

ڊيٽا جي نمائش جو مثال:

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو
هتي ملڪن سان تصويرون ۽ مثال هتي کان.

بنيادي سوال جو مثال

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

حقيقت ۾، اسان کي ملڪي متغير جي قيمت ڳولڻ چاهيون ٿا جيئن اڳڪٿي لاء
member_of، اهو صحيح آهي ته member_of(?country,q458) ۽ q458 يورپي يونين جي سڃاڻپ آهي.

پٿون انجڻ اندر حقيقي SPARQL سوال جو هڪ مثال:

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

عام طور تي، مون کي لکڻ جي بجاءِ SPARQL پڙهڻو پيو - ان صورتحال ۾، اهو ممڪن هوندو ته ٻولي کي سمجهڻ لاءِ گهٽ ۾ گهٽ بنيادي سطح تي اهو سمجهڻ لاءِ ته ڊيٽا ڪيئن حاصل ڪئي وڃي ٿي. 

آن لائن پڙهڻ لاءِ تمام گھڻو مواد آھي: مثال طور، ھتي هي и هي. آئون عام طور تي گوگل جي مخصوص ڊزائينز ۽ مثالن کي ڏسندو آهيان ۽ اهو هاڻي ڪافي آهي.

منطقي سوال ٻوليون

توهان منهنجي مضمون ۾ موضوع تي وڌيڪ پڙهي سگهو ٿا هتي. ۽ هتي، اسان صرف مختصر طور تي جانچ ڪنداسين ته منطقي ٻوليون سوالن جي لکڻ لاء مناسب آهن. بنيادي طور تي، RDF صرف فارم جي منطقي بيانن جو هڪ سيٽ آهي p(X) ۽ h(X,Y)، ۽ هڪ منطقي سوال هيٺ ڏنل فارم آهي:

output(X) :- country(X), member_of(X,“EU”).

ھتي اسان ڳالھائي رھيا آھيون ھڪ نئين پريڊيڪيٽ آئوٽ پُٽ/1 (/1 معنيٰ اڻڄاڻ)، بشرطيڪ ته X لاءِ اھو صحيح ھجي ته ملڪ(X) - يعني X ھڪ ملڪ آھي ۽ ميمبر_of(X,"EU") پڻ آھي.

اهو آهي، هن معاملي ۾، ٻئي ڊيٽا ۽ ضابطا ساڳئي طريقي سان پيش ڪيا ويا آهن، جيڪا اسان کي آساني سان ۽ چڱي طرح مسئلن کي نموني ڪرڻ جي اجازت ڏئي ٿي.

توهان صنعت ۾ ڪٿي ملاقات ڪئي؟: هڪ ڪمپني سان هڪ تمام وڏو پروجيڪٽ جيڪو اهڙي ٻولي ۾ سوالن کي لکندو آهي، انهي سان گڏ موجوده منصوبي تي سسٽم جي بنيادي ۾ - اهو لڳي ٿو ته اهو هڪ غير معمولي شيء آهي، پر ڪڏهن ڪڏهن ائين ٿئي ٿو.

هڪ منطقي ٻولي پروسيسنگ وڪي ڊيٽا ۾ ڪوڊ جي ٽڪڙي جو هڪ مثال:

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

مواد: مان هتي ڏيان ٿو ڪجهه لنڪس جون لنڪس جديد منطقي پروگرامنگ ٻولي جا جواب سيٽ پروگرامنگ - مان ان کي پڙهائڻ جي صلاح ڏيان ٿو:

ڊيٽا سائنسدان جا نوٽس: ڊيٽا سوالن جي ٻولين جو هڪ ذاتي جائزو

جو ذريعو: www.habr.com

تبصرو شامل ڪريو