ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
میں آپ کو ذاتی تجربے سے بتا رہا ہوں کہ کیا کہاں اور کب مفید تھا۔ یہ ایک جائزہ اور مقالہ ہے، تاکہ یہ واضح ہو جائے کہ آپ مزید کیا اور کہاں کھود سکتے ہیں - لیکن یہاں میرے پاس خصوصی طور پر ساپیکش ذاتی تجربہ ہے، شاید آپ کے لیے سب کچھ بالکل مختلف ہو۔

استفسار کی زبانوں کو جاننا اور استعمال کرنے کے قابل ہونا کیوں ضروری ہے؟ اس کے مرکز میں، ڈیٹا سائنس کے کام کے کئی اہم مراحل ہیں، اور سب سے پہلا اور سب سے اہم (اس کے بغیر، یقینی طور پر کچھ بھی کام نہیں کرے گا!) ڈیٹا حاصل کرنا یا نکالنا ہے۔ اکثر، ڈیٹا کسی نہ کسی شکل میں کہیں بیٹھا ہوتا ہے اور اسے وہاں سے "بازیافت" کرنے کی ضرورت ہوتی ہے۔ 

سوالات کی زبانیں آپ کو یہ ڈیٹا نکالنے کی اجازت دیتی ہیں! اور آج میں آپ کو ان سوالات کی زبانوں کے بارے میں بتاؤں گا جو میرے لیے کارآمد رہی ہیں اور میں آپ کو بتاؤں گا اور بتاؤں گا کہ کہاں اور کیسے بالکل - کیوں مطالعہ کرنے کی ضرورت ہے۔

ڈیٹا استفسار کی اقسام کے تین اہم بلاکس ہوں گے، جن پر ہم اس مضمون میں بحث کریں گے۔

  • "معیاری" استفسار کی زبانیں وہ ہیں جو استفسار کی زبان کے بارے میں بات کرتے وقت عام طور پر سمجھی جاتی ہیں، جیسے کہ متعلقہ الجبرا یا SQL۔
  • اسکرپٹنگ استفسار کی زبانیں: مثال کے طور پر، پائتھون چیزیں پانڈاس، نمپی یا شیل اسکرپٹنگ۔
  • علمی گراف اور گراف ڈیٹا بیس کے لیے زبانوں سے استفسار کریں۔

یہاں جو کچھ بھی لکھا گیا ہے وہ صرف ایک ذاتی تجربہ ہے، جو کچھ کارآمد تھا، حالات کی تفصیل اور "کیوں اس کی ضرورت تھی" کے ساتھ - ہر کوئی اس بات کی کوشش کر سکتا ہے کہ اسی طرح کے حالات آپ کے سامنے کیسے آسکتے ہیں اور ان زبانوں کو سمجھ کر ان کے لیے پیشگی تیاری کرنے کی کوشش کر سکتے ہیں۔ اس سے پہلے کہ آپ کو کسی پروجیکٹ پر (فوری طور پر) اپلائی کرنا پڑے یا کسی ایسے پروجیکٹ تک پہنچیں جہاں ان کی ضرورت ہو۔

"معیاری" استفسار کی زبانیں۔

معیاری استفسار کی زبانیں بالکل اس معنی میں ہیں کہ جب ہم سوالات کے بارے میں بات کرتے ہیں تو ہم عام طور پر ان کے بارے میں سوچتے ہیں۔

رشتہ دار الجبرا

آج رشتہ دار الجبرا کی ضرورت کیوں ہے؟ استفسار کی زبانوں کو ایک خاص طریقے سے کیوں ترتیب دیا جاتا ہے اور انہیں شعوری طور پر استعمال کرنے کے بارے میں اچھی طرح سے سمجھنے کے لیے، آپ کو ان کے بنیادی بنیادی کو سمجھنے کی ضرورت ہے۔

رشتہ دار الجبرا کیا ہے؟

رسمی تعریف اس طرح ہے: رشتہ دار الجبرا ایک رشتہ دار ڈیٹا ماڈل میں تعلقات پر آپریشن کا ایک بند نظام ہے۔ اسے تھوڑا زیادہ انسانی طور پر ڈالنے کے لئے، یہ میزوں پر آپریشن کا ایک ایسا نظام ہے کہ نتیجہ ہمیشہ ایک میز ہے.

میں تمام متعلقہ کارروائیاں دیکھیں اس Habr سے مضمون - یہاں ہم بیان کرتے ہیں کہ آپ کو یہ جاننے کی ضرورت کیوں ہے اور یہ کہاں کام آتا ہے۔

کیوں؟

یہ سمجھنا شروع کرنا کہ استفسار کی زبانیں کیا ہیں اور مخصوص استفسار کی زبانوں میں اظہار کے پیچھے کون سی کارروائیاں ہیں اکثر اس بات کی گہری سمجھ فراہم کرتی ہے کہ استفسار کی زبانوں میں کیا کام کرتا ہے اور کیسے۔

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
سے لیا اس مضامین آپریشن کی ایک مثال: جوائن، جو ٹیبل کو جوڑتا ہے۔

مطالعہ کے لیے مواد:

سٹینفورڈ سے اچھا تعارفی کورس. عام طور پر، رشتہ دار الجبرا اور تھیوری پر بہت سارے مواد موجود ہیں - کورسیرا، اڈاسٹی۔ آن لائن مواد کی ایک بہت بڑی مقدار بھی ہے، بشمول اچھا بھی تعلیمی کورسز. میرا ذاتی مشورہ: آپ کو رشتہ دار الجبرا کو اچھی طرح سے سمجھنے کی ضرورت ہے - یہ بنیادی باتوں کی بنیاد ہے۔

SQL

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
سے لیا اس مضامین

ایس کیو ایل بنیادی طور پر رشتہ دار الجبرا کا نفاذ ہے - ایک اہم انتباہ کے ساتھ، ایس کیو ایل اعلانیہ ہے! یعنی جب رشتہ دار الجبرا کی زبان میں کوئی سوال لکھتے ہیں، تو آپ دراصل کہتے ہیں کہ کس طرح کیلکولیشن کرنا ہے - لیکن ایس کیو ایل کے ساتھ آپ یہ بتاتے ہیں کہ آپ کیا نکالنا چاہتے ہیں، اور پھر DBMS پہلے سے ہی متعلقہ الجبرا کی زبان میں (موثر) تاثرات پیدا کرتا ہے۔ مساوات کے طور پر ہمارے لئے جانا جاتا ہے کوڈ کا نظریہ).

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
سے لیا اس مضامین

کیوں؟

متعلقہ ڈی بی ایم ایس: اوریکل، پوسٹگریس، ایس کیو ایل سرور، وغیرہ اب بھی عملی طور پر ہر جگہ موجود ہیں اور اس بات کا ناقابل یقین حد تک زیادہ امکان ہے کہ آپ کو ان کے ساتھ تعامل کرنا پڑے گا، جس کا مطلب ہے کہ آپ کو یا تو ایس کیو ایل (جس کا بہت امکان ہے) پڑھنا پڑے گا یا اسے لکھنا پڑے گا۔ امکان بھی نہیں ہے)۔

کیا پڑھنا اور پڑھنا ہے۔

مندرجہ بالا انہی لنکس کے مطابق (متعلقہ الجبرا کے بارے میں)، مواد کی ایک ناقابل یقین مقدار ہے، مثال کے طور پر، یہ.

ویسے، NoSQL کیا ہے؟

"یہ ایک بار پھر زور دینے کے قابل ہے کہ "NoSQL" کی اصطلاح بالکل بے ساختہ ہے اور اس کے پیچھے کوئی عام طور پر قبول شدہ تعریف یا سائنسی ادارہ نہیں ہے۔" متعلقہ مضمون Habré پر.

درحقیقت، لوگوں نے محسوس کیا کہ بہت سے مسائل کو حل کرنے کے لیے ایک مکمل رشتہ دار ماڈل کی ضرورت نہیں ہے، خاص طور پر ان لوگوں کے لیے جہاں، مثال کے طور پر، کارکردگی اہم ہے اور جمع کے ساتھ کچھ آسان سوالات ہیں - جہاں میٹرکس کا تیزی سے حساب لگانا اور انہیں لکھنا ضروری ہے۔ ڈیٹا بیس، اور زیادہ تر خصوصیات رشتہ دار ہیں نہ صرف غیر ضروری، بلکہ نقصان دہ بھی - کیوں کسی چیز کو معمول پر لائیں اگر یہ ہمارے لیے سب سے اہم چیز (کسی مخصوص کام کے لیے) کو خراب کردے - پیداواری صلاحیت؟

نیز، کلاسیکی رشتہ دار ماڈل کے فکسڈ ریاضیاتی اسکیموں کے بجائے اکثر لچکدار اسکیموں کی ضرورت ہوتی ہے - اور یہ ناقابل یقین حد تک ایپلیکیشن کی ترقی کو آسان بناتا ہے جب سسٹم کو تعینات کرنا اور تیزی سے کام شروع کرنا، نتائج پر کارروائی کرنا - یا اسکیما اور ذخیرہ شدہ ڈیٹا کی اقسام۔ اتنے اہم نہیں ہیں۔

مثال کے طور پر، ہم ایک ماہرانہ نظام بنا رہے ہیں اور کچھ میٹا معلومات کے ساتھ ایک مخصوص ڈومین پر معلومات کو ذخیرہ کرنا چاہتے ہیں - ہو سکتا ہے کہ ہم تمام فیلڈز کو نہ جانتے ہوں اور ہر ریکارڈ کے لیے صرف 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 - ویکٹر کیلکولیشنز، میٹرکس اور لکیری الجبرا وہاں۔
  • Scipy - اس پیکیج میں بہت زیادہ ریاضی ہے، خاص طور پر اعدادوشمار۔
  • Jupyter lab - بہت ساری تحقیقی ڈیٹا تجزیہ لیپ ٹاپ میں اچھی طرح سے فٹ بیٹھتا ہے - جاننے کے لیے مفید ہے۔
  • درخواستیں - نیٹ ورک کے ساتھ کام کرنا۔
  • Pyspark ڈیٹا انجینئرز کے درمیان بہت مقبول ہے، زیادہ تر امکان ہے کہ آپ کو اس یا Spark کے ساتھ صرف ان کی مقبولیت کی وجہ سے تعامل کرنا پڑے گا۔
  • *سیلینیم - سائٹس اور وسائل سے ڈیٹا اکٹھا کرنے کے لیے بہت مفید ہے، بعض اوقات ڈیٹا حاصل کرنے کا کوئی دوسرا راستہ نہیں ہوتا ہے۔

میرا اہم مشورہ: ازگر سیکھیں!

پانڈاس

آئیے درج ذیل کوڈ کو بطور مثال لیتے ہیں:

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()

کہاں اور کیا پڑھنا ہے۔

عام طور پر ازگر پر ہی کوئی مسئلہ نہیں مطالعہ کرنے کے لئے مواد تلاش کریں. آن لائن ٹیوٹوریلز کی ایک بڑی تعداد موجود ہے۔ pandas, پائ اسپارک اور کورسز جاری ہیں۔ چنگاری (اور خود بھی DS)۔ مجموعی طور پر، یہاں کا مواد گوگلنگ کے لیے بہت اچھا ہے، اور اگر مجھے توجہ مرکوز کرنے کے لیے ایک پیکج چننا پڑا، تو یقیناً یہ پانڈا ہوگا۔ DS+Python مواد کے امتزاج کے بارے میں بھی بہت.

شیل بطور استفسار زبان

کافی کچھ ڈیٹا پروسیسنگ اور تجزیہ پروجیکٹس جن کے ساتھ میں نے کام کیا ہے، درحقیقت، شیل اسکرپٹس ہیں جو ازگر، جاوا میں کوڈ کو کال کرتی ہیں اور خود شیل کمانڈ کرتی ہیں۔ لہذا، عام طور پر، آپ bash/zsh/etc میں پائپ لائنوں کو کسی قسم کے اعلیٰ درجے کے استفسار کے طور پر غور کر سکتے ہیں (یقیناً، آپ وہاں چیزیں لوپ کر سکتے ہیں، لیکن یہ شیل زبانوں میں ڈی ایس کوڈ کے لیے عام نہیں ہے)، آئیے دیتے ہیں۔ ایک سادہ سی مثال - مجھے وکی ڈیٹا کی QID میپنگ اور روسی اور انگریزی ویکیز کے مکمل لنکس کرنے کی ضرورت تھی، اس کے لیے میں نے bash میں موجود کمانڈز سے ایک سادہ سی درخواست لکھی اور آؤٹ پٹ کے لیے میں نے ازگر میں ایک سادہ اسکرپٹ لکھا، جسے میں اس طرح جمع کریں:

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 - سٹریم نے فوری طور پر نتیجہ نکالا اور اسے پوسٹ پروسیسر (جیسا کہ پہلی مثال کے ساتھ) Python میں منتقل کر دیا
  • اندرونی طور پر، پوسٹ پروسیسر ایک سادہ ریاستی مشین تھی جو آؤٹ پٹ کو فارمیٹ کرتی تھی۔ 

مجموعی طور پر، بڑے ڈیٹا (0.5TB) پر فلو موڈ میں کام کرنے والی ایک پیچیدہ پائپ لائن، بغیر اہم وسائل کے اور ایک سادہ پائپ لائن اور چند ٹولز سے بنائی گئی ہے۔

ایک اور اہم ٹپ: ٹرمینل میں اچھی اور مؤثر طریقے سے کام کرنے کے قابل ہو جائیں اور bash/zsh/etc لکھیں۔

کہاں مفید ہو گا؟ ہاں، تقریباً ہر جگہ - ایک بار پھر، انٹرنیٹ پر مطالعہ کرنے کے لیے بہت سارے مواد موجود ہیں۔ خاص طور پر، یہاں اس میرا پچھلا مضمون۔

آر اسکرپٹنگ

ایک بار پھر، قاری چیخ سکتا ہے - ٹھیک ہے، یہ ایک مکمل پروگرامنگ زبان ہے! اور یقینا، وہ صحیح ہو گا. تاہم، مجھے عام طور پر اس تناظر میں R کا سامنا کرنا پڑا کہ درحقیقت یہ استفسار کی زبان سے بہت ملتی جلتی تھی۔

R ایک شماریاتی کمپیوٹنگ ماحول اور جامد کمپیوٹنگ اور ویژولائزیشن کے لیے زبان ہے (کے مطابق یہ).

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
لیا اس وجہ سے. ویسے، میں اس کی سفارش کرتا ہوں، اچھا مواد.

ڈیٹا سائنسدان کو R جاننے کی ضرورت کیوں ہے؟ کم از کم، کیونکہ وہاں غیر آئی ٹی لوگوں کی ایک بہت بڑی پرت ہے جو R میں ڈیٹا کا تجزیہ کرتے ہیں۔ میں نے اسے درج ذیل جگہوں پر دیکھا:

  • فارماسیوٹیکل سیکٹر۔
  • ماہرین حیاتیات۔
  • مالیاتی شعبہ۔
  • مکمل طور پر ریاضی کی تعلیم کے حامل لوگ جو اعدادوشمار سے نمٹتے ہیں۔
  • خصوصی شماریاتی ماڈلز اور مشین لرننگ ماڈلز (جو اکثر مصنف کے ورژن میں بطور R پیکج مل سکتے ہیں)۔

یہ اصل میں استفسار کی زبان کیوں ہے؟ جس شکل میں یہ اکثر پایا جاتا ہے، یہ دراصل ایک ماڈل بنانے کی درخواست ہے، جس میں ڈیٹا کو پڑھنا اور سوال (ماڈل) کے پیرامیٹرز کو درست کرنا، ساتھ ہی ggplot2 جیسے پیکجوں میں ڈیٹا کا تصور کرنا بھی شامل ہے - یہ سوالات لکھنے کی بھی ایک شکل ہے۔ .

تصور کے لیے مثال کے سوالات

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، جیسے ڈیٹا فریمز اور ڈیٹا ویکٹرائزیشن - لہذا عام طور پر R میں بہت سی چیزیں آپ کو مانوس اور آسان معلوم ہوں گی۔

مطالعہ کرنے کے بہت سے ذرائع ہیں، مثال کے طور پر، یہ.

علم کا گراف

یہاں مجھے تھوڑا سا غیر معمولی تجربہ ہے، کیونکہ مجھے اکثر علمی گراف اور گرافس کے لیے استفسار کی زبانوں کے ساتھ کام کرنا پڑتا ہے۔ لہذا، آئیے مختصراً بنیادی باتوں پر غور کریں، کیونکہ یہ حصہ کچھ زیادہ ہی غیر ملکی ہے۔

کلاسیکی رشتہ دار ڈیٹا بیس میں ہمارے پاس ایک طے شدہ اسکیما ہے، لیکن یہاں اسکیما لچکدار ہے، ہر پیشین اصل میں ایک "کالم" ہے اور اس سے بھی زیادہ۔

تصور کریں کہ آپ ایک شخص کی ماڈلنگ کر رہے ہیں اور اہم چیزوں کو بیان کرنا چاہتے ہیں، مثال کے طور پر، آئیے ایک مخصوص شخص، ڈگلس ایڈمز کو لیں، اور اس تفصیل کو بنیاد کے طور پر استعمال کریں۔

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
www.wikidata.org/wiki/Q42

اگر ہم ایک رشتہ دار ڈیٹا بیس استعمال کرتے ہیں، تو ہمیں کالموں کی ایک بڑی تعداد کے ساتھ ایک بہت بڑا ٹیبل یا ٹیبل بنانا پڑے گا، جن میں سے زیادہ تر NULL ہوں گے یا کچھ ڈیفالٹ False ویلیو سے بھرے ہوں گے، مثال کے طور پر، اس بات کا امکان نہیں ہے کہ ہم میں سے بہت سے لوگوں کے پاس کورین نیشنل لائبریری میں داخلہ - بلاشبہ، ہم انہیں الگ الگ جدولوں میں رکھ سکتے ہیں، لیکن یہ بالآخر ایک لچکدار منطقی سرکٹ کا نمونہ بنانے کی کوشش ہوگی جس میں ایک مقررہ رشتہ دار کا استعمال کرتے ہوئے پیشین گوئیاں ہوں۔

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ
تو تصور کریں کہ تمام ڈیٹا بطور گراف یا بائنری اور یونری بولین ایکسپریشنز کے طور پر محفوظ ہے۔

آپ اس کا سامنا بھی کہاں کر سکتے ہیں؟ سب سے پہلے، کے ساتھ کام کرنا ڈیٹا ویکی، اور کسی بھی گراف ڈیٹا بیس یا منسلک ڈیٹا کے ساتھ۔

مندرجہ ذیل اہم سوالات کی زبانیں ہیں جو میں نے استعمال کی ہیں اور ان کے ساتھ کام کیا ہے۔

SPARQL

ویکیپیڈیا:
SPARQL (تکراری مخفف سے انگریزی SPARQL پروٹوکول اور RDF استفسار کی زبان) - ڈیٹا استفسار کی زبان، ماڈل کی طرف سے نمائندگی RDFاور پروٹوکول ان درخواستوں کو منتقل کرنے اور ان کا جواب دینے کے لیے۔ SPARQL ایک سفارش ہے۔ W3C کنسورشیم اور ٹیکنالوجیز میں سے ایک سیمنٹک ویب.

لیکن حقیقت میں یہ منطقی unary اور binary predicates کے لیے استفسار کی زبان ہے۔ آپ صرف مشروط طور پر بتا رہے ہیں کہ بولین ایکسپریشن میں کیا طے ہے اور کیا نہیں ہے (بہت آسان)۔

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 یورپی یونین کی ID ہے۔

ازگر کے انجن کے اندر ایک حقیقی SPARQL استفسار کی ایک مثال:

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ

عام طور پر، مجھے SPARQL کو لکھنے کے بجائے پڑھنا پڑا ہے - اس صورت حال میں، یہ ممکنہ طور پر ایک مفید ہنر ہو گا کہ زبان کو کم از کم بنیادی سطح پر یہ سمجھنا کہ ڈیٹا کو کیسے بازیافت کیا جاتا ہے۔ 

آن لائن مطالعہ کرنے کے لیے بہت سا مواد موجود ہے: مثال کے طور پر، یہاں یہ и یہ. میں عام طور پر مخصوص ڈیزائن اور مثالیں گوگل کرتا ہوں اور ابھی کے لیے اتنا ہی کافی ہے۔

منطقی استفسار کی زبانیں۔

آپ میرے مضمون میں اس موضوع پر مزید پڑھ سکتے ہیں۔ یہاں. اور یہاں، ہم صرف مختصراً جائزہ لیں گے کہ استفسارات لکھنے کے لیے منطقی زبانیں کیوں موزوں ہیں۔ بنیادی طور پر، RDF فارم p(X) اور h(X,Y) کے منطقی بیانات کا محض ایک مجموعہ ہے، اور ایک منطقی استفسار کی مندرجہ ذیل شکل ہوتی ہے:

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

یہاں ہم ایک نیا پریڈیکٹ آؤٹ پٹ/1 (/1 کا مطلب unary) بنانے کے بارے میں بات کر رہے ہیں، بشرطیکہ X کے لیے یہ درست ہو کہ ملک(X) - یعنی X ایک ملک ہے اور ممبر_of(X,"EU") بھی۔

یعنی، اس معاملے میں، ڈیٹا اور قواعد دونوں ایک ہی طرح سے پیش کیے گئے ہیں، جو ہمیں بہت آسانی سے اور اچھی طرح سے مسائل کو ماڈل کرنے کی اجازت دیتا ہے۔

انڈسٹری میں آپ کی ملاقات کہاں ہوئی؟: ایک کمپنی کے ساتھ ایک پورا بڑا پروجیکٹ جو اس طرح کی زبان میں سوالات لکھتا ہے، نیز سسٹم کے بنیادی حصے میں موجودہ پروجیکٹ پر - ایسا لگتا ہے کہ یہ ایک غیر معمولی چیز ہے، لیکن کبھی کبھی ایسا ہوتا ہے۔

منطقی زبان کی پروسیسنگ ویکی ڈیٹا میں کوڈ کے ٹکڑے کی ایک مثال:

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ

مواد: میں یہاں جدید منطقی پروگرامنگ لینگویج آنسر سیٹ پروگرامنگ کے چند لنکس دوں گا - میں اس کا مطالعہ کرنے کا مشورہ دیتا ہوں:

ڈیٹا سائنسدان کے نوٹس: ڈیٹا کے سوالات کی زبانوں کا ذاتی جائزہ

ماخذ: www.habr.com

نیا تبصرہ شامل کریں