የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
የት እና መቼ ጠቃሚ እንደነበረ ከግል ተሞክሮ እነግርዎታለሁ። ምን እና የት መቆፈር እንደሚችሉ ግልጽ እንዲሆን አጠቃላይ እይታ እና ተሲስ ነው - ግን እዚህ እኔ ብቻ የተወሰነ የግል ተሞክሮ አለኝ ፣ ምናልባት ሁሉም ነገር ለእርስዎ የተለየ ሊሆን ይችላል።

የመጠይቅ ቋንቋዎችን ማወቅ እና መጠቀም መቻል ለምን አስፈለገ? በመሰረቱ ዳታ ሳይንስ በርካታ ጠቃሚ የስራ ደረጃዎች አሉት፣ እና በጣም የመጀመሪያው እና በጣም አስፈላጊው (ያለ እሱ በእርግጠኝነት ምንም አይሰራም!) መረጃ ማግኘት ወይም ማውጣት ነው። ብዙውን ጊዜ, ውሂቡ በተወሰነ መልኩ የሆነ ቦታ ተቀምጧል እና ከዚያ "መምጣት" ያስፈልገዋል. 

የመጠይቅ ቋንቋዎች ይህን ውሂብ እንዲያወጡ ያስችሉዎታል! እና ዛሬ ለእኔ ጠቃሚ ስለሆኑት የጥያቄ ቋንቋዎች እነግራችኋለሁ እና እነግርዎታለሁ እና የት እና እንዴት በትክክል - ለምን ማጥናት እንደሚያስፈልግ እነግርዎታለሁ።

በዚህ ጽሑፍ ውስጥ የምንወያይባቸው ሶስት ዋና ዋና የመረጃ መጠይቅ ዓይነቶች ይኖራሉ ።

  • እንደ ተዛማጅ አልጀብራ ወይም SQL ያሉ ሾለ መጠይቅ ቋንቋ ሲናገሩ "መደበኛ" የመጠይቅ ቋንቋዎች በተለምዶ የሚረዱት ናቸው።
  • የጥያቄ ቋንቋዎች ስክሪፕት ማድረግ፡ ለምሳሌ፡ Python things pandas፣ numpy or shell scripting።
  • የጥያቄ ቋንቋዎች ለእውቀት ግራፎች እና ግራፍ ዳታቤዝ።

እዚህ የተፃፈው ሁሉም ነገር የግል ተሞክሮ ብቻ ነው ፣ ጠቃሚ የሆነው ፣ የሁኔታዎች መግለጫ እና “ለምን እንደሚያስፈልግ” - ሁሉም ሰው እንዴት ተመሳሳይ ሁኔታዎች በእርስዎ መንገድ ሊመጡ እንደሚችሉ መሞከር እና እነዚህን ቋንቋዎች በመረዳት ለእነሱ አስቀድመው ለመዘጋጀት መሞከር ይችላሉ ። በፕሮጀክት ላይ (በአስቸኳይ) ማመልከቻ ከማቅረብዎ በፊት ወይም ወደሚፈለጉበት ፕሮጀክት እንኳን ከመድረስዎ በፊት።

"መደበኛ" የጥያቄ ቋንቋዎች

መደበኛ የመጠይቅ ቋንቋዎች በትክክል ስለ መጠይቆች ስንናገር ስለእነሱ ስለምናስብበት ሁኔታ ነው።

ተዛማጅ አልጀብራ

ለምን ዛሬ ተዛማጅ አልጀብራ አስፈለገ? የመጠይቅ ቋንቋዎች ለምን በተወሰነ መንገድ እንደሚዋቀሩ እና በጥንቃቄ ለመጠቀም ጥሩ ግንዛቤ እንዲኖርዎት ከስር ያለውን ዋና ነገር መረዳት ያስፈልግዎታል።

ተዛማጅ አልጀብራ ምንድን ነው?

መደበኛው ፍቺው የሚከተለው ነው፡ ተዛማች አልጀብራ በግንኙነት መረጃ ሞዴል ውስጥ በግንኙነቶች ላይ የተዘጋ የክወና ስርዓት ነው። በጥቂቱ ሰብአዊ በሆነ መልኩ ለማስቀመጥ, ይህ በጠረጴዛዎች ላይ የአሠራር ስርዓት ነው, ይህም ውጤቱ ሁልጊዜ ጠረጴዛ ነው.

ሁሉንም ተዛማጅ ተግባራት በ ውስጥ ይመልከቱ ይሄ ከ Habr መጣጥፍ - ለምን ማወቅ እንዳለቦት እና የት እንደሚጠቅም እንገልፃለን።

ለምን?

የመጠይቅ ቋንቋዎች ስለ ምን እንደሆኑ እና በተወሰኑ የጥያቄ ቋንቋዎች ውስጥ ካሉ መግለጫዎች በስተጀርባ ምን ተግባራት እንዳሉ መረዳት መጀመር ብዙውን ጊዜ በጥያቄ ቋንቋዎች ውስጥ ምን እንደሚሰራ እና እንዴት እንደሚሰራ ጥልቅ ግንዛቤን ይሰጣል።

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
ከ የተወሰደ ይሄ ጽሑፎች. የክወና ምሳሌ: መቀላቀል, ይህም ጠረጴዛዎችን ይቀላቀላል.

ለጥናት የሚያስፈልጉ ቁሳቁሶች፡-

ጥሩ የመግቢያ ትምህርት ከስታንፎርድ. በአጠቃላይ, በተዛማጅ አልጀብራ እና ቲዎሪ ላይ ብዙ ቁሳቁሶች አሉ - Coursera, Udacity. ጥሩን ጨምሮ ከፍተኛ መጠን ያለው ቁሳቁስ በመስመር ላይም አለ። የትምህርት ኮርሶች. የእኔ የግል ምክር: ተዛማጅ አልጀብራን በደንብ መረዳት ያስፈልግዎታል - ይህ የመሠረታዊ ነገሮች መሠረት ነው.

SQL

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
ከ የተወሰደ ይሄ መጣጥፎች

SQL በመሠረቱ የግንኙነት አልጀብራ ትግበራ ነው - ከጠቃሚ ማስጠንቀቂያ ጋር፣ SQL ገላጭ ነው! ማለትም ጥያቄን በተዛማጅ አልጀብራ ቋንቋ ሲጽፉ በትክክል እንዴት ማስላት እንደሚቻል ይናገራሉ - ነገር ግን በ SQL ምን ማውጣት እንደሚፈልጉ ይገልፃሉ ፣ እና ከዚያ DBMS ቀድሞውኑ በግንኙነት አልጀብራ ቋንቋ (ውጤታማ) አገላለጾችን ያመነጫል። እኩልነት ለእኛ ይታወቃል የኮድድ ቲዎሪ).

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
ከ የተወሰደ ይሄ መጣጥፎች

ለምን?

ተዛማጅ ዲቢኤምኤስዎች፡ Oracle፣ Postgres፣ SQL Server፣ ወዘተ አሁንም በሁሉም ቦታ ይገኛሉ እና ከእነሱ ጋር የመገናኘት እድሉ በጣም በሚያስደንቅ ሁኔታ አለ፣ ይህ ማለት እርስዎ SQL ማንበብ አለብዎት (ይህም በጣም ሊሆን ይችላል) ወይም ይፃፉ ( የማይመስል ነገር ነው)።

ምን ማንበብ እና ማጥናት

ከላይ ባሉት ተመሳሳይ አገናኞች (ስለ ተያያዥ አልጀብራ)፣ የማይታመን መጠን ያለው ቁሳቁስ አለ፣ ለምሳሌ፣ ይሄ.

በነገራችን ላይ NoSQL ምንድን ነው?

"NoSQL" የሚለው ቃል ፍፁም ድንገተኛ መነሻ እንዳለው እና ከጀርባው በአጠቃላይ ተቀባይነት ያለው ፍቺ ወይም ሳይንሳዊ ተቋም እንደሌለው በድጋሚ አፅንዖት መስጠት ተገቢ ነው። ተዛማጅ ጽሑፍ በሀብር ላይ

እንደ እውነቱ ከሆነ, ሰዎች ብዙ ችግሮችን ለመፍታት የተሟላ የግንኙነት ሞዴል እንደማያስፈልግ ተገንዝበዋል, በተለይም ለምሳሌ, አፈፃፀሙ ወሳኝ እና የተወሰኑ ቀላል መጠይቆችን ከድምር ጋር የበላይ ናቸው - መለኪያዎችን በፍጥነት ለማስላት እና ለመጻፍ በጣም አስፈላጊ ነው. የውሂብ ጎታ ፣ እና አብዛኛዎቹ ባህሪዎች ተያያዥነት ያላቸው አላስፈላጊ ብቻ ሳይሆን ጎጂም ሆነው - ለእኛ በጣም አስፈላጊ የሆነውን ነገር (ለተወሰኑ ተግባራት) የሚያበላሽ ከሆነ ለምን አንድ ነገር መደበኛ ያደርገዋል - ምርታማነት?

እንዲሁም ፣ ከጥንታዊው የግንኙነት ሞዴል ቋሚ የሂሳብ መርሃግብሮች ይልቅ ተለዋዋጭ መርሃግብሮች ብዙውን ጊዜ ያስፈልጋሉ - እና ይህ በሚያስደንቅ ሁኔታ የመተግበሪያ ልማትን ቀላል ያደርገዋል ስርዓቱን መዘርጋት እና በፍጥነት መሥራት ሲጀምር ውጤቱን ማካሄድ - ወይም የተከማቸ ውሂብ ንድፍ እና ዓይነቶች። በጣም አስፈላጊ አይደሉም.

ለምሳሌ የባለሙያ ስርዓት እየፈጠርን ነው እና መረጃን በተወሰነ ጎራ ላይ ከአንዳንድ ሜታ መረጃ ጋር ማከማቸት እንፈልጋለን - ሁሉንም መስኮች ላናውቃቸው እና ለእያንዳንዱ መዝገብ 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 ስርዓቶች ምን እንደሆኑ በትክክል መተንተን ያስፈልግዎታል - እና ከዚያ ይህንን ስርዓት ማጥናት ይጀምሩ።

የስክሪፕት መጠይቅ ቋንቋዎች

በመጀመሪያ ፣ Python ከሱ ጋር በአጠቃላይ ምን የሚያገናኘው ይመስላል - እሱ የፕሮግራም ቋንቋ ነው ፣ እና ስለ መጠይቆች በጭራሽ አይደለም።

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

  • ፓንዳስ በጥሬው የስዊዘርላንድ ጦር የመረጃ ሳይንስ ቢላዋ ነው፤ በውስጡ ከፍተኛ መጠን ያለው የውሂብ ለውጥ፣ ድምር፣ ወዘተ. ይከሰታል።
  • Numpy - የቬክተር ስሌቶች፣ ማትሪክስ እና መስመራዊ አልጀብራ እዚያ።
  • Scipy - በዚህ ፓኬጅ ውስጥ ብዙ የሂሳብ ትምህርት አለ, በተለይም ስታቲስቲክስ.
  • ጁፒተር ላብራቶሪ - ብዙ የዳሰሳ መረጃ ትንተና በላፕቶፖች ውስጥ በደንብ ይጣጣማል - ለማወቅ ይጠቅማል።
  • ጥያቄዎች - ከአውታረ መረቡ ጋር መስራት.
  • ፒስፓርክ በዳታ መሐንዲሶች ዘንድ በጣም ታዋቂ ነው ፣ ምናልባትም እርስዎ በታዋቂነታቸው ምክንያት ከዚህ ወይም ከስፓርክ ጋር መገናኘት ሊኖርብዎ ይችላል።
  • ሴሊኒየም - መረጃን ከጣቢያዎች እና ሀብቶች ለመሰብሰብ በጣም ጠቃሚ ነው ፣ አንዳንድ ጊዜ በቀላሉ ውሂቡን ለማግኘት ሌላ መንገድ የለም።

ዋና ምክሬ፡ Pythonን ተማር!

ፓናስ

የሚከተለውን ኮድ እንደ ምሳሌ እንውሰድ።

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

የት እና ምን እንደሚነበብ

በፓይዘን እራሱ በአጠቃላይ ችግር አይሆንም ለማጥናት ቁሳቁሶችን ያግኙ. በመስመር ላይ እጅግ በጣም ብዙ የመማሪያ ትምህርቶች አሉ። ፓናስ, pySpark እና ኮርሶች በ ላይ ሽክርክሪት (እና በራሱ DS). በአጠቃላይ፣ እዚህ ያለው ይዘት ለጉግል ጥሩ ነው፣ እና ለማተኮር አንድ ጥቅል መምረጥ ካለብኝ፣ በእርግጥ ፓንዳስ ነው። የ DS+Python ቁሶች ጥምረትንም በተመለከተ በጣም ብዙ.

ሼል እንደ መጠይቅ ቋንቋ

እኔ አብሬያቸው የሰራኋቸው ጥቂት የመረጃ ማቀነባበሪያ እና ትንተና ፕሮጄክቶች፣ በእውነቱ፣ በ Python፣ Java እና ሼል እራሳቸውን የሚያዝዙ ኮድ የሚጠሩ የሼል ስክሪፕቶች ናቸው። ስለዚህ, በአጠቃላይ, በ bash / zsh / ወዘተ ውስጥ የቧንቧ መስመሮችን እንደ አንድ ዓይነት ከፍተኛ ደረጃ መጠይቅ (በእርግጥ, እዚያ ውስጥ ሉፕዎችን ማድረግ ይችላሉ, ነገር ግን ይህ በሼል ቋንቋዎች ውስጥ ለ DS ኮድ የተለመደ አይደለም), እንስጥ. ቀላል ምሳሌ - የ QID ካርታ ዊኪዳታ እና ሙሉ አገናኞችን ወደ ሩሲያኛ እና እንግሊዝኛ ዊኪስ ማድረግ ነበረብኝ ፣ ለዚህም በ bash ውስጥ ካሉት ትዕዛዞች ቀላል ጥያቄ ጻፍኩ እና ለውጤቱ በ Python ውስጥ ቀላል ስክሪፕት ጻፍኩ ፣ አንድ ላይ እንዲህ አቀናብር፡-

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 filepath - በፋይል መጠን ላይ በመመስረት የሂደት አሞሌን ይሰጣል እና ይዘቱን ወደ ላይ ያስተላልፋል
  • unpigz -c የማህደሩን ክፍል አንብቦ ለ jq ሰጠው
  • jq ከቁልፍ ጋር - ዥረቱ ወዲያውኑ ውጤቱን አመጣ እና ወደ ድህረ ፕሮሰሰር (ከመጀመሪያው ምሳሌ ጋር ተመሳሳይ) በ Python ውስጥ አሳለፈው።
  • በውስጥ፣ ድህረ ፕሮሰሰር ውጤቱን የሚቀርፅ ቀላል የስቴት ማሽን ነበር። 

በጠቅላላው, በትልቅ ዳታ (0.5TB) ፍሰት ሁነታ የሚሰራ ውስብስብ የቧንቧ መስመር, ጉልህ ሀብቶች ሳይኖር እና ከቀላል የቧንቧ መስመር እና ሁለት መሳሪያዎች የተሰራ.

ሌላ ጠቃሚ ምክር: በተርሚናል ውስጥ በጥሩ ሁኔታ እና በብቃት ለመስራት እና bash / zsh / ወዘተ ይፃፉ.

የት ይጠቅማል? አዎ ፣ በሁሉም ቦታ ማለት ይቻላል - እንደገና ፣ በይነመረብ ላይ ለማጥናት ብዙ ቁሳቁሶች አሉ። በተለይ እዚህ ይሄ የቀድሞ ጽሑፌ.

አር ስክሪፕት

እንደገና አንባቢው ሊጮህ ይችላል - ደህና ፣ ይህ አጠቃላይ የፕሮግራም ቋንቋ ነው! እና በእርግጥ, እሱ ትክክል ይሆናል. ሆኖም፣ 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 ጥቅሎች ተሰደዱ እንደ ፓንዳ፣ numpy ወይም scipy፣ እንደ dataframes እና data vectorization - ስለዚህ በአጠቃላይ በ R ውስጥ ያሉ ብዙ ነገሮች ለእርስዎ የተለመዱ እና ምቹ ይመስላሉ።

ለማጥናት ብዙ ምንጮች አሉ, ለምሳሌ, ይሄ.

የእውቀት ግራፎች

እዚህ ትንሽ ያልተለመደ ተሞክሮ አለኝ ፣ ምክንያቱም ብዙ ጊዜ ከእውቀት ግራፎች እና የጥያቄ ቋንቋዎች ጋር መሥራት አለብኝ። ስለዚህ, ይህ ክፍል ትንሽ ለየት ያለ ስለሆነ ስለ መሰረታዊ ነገሮች በአጭሩ እንለፍ.

በጥንታዊ ግንኙነት የውሂብ ጎታዎች ውስጥ ቋሚ ንድፍ አለን።

አንድን ሰው ሞዴል እየሰሩ እንደሆነ አስቡት እና ቁልፍ ነገሮችን ለመግለጽ እንደፈለጉ ለምሳሌ አንድ የተወሰነ ሰው ዳግላስ አዳምስን እንውሰድ እና ይህን መግለጫ እንደ መሰረት እንጠቀምበት።

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
www.wikidata.org/wiki/Q42

ተዛማጅ ዳታቤዝ ከተጠቀምን ብዙ ቁጥር ያላቸው ዓምዶች ያሉት ትልቅ ጠረጴዛ ወይም ሰንጠረዦችን መፍጠር አለብን፣ አብዛኞቹ ባዶ ወይም በተወሰነ ነባሪ የተሞላ የውሸት እሴት፣ ለምሳሌ ብዙዎቻችን ያለን አይመስልም። በኮሪያ ብሔራዊ ቤተ-መጽሐፍት ውስጥ መግባት - በእርግጥ ፣ እኛ በተለየ ጠረጴዛዎች ውስጥ ልናስቀምጣቸው እንችላለን ፣ ግን ይህ በመጨረሻ ቋሚ ግንኙነትን በመጠቀም ተለዋዋጭ ሎጂካዊ ወረዳን ከ predicates ጋር ለመቅረጽ የሚደረግ ሙከራ ነው።

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
ስለዚህ ሁሉም መረጃዎች እንደ ግራፍ ወይም እንደ ሁለትዮሽ እና ያልተወሳሰበ ቡሊያን አገላለጾች ይከማቻሉ ብለው ያስቡ።

ይህንን እንኳን የት ሊያጋጥሙህ ይችላሉ? በመጀመሪያ ከ ጋር መስራት ውሂብ wiki, እና ከማንኛውም የግራፍ ዳታቤዝ ወይም የተገናኘ ውሂብ ጋር.

የተጠቀምኳቸው እና የሰራኋቸው ዋናዎቹ የጥያቄ ቋንቋዎች የሚከተሉት ናቸው።

SPARQL

wiki:
ስፓርኪል (ተደጋጋሚ ምህጻረ ቃል от እንግ. የSPARQL ፕሮቶኮል እና RDF መጠይቅ ቋንቋ) - የውሂብ መጠይቅ ቋንቋ, በአምሳያው የተወከለው አር.ዲ.ዲ., እንዲሁም ፕሮቶኮል እነዚህን ጥያቄዎች ለማስተላለፍ እና ለእነሱ ምላሽ ለመስጠት. SPARQL ምክር ነው። W3C ኮንሰርቲየም እና አንዱ ቴክኖሎጂዎች የትርጉም ድር.

ነገር ግን በእውነቱ እሱ ለሎጂካዊ unary እና ሁለትዮሽ ተሳቢዎች የጥያቄ ቋንቋ ነው። በቀላሉ በቦሊያን አገላለጽ ውስጥ የተስተካከለውን እና ያልሆነውን (በጣም ቀላል) እየገለጹ ነው።

የ SPARQL መጠይቆች የሚፈጸሙበት የ RDF (የሀብት መግለጫ ማዕቀፍ) መሠረት ራሱ ሦስት እጥፍ ነው። object, predicate, subject - እና ጥያቄው በመንፈስ ውስጥ በተገለጹት ገደቦች መሰረት የሚፈለጉትን ሶስት እጥፍ ይመርጣል፡ p_55(X, q_33) እውነት የሆነበትን X ፈልግ - በእርግጥ p_55 ከመታወቂያ 55 ጋር የተወሰነ ግንኙነት ሲሆን q_33 ደግሞ መታወቂያ 33 ያለው ነገር (እዚህ እና አጠቃላይ ታሪኩ፣ ሁሉንም አይነት ዝርዝሮች እንደገና በመተው)።

የውሂብ አቀራረብ ምሳሌ፡-

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ
እዚህ ካሉ አገሮች ጋር ስዕሎች እና ምሳሌዎች እዚህ.

መሰረታዊ የጥያቄ ምሳሌ

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

እንደ እውነቱ ከሆነ፣ ለተሳቢው እንዲህ ያለውን የአገር ተለዋዋጭ ዋጋ ማግኘት እንፈልጋለን
የ(?ሀገር፣q458) እና q458 አባል የአውሮፓ ህብረት መታወቂያ መሆኑ እውነት ነው።

በ python ሞተር ውስጥ የእውነተኛ የSPARQL መጠይቅ ምሳሌ፡-

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

በተለምዶ፣ SPARQLን ከመፃፍ ይልቅ ማንበብ ነበረብኝ - በዚህ ሁኔታ፣ መረጃ እንዴት እንደሚወጣ በትክክል ለመረዳት ቋንቋውን ቢያንስ በመሰረታዊ ደረጃ መረዳት ጠቃሚ ችሎታ ሊሆን ይችላል። 

በመስመር ላይ ለማጥናት ብዙ ቁሳቁሶች አሉ-ለምሳሌ ፣ እዚህ ይሄ и ይሄ. እኔ ብዙውን ጊዜ የተወሰኑ ንድፎችን እና ምሳሌዎችን ጎግል አደርጋለሁ እና ለአሁን በቂ ነው።

ምክንያታዊ የጥያቄ ቋንቋዎች

በጽሑፌ ውስጥ በርዕሱ ላይ የበለጠ ማንበብ ይችላሉ። እዚህ. እና እዚህ ፣ ለምን አመክንዮአዊ ቋንቋዎች ጥያቄዎችን ለመፃፍ በጣም ተስማሚ እንደሆኑ በአጭሩ እንመረምራለን ። በመሠረቱ፣ RDF የቅጽ p(X) እና h(X፣Y) የአመክንዮአዊ መግለጫዎች ስብስብ ብቻ ነው፣ እና አመክንዮአዊ መጠይቅ የሚከተለው ቅጽ አለው።

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

እዚህ እየተነጋገርን ያለነው አዲስ ተሳቢ ውፅዓት ስለመፍጠር/1 (/1 ማለት ያልተለመደ ማለት ነው)፣ ለ X እውነት ከሆነ ያ ሀገር(X) - ማለትም X ሀገር እና እንዲሁም የ(X ፣ EU) አባል ነው።

ያም ማለት በዚህ ጉዳይ ላይ ሁለቱም መረጃዎች እና ደንቦቹ በተመሳሳይ መልኩ ቀርበዋል, ይህም ችግሮችን በቀላሉ እና በጥሩ ሁኔታ ለመቅረጽ ያስችለናል.

በኢንዱስትሪው ውስጥ የት ተገናኙ?: በእንደዚህ ዓይነት ቋንቋ ጥያቄዎችን ከሚጽፍ ኩባንያ ጋር ፣ እንዲሁም በስርዓቱ ዋና አካል ውስጥ ባለው የአሁኑ ፕሮጀክት ላይ አንድ ትልቅ ፕሮጀክት - ይህ በጣም እንግዳ ነገር ይመስላል ፣ ግን አንዳንድ ጊዜ ይከሰታል።

በምክንያታዊ ቋንቋ ዊኪዳታ ሂደት ውስጥ ያለ የኮድ ቁራጭ ምሳሌ፡-

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

ቁሳቁሶች፡ ወደ ዘመናዊው የሎጂክ ፕሮግራሚንግ ቋንቋ ሁለት አገናኞችን እሰጣለሁ መልስ አዘጋጅ ፕሮግራሚንግ - እንድታጠናው እመክራለሁ፡

የውሂብ ሳይንቲስት ማስታወሻዎች፡ ለግል የተበጀ የውሂብ መጠይቅ ቋንቋዎች ግምገማ

ምንጭ: hab.com

አስተያየት ያክሉ