Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
БподСлям ΠΎΡ‚ Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚ ΠΊΠ°ΠΊ, къдС ΠΈ ΠΊΠΎΠ³Π° ΠΌΠΈ Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. ΠžΠ±Π·ΠΎΡ€Π½ΠΎ ΠΈ тСзисно, Π·Π° Π΄Π° Π΅ ясно ΠΊΠ°ΠΊΠ²ΠΎ ΠΈ къдС ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠΏΠ°Π΅ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ β€” Π½ΠΎ Ρ‚ΡƒΠΊ става Π²ΡŠΠΏΡ€ΠΎΡ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π° субСктивния ΠΌΠΈ Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚, ΠΏΡ€ΠΈ вас ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ съвсСм Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ.

Π—Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки? Π’ Data Science Π² основата си ΠΈΠΌΠ° няколко Π²Π°ΠΆΠ½ΠΈ Π΅Ρ‚Π°ΠΏΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Π½Π°ΠΉ-ΠΏΡŠΡ€Π²ΠΈΡΡ‚ ΠΈ Π²Π°ΠΆΠ΅Π½ (Π±Π΅Π· Π½Π΅Π³ΠΎ наистина няма Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½ΠΈΡ‰ΠΎ!) β€” Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ. Най-чСсто Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ някъдС ΠΈ трябва Π΄Π° сС 'ΠΈΠ·Π²Π°Π΄Π°Ρ‚' ΠΎΡ‚Ρ‚Π°ΠΌ.Β 

Π•Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки Ρ‚ΠΎΡ‡Π½ΠΎ позволяват ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ! И днСс Ρ‰Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΌΠΈ Π±ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° къдС ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ β€” Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅.

Π’ статията Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚Ρ€ΠΈ основни Π±Π»ΠΎΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²Π΅ заявки Π·Π° Π΄Π°Π½Π½ΠΈ:

  • β€žΠ‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈβ€œ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки β€” Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ говорят Π·Π° Π΅Π·ΠΈΠΊ Π·Π° заявки, ΠΊΠ°Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π° ΠΈΠ»ΠΈ SQL.
  • Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Python Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ pandas, numpy ΠΈΠ»ΠΈ shell scripting.
  • Π•Π·ΠΈΡ†ΠΈ Π·Π° заявки към Π³Ρ€Π°Ρ„ΠΎΠ²ΠΈ знания ΠΈ Π³Ρ€Π°Ρ„ΠΎΠ²ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.

Всичко написано Ρ‚ΡƒΠΊ Π΅ просто Π»ΠΈΡ‡Π΅Π½ ΠΎΠΏΠΈΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΈ Π΅ Π±ΠΈΠ» ΠΏΠΎΠ»Π΅Π·Π΅Π½, с описаниС Π½Π° ситуации ΠΈ β€žΠ·Π°Ρ‰ΠΎ Π΅ Π±ΠΈΠ»ΠΎ Π½ΡƒΠΆΠ½ΠΎβ€œ β€” всСки ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ситуации ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΌΡƒ сС случат ΠΈ Π΄Π° сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° сС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈ Π·Π° тях ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ с Ρ‚Π΅Π·ΠΈ Π΅Π·ΠΈΡ†ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³Π° (Π² спСшСн ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊ) ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ са Π½ΡƒΠΆΠ½ΠΈ.

β€žΠ‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈβ€œ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ смисъл, Ρ‡Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ мислим ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π° тях, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° заявки.

Π Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π°

Π—Π°Ρ‰ΠΎ днСс Π΅ Π½ΡƒΠΆΠ½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π°? Π—Π° Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ Π΄ΠΎΠ±Ρ€ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π°Ρ‰ΠΎ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки са устроСни ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΈ ΡΡŠΠ·Π½Π°Ρ‚Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅, Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ основата, Π½Π° която Ρ€Π°Π·Ρ‡ΠΈΡ‚Π°Ρ‚.

Какво Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π°?

Π€ΠΎΡ€ΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅: Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π° β€” Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π° систСма ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ. По-просто ΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎΠ²Π° Π΅ систСма ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡŠΡ‰ΠΎ Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π’ΠΈΠΆΡ‚Π΅ всички Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Π°Π·ΠΈ статия ΠΎΡ‚ Π₯Π°Π±Ρ€Π° β€” Ρ‚ΡƒΠΊ описвамС Π·Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΈ къдС сС ΠΏΡ€ΠΈΠ»Π°Π³Π°.

Π—Π°Ρ‰ΠΎ?

Π—Π°ΠΏΠΎΡ‡Π²Π°Ρˆ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρˆ ΠΊΠ°ΠΊΠ²ΠΎ прСдставляват Π·Π°ΡΠ²ΡŠΡ‡Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ стоят Π·Π°Π΄ ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈΡ‚Π΅ заявки β€” чСсто Π΄Π°Π²Π° ΠΏΠΎ-дълбоко Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Π·Π°ΡΠ²ΡŠΡ‡Π½ΠΈΡ‚Π΅ Π΅Π·ΠΈΡ†ΠΈ.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
Π’Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ статията. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° опСрация: join, която обСдинява Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅:

Π”ΠΎΠ±ΡŠΡ€ въводСн курс ΠΎΡ‚ Π‘Ρ‚Π°Π½Ρ„ΠΎΡ€Π΄. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΡ‚Π΅ ΠΏΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π°Π»Π³Π΅Π±Ρ€Π° ΠΈ тСория са ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ β€” Π‘oursera, Udacity. Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство ΠΎΠ½Π»Π°ΠΉΠ½ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄ΠΎΠ±Ρ€ΠΈ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡ‡Π½ΠΈ курсовС. Личният ΠΌΠΈ ΡΡŠΠ²Π΅Ρ‚: трябва Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π° β€” Ρ‚ΠΎΠ²Π° Π΅ основата.

SQL

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
Π’Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ статията.

SQL Π΅ ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ имплСмСнтация Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π° β€” с Π²Π°ΠΆΠ½Π° ΡƒΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°, SQL Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½! ВоСст, записвайки заявка Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π°, Π²ΠΈΠ΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΊΠ°Π·Π²Π°Ρ‚Π΅ ΠΊΠ°ΠΊ трябва Π΄Π° сС счита β€” Π° с SQL Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ искатС Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅, Π° послС Π‘Π£Π‘Π” Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° (Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ) ΠΈΠ·Ρ€Π°Π·ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π°Π»Π³Π΅Π±Ρ€Π° (СквивалСнтността ΠΈΠΌ Π΅ извСстна ΠΏΠΎΠ΄ Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ°Ρ‚Π° Π½Π° Кодд).

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
Π’Π·Π΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚Π°Π·ΠΈ статията.

Π—Π°Ρ‰ΠΎ?

Π Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π‘Π£Π‘Π”: 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 - Ρ‚ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, Π° Π½Π΅ Π·Π° заявки ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

  • Pandas Π΅ истински ΡˆΠ²Π΅ΠΉΡ†Π°Ρ€ΡΠΊΠΈ Π½ΠΎΠΆ Π·Π° Data Science, ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство трансформации Π½Π° Π΄Π°Π½Π½ΠΈ, Π°Π³Ρ€Π΅Π³ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ‚.Π½. сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² Π½Π΅Π³ΠΎ.
  • Numpy - Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΈ изчислСния, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†ΠΈ ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½Π° Π°Π»Π³Π΅Π±Ρ€Π° Ρ‚Π°ΠΌ.
  • Scipy - ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚, особСно статистика.
  • Jupyter lab - ΠΌΠ½ΠΎΠ³ΠΎ изслСдоватСлски Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€Π΅ сС вписва Π² Π½ΠΎΡƒΡ‚Π±ΡƒΡ†ΠΈΡ‚Π΅ - ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΅ Π΄Π° Π³ΠΎ ΡƒΠΌΠ΅Π΅Ρ‚Π΅.
  • Requests - Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.
  • Pyspark - ΠΌΠ½ΠΎΠ³ΠΎ популярСн срСд ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, вСроятно Ρ‰Π΅ Π²ΠΈ сС Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° взаимодСйстватС с Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Spark, просто ΠΏΠΎΡ€Π°Π΄ΠΈ тяхната популярност.
  • *Selenium - ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ сайтовС ΠΈ рСсурси, понякога просто ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄Π°Π½Π½ΠΈΡ‚Π΅.

ΠœΠΎΡΡ‚ основСн ΡΡŠΠ²Π΅Ρ‚: ΡƒΡ‡Π΅Ρ‚Π΅ Python!

Pandas

НСка Π²Π·Π΅ΠΌΠ΅ΠΌ слСдния ΠΊΠΎΠ΄ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import pandas as pd
df = pd.read_csv("data/dataset.csv")
# Π˜Π·Ρ‡ΠΈΡΠ»Π΅Ρ‚Π΅ ΠΈ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΉΡ‚Π΅ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈΡ‚Π΅
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'
GROUP BY start_station_name, end_station_name

Но Π²Π°ΠΆΠ½Π°Ρ‚Π° част Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ част ΠΎΡ‚ скрипта ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°, Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΌΠ΅ заявкитС Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½ΠΎΠ²ΠΈΡ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½. Π’ Ρ‚Π°Π·ΠΈ ситуация Π΅Π·ΠΈΠΊΡŠΡ‚ Π½Π° заявкитС ΠΈΠ΄Π²Π° ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ Pandas ΠΈΠ»ΠΈ pySpark.

ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ, Π² pySpark Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ сходСн Ρ‚ΠΈΠΏ трансформация Π½Π° Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· Π΅Π·ΠΈΠΊΠ° Π½Π° заявкитС:

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

КъдС ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π°

Π—Π° самия ΠŸΠ°ΠΉΡ‚ΠΎΠ½ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ няма ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π° сС намСрят ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠΌΠ° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΈ ΠΏΠΎ pandas, pySpark ΠΈ курсовС ΠΏΠΎ Spark (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° самия DS). Π’ΡŠΠΎΠ±Ρ‰Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΡ‚Π΅ сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ лСсно ΠΈ Π°ΠΊΠΎ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π° Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° сС фокусирам β€” Ρ‚ΠΎΠ²Π° със сигурност Ρ‰Π΅ΡˆΠ΅ Π΄Π° бъдС pandas. По ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ DS+Python ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ са наистина ΠΌΠ½ΠΎΠ³ΠΎ.

Shell ΠΊΠ°Ρ‚ΠΎ Π΅Π·ΠΈΠΊ Π½Π° заявкитС

Няма ΠΌΠ°Π»ΠΊΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΈ сС Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° работя β€” Ρ‚ΠΎΠ²Π°, ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ, са shell скриптовС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ ΠΊΠΎΠ΄ Π½Π° ΠŸΠ°ΠΉΡ‚ΠΎΠ½, Π½Π° Java ΠΈ самитС shell ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Π—Π°Ρ‚ΠΎΠ²Π° Π² ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΈΡ‚Π΅ Π² bash/zsh/ ΠΈ Π΄Ρ€. ΠΊΠ°Ρ‚ΠΎ Π²ΠΈΠ΄ високоуровнСва заявка (Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ ΠΈ Ρ†ΠΈΠΊΠ»ΠΈ, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ Π·Π° DS ΠΊΠΎΠ΄ Π½Π° shell Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅), Π΅Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ прост ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ ΠΌΠΈ Π΄Π° направя ΠΌΠ°ΠΏΠΈΠ½Π³ Π½Π° 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 filepath β€” Π΄Π°Π²Π° прогрСс Π±Π°Ρ€ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ Π½Π°ΠΏΡ€Π΅Π΄
  • unpigz -c Ρ‡Π΅Ρ‚Π΅ΡˆΠ΅ част ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°ΡˆΠ΅ Π½Π° jq
  • jq с ΠΊΠ»ΡŽΡ‡Π° β€” stream Π²Π΅Π΄Π½Π°Π³Π° издавашС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΈ Π³ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°ΡˆΠ΅ Π½Π° постпроцСсора (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΉ-ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€) Π½Π° ΠŸΠ°ΠΉΡ‚ΠΎΠ½
  • Π²ΡŠΡ‚Ρ€Π΅ ΠΏΠΎΡΡ‚ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ β€” Ρ‚ΠΎΠ²Π° Π΅ проста машина Π·Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ, която Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°ΡˆΠ΅ ΠΈΠ·Π²ΠΎΠ΄Π°Β 

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ слоТСн ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° с Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ (0.5TB), Π±Π΅Π· Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси, ΡΡŠΡΡ‚Π°Π²Π΅Π½ ΠΎΡ‚ прост ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΈ няколко инструмСнта.

ΠžΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π²Π°ΠΆΠ΅Π½ ΡΡŠΠ²Π΅Ρ‚: ΡƒΠΌΠ΅ΠΉΡ‚Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Ρ€Π΅ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° bash/zsh/ΠΈ Ρ‚.Π½.

КъдС Ρ‰Π΅ сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ? ΠŸΠΎΡ‡Ρ‚ΠΈ навсякъдС β€” ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΡ‚Π΅ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ са ΠžΠ“Π ΠžΠœΠΠž количСство Π² ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°. Π’ частност, Π΅Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° моята ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° статия.

R ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅

ΠžΡ‚Π½ΠΎΠ²ΠΎ читатСлят ΠΌΠΎΠΆΠ΅ Π΄Π° възкликнС β€” Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ цял Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅! И СстСствСно, Ρ‰Π΅ бъдС ΠΏΡ€Π°Π². Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΈ сС Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° сС сблъсквам с R Π² контСкст, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ близък Π΄ΠΎ Π΅Π·ΠΈΠΊ Π·Π° заявки.

R прСдставлява срСда Π·Π° статистичСски изчислСния ΠΈ Π΅Π·ΠΈΠΊ Π·Π° статистичСски изчислСния ΠΈ визуализация (съгласно Ρ‚ΠΎΠ·ΠΈ).

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
Π’Π·Π΅Ρ‚ΠΎ ΠΎΡ‚Ρ‚ΡƒΠΊ. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ, Π΄ΠΎΠ±ΡŠΡ€ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π».

Π—Π°Ρ‰ΠΎ Π½Π° Π΄Π°Ρ‚Π° ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ ΠΈΠΌ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° знаят R? Най-ΠΌΠ°Π»ΠΊΠΎΡ‚ΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Π³Ρ€ΡƒΠΏΠ° Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са ΠΎΡ‚ IT сСктора, Π° Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ със Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ с 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 Ρ‰Π΅ Π²ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΈ.

Има ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ·ΠΈ.

Π“Ρ€Π°Ρ„ΠΈ Π½Π° знания (Knowledge graph)

Π’ΡƒΠΊ ΠΈΠΌΠ°ΠΌ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΎΠΏΠΈΡ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΈ сС Π½Π°Π»Π°Π³Π° доста чСсто Π΄Π° работя с Π³Ρ€Π°Ρ„ΠΈ Π½Π° знания ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки към Π³Ρ€Π°Ρ„ΠΈ. Π—Π°Ρ‚ΠΎΠ²Π° само Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ‰Π΅ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°ΠΌΠ΅ основитС, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Π°Π·ΠΈ част Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π΅ΠΊΠ·ΠΎΡ‚ΠΈΡ‡Π½Π°.

Π’ класичСскитС Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ фиксирана схСма β€” Ρ‚ΡƒΠΊ схСмата Π΅ гъвкава, всСки ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ Π΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ "ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°" ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Ρ‚Π΅ си, Ρ‡Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚Π΅ Ρ‡ΠΎΠ²Π΅ΠΊ ΠΈ искатС Π΄Π° ΠΎΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π½Π΅Ρ‰Π°. Π—Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ конкрСтния Ρ‡ΠΎΠ²Π΅ΠΊ Π”ΡŠΠ³Π»Π°Ρ Адамс, основавайки сС Π½Π° Ρ‚ΠΎΠ²Π° описаниС.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
www.wikidata.org/wiki/Q42

Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π° Π±Π°Π·Π°, щяхмС Π΄Π° трябва Π΄Π° създадСм ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° Π±ΠΈΠ»ΠΈ NULL ΠΈΠ»ΠΈ запълнСни с някаква ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰Π° сС False стойност. НапримСр, Π΅Π΄Π²Π° Π»ΠΈ ΠΌΠ½ΠΎΠ·ΠΈΠ½Π° ΠΎΡ‚ нас ΠΈΠΌΠ°Ρ‚ запис Π² Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½Π°Ρ‚Π° корСйска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° β€” Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΈ изнСсСм Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Π½ΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‚ΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΎΠΏΠΈΡ‚ Π΄Π° сС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π° гъвкава логичСска схСма с ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ Ρ‡Ρ€Π΅Π· фиксирана Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π½Π°.

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
Π—Π°Ρ‚ΠΎΠ²Π° си прСдставСтС, Ρ‡Π΅ всички Π΄Π°Π½Π½ΠΈ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π°Ρ„ ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΈ ΡƒΠ½Π°Ρ€Π½ΠΈ логичСски ΠΈΠ·Ρ€Π°Π·ΠΈ.

КъдС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π΄Π° сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ‚Π΅ с Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ? ΠŸΡŠΡ€Π²ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π΅ΠΉΠΊΠΈ с Π²ΠΈΠΊΠΈ Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ с всякакви Π³Ρ€Π°Ρ„ΠΎΠ²ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Π‘Π»Π΅Π΄Π²Π°Ρ‚ основнитС Π΅Π·ΠΈΡ†ΠΈ Π·Π° заявки, ΠΊΠΎΠΈΡ‚ΠΎ съм ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π» ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ» с.

SPARQL

Wiki:
SPARQL (рСкурсивСн Π°ΠΊΡ€ΠΎΠ½ΠΈΠΌ ΠΎΡ‚ Π°Π½Π³Π». SPARQL Protocol and RDF Query Language) β€” Π΅Π·ΠΈΠΊ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ, прСдставСни ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»Π° RDF, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ заявки ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° тях. SPARQL Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π½Π° консорциума W3C ΠΈ Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ Π½Π° сСмантичната ΠΌΡ€Π΅ΠΆΠ°..

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚, Ρ‚ΠΎΠ²Π° Π΅ Π΅Π·ΠΈΠΊ Π·Π° заявки към логичСски ΡƒΠ½Π°Ρ€Π½ΠΈ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ. Π’ΠΈΠ΅ просто ΡƒΠΊΠ°Π·Π²Π°Ρ‚Π΅ условно, ΠΊΠ°ΠΊΠ²ΠΎ Π΅ фиксирано Π² логичСския ΠΈΠ·Ρ€Π°Π·, Π° ΠΊΠ°ΠΊΠ²ΠΎ Π½Π΅ (ΠΌΠ½ΠΎΠ³ΠΎ опростСно).

Π‘Π°ΠΌΠ°Ρ‚Π° Π±Π°Π·Π° RDF (Resource Description Framework), Π²ΡŠΡ€Ρ…Ρƒ която сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ SPARQL заявки, Π΅ Ρ‚Ρ€ΠΎΠΉΠΊΠ° ΠΎΠ±Π΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚, субСкт β€” ΠΈ заявката ΠΈΠ·Π±ΠΈΡ€Π° Π½ΡƒΠΆΠ½ΠΈΡ‚Π΅ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈ ограничСния Π² Π΄ΡƒΡ…Π°: Π½Π°ΠΌΠ΅Ρ€Π΅Ρ‚Π΅ Ρ‚Π°ΠΊΡŠΠ² X, Ρ‚Π°ΠΊΡŠΠ² Ρ‡Π΅ p_55(X, q_33) Π΅ вярно β€” ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, p_55 Π΅ някакво ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ с ID 55, Π° q_33 Π΅ ΠΎΠ±Π΅ΠΊΡ‚ с ID 33 (Ρ‚ΠΎΠ²Π° Π΅ всичко, пропускайки всякакви Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° прСдставянС Π½Π° Π΄Π°Π½Π½ΠΈ:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ
ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ със странитС: ΠΎΡ‚Ρ‚ΡƒΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° основна заявка:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

ЀактичСски, искамС Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ стойността Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° ?country, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π° ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°
member_of Π΅ вярно, Ρ‡Π΅ member_of(?country,q458), Π° q458 Π΅ ID Π½Π° ЕвропСйския съюз.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ€Π΅Π°Π»Π½Π° SPARQL заявка Π² Python Π΄Π²ΠΈΠΆΠΊΠ°:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

ОбикновСно ΠΌΠΈ сС Π΅ Π½Π°Π»Π°Π³Π°Π»ΠΎ Π΄Π° Ρ‡Π΅Ρ‚Π° SPARQL, Π° Π½Π΅ Π΄Π° пиша β€” Π² Ρ‚Π°ΠΊΠ°Π²Π° ситуация вСроятно Ρ‰Π΅ Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρˆ Π΅Π·ΠΈΠΊΠ° ΠΏΠΎΠ½Π΅ Π½Π° Π±Π°Π·ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρˆ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ сС ΠΈΠ·Π²Π»ΠΈΡ‡Π°Ρ‚ Π΄Π°Π½Π½ΠΈ.Β 

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ Π·Π° ΠΈΠ·ΡƒΡ‡Π°Π²Π°Π½Π΅: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Ρ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΈ Ρ‚ΠΎΠ·ΠΈ. ОбикновСно Ρ‚ΡŠΡ€ΡΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ конструкции ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π² Google ΠΈ засСга ΠΌΠΈ стига.

ЛогичСски Π΅Π·ΠΈΡ†ΠΈ Π·Π° запитвания

ΠŸΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠΎ Ρ‚Π΅ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρˆ Π² моята статия Ρ‚ΡƒΠΊ. А Ρ‚ΡƒΠΊ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π·Π°Ρ‰ΠΎ логичСскитС Π΅Π·ΠΈΡ†ΠΈ Π΄ΠΎΠ±Ρ€Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°Ρ‚ Π·Π° писанС Π½Π° запитвания. По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ, RDF Π΅ просто Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ логичСски Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΡ ΠΎΡ‚ Π²ΠΈΠ΄Π° p(X) ΠΈ h(X,Y), Π° логичСското Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ ΠΈΠΌΠ° слСдния Π²ΠΈΠ΄:

output(X) :- country(X), member_of(X, "EU").

Π’ΡƒΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° създаванС Π½Π° Π½ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ output/1 (/1 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° ΡƒΠ½ΠΈΠ°Ρ€Π΅Π½), ΠΏΡ€ΠΈ условиС Ρ‡Π΅ Π·Π° X Π΅ вярно, Ρ‡Π΅ country(X) β€” Ρ‚.Π΅. X Π΅ страна ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° member_of(X, "EU").

ВоСст ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΡ‚ΠΎ Π΄Π°Π½Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π² Ρ‚Π°ΠΊΡŠΠ² случай са прСдставСни ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΌΠ½ΠΎΠ³ΠΎ лСсно ΠΈ Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° сС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ.

КъдС сС срСщат Π² индустрията: цял голям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с компания, която пишС запитвания Π½Π° Ρ‚Π°ΠΊΡŠΠ² Π΅Π·ΠΈΠΊ, Π° ΡΡŠΡ‰ΠΎ ΠΈ Π² тСкущия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ядрото Π½Π° систСмата β€” изглСТдашС доста Π΅ΠΊΠ·ΠΎΡ‚ΠΈΡ‡Π½ΠΎ, Π½ΠΎ понякога сС срСща.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° логичСски Π΅Π·ΠΈΠΊ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ Wikidata:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ: Ρ‰Π΅ спомСна Ρ‚ΡƒΠΊ няколко Π»ΠΈΠ½ΠΊΠ° Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ логичСски Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Answer Set Programming β€” ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π²Π°Ρˆ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π΅Π³ΠΎ:

Π‘Π΅Π»Π΅ΠΆΠΊΠΈ Π½Π° Π”Π°Ρ‚Π° БайСнтиста: Π»ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π·Π° заявки към Π΄Π°Π½Π½ΠΈ

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster