ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
ืื ื™ ืื•ืžืจ ืœืš ืžื ื™ืกื™ื•ืŸ ืื™ืฉื™ ืžื” ื”ื™ื” ืฉื™ืžื•ืฉื™ ืื™ืคื” ื•ืžืชื™. ื–ื” ืกืงื™ืจื” ื•ืชื–ื”, ื›ื“ื™ ืฉื™ื”ื™ื” ื‘ืจื•ืจ ืžื” ื•ื”ื™ื›ืŸ ืืชื” ื™ื›ื•ืœ ืœื—ืคื•ืจ ื™ื•ืชืจ - ืื‘ืœ ื›ืืŸ ื™ืฉ ืœื™ ื ื™ืกื™ื•ืŸ ืื™ืฉื™ ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ ื‘ืœื‘ื“, ืื•ืœื™ ื”ื›ืœ ืฉื•ื ื” ืœื’ืžืจื™ ืขื‘ื•ืจืš.

ืžื“ื•ืข ื—ืฉื•ื‘ ืœื“ืขืช ื•ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื”ืฉืชืžืฉ ื‘ืฉืคื•ืช ืฉืื™ืœืชื•ืช? ื‘ื‘ืกื™ืกื•, ืœ-Data Science ื™ืฉ ื›ืžื” ืฉืœื‘ื™ ืขื‘ื•ื“ื” ื—ืฉื•ื‘ื™ื, ื•ื”ืจืืฉื•ืŸ ื•ื”ื—ืฉื•ื‘ ื‘ื™ื•ืชืจ (ื‘ืœืขื“ื™ื•, ื•ื“ืื™ ืฉืฉื•ื ื“ื‘ืจ ืœื ื™ืขื‘ื•ื“!) ื”ื•ื ื”ืฉื’ืช ืื• ื—ื™ืœื•ืฅ ื ืชื•ื ื™ื. ืœืจื•ื‘, ื”ื ืชื•ื ื™ื ื™ื•ืฉื‘ื™ื ืื™ืคืฉื”ื• ื‘ืฆื•ืจื” ื›ืœืฉื”ื™ ื•ืฆืจื™ืš "ืœืฉืœื•ืฃ" ืžืฉื. 

ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืžืืคืฉืจื•ืช ืœืš ืœื—ืœืฅ ืืช ื”ื ืชื•ื ื™ื ื”ืืœื”! ื•ื”ื™ื•ื ืืกืคืจ ืœื›ื ืขืœ ืฉืคื•ืช ื”ืฉืื™ืœืชื” ื”ืœืœื• ืฉื”ื™ื• ืฉื™ืžื•ืฉื™ื•ืช ืขื‘ื•ืจื™ ื•ืืกืคืจ ืœื›ื ื•ืืจืื” ืœื›ื ื”ื™ื›ืŸ ื•ืื™ืš ื‘ื“ื™ื•ืง - ืœืžื” ื–ื” ื ื—ื•ืฅ ืœืœืžื•ื“.

ื™ื”ื™ื• ืฉืœื•ืฉื” ื‘ืœื•ืงื™ื ืขื™ืงืจื™ื™ื ืฉืœ ืกื•ื’ื™ ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื, ืขืœื™ื”ื ื ื“ื•ืŸ ื‘ืžืืžืจ ื–ื”:

  • ืฉืคื•ืช ืฉืื™ืœืชื•ืช "ืกื˜ื ื“ืจื˜ื™ื•ืช" ื”ืŸ ืžื” ืฉืžืงื•ื‘ืœ ืœื”ื‘ื™ืŸ ื›ืฉืžื“ื‘ืจื™ื ืขืœ ืฉืคืช ืฉืื™ืœืชื”, ื›ื’ื•ืŸ ืืœื’ื‘ืจื” ืจืœืฆื™ื•ื ื™ืช ืื• SQL.
  • ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืกืงืจื™ืคื˜ื™ื: ืœื“ื•ื’ืžื”, Python things pandas, numpy ืื• scripting shell.
  • ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืœื’ืจืคื™ ื™ื“ืข ื•ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ ื’ืจืคื™ื.

ื›ืœ ืžื” ืฉื ื›ืชื‘ ื›ืืŸ ื”ื•ื ืจืง ื—ื•ื•ื™ื” ืื™ืฉื™ืช, ืžื” ืฉื”ื™ื” ืฉื™ืžื•ืฉื™, ืขื ืชื™ืื•ืจ ืฉืœ ืžืฆื‘ื™ื ื•"ืœืžื” ื–ื” ื”ื™ื” ื ื—ื•ืฅ" - ื›ืœ ืื—ื“ ื™ื›ื•ืœ ืœื ืกื•ืช ืื™ืš ืžืฆื‘ื™ื ื“ื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ื’ื™ืข ื‘ื“ืจืš ืฉืœืš ื•ืœื ืกื•ืช ืœื”ืชื›ื•ื ืŸ ืืœื™ื”ื ืžืจืืฉ ืขืœ ื™ื“ื™ ื”ื‘ื ืช ื”ืฉืคื•ืช ื”ืœืœื• ืœืคื ื™ ืฉืืชื” ืฆืจื™ืš ืœื”ื’ื™ืฉ ื‘ืงืฉื” (ื‘ื“ื—ื™ืคื•ืช) ืขืœ ืคืจื•ื™ืงื˜ ืื• ืืคื™ืœื• ืœื”ื’ื™ืข ืœืคืจื•ื™ืงื˜ ืฉื‘ื• ื”ื ื ื—ื•ืฆื™ื.

ืฉืคื•ืช ืฉืื™ืœืชื•ืช "ืกื˜ื ื“ืจื˜ื™ื•ืช".

ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช ื”ืŸ ื‘ื“ื™ื•ืง ื‘ืžื•ื‘ืŸ ืฉืื ื—ื ื• ื‘ื“ืจืš ื›ืœืœ ื—ื•ืฉื‘ื™ื ืขืœื™ื”ืŸ ื›ืฉืื ื—ื ื• ืžื“ื‘ืจื™ื ืขืœ ืฉืื™ืœืชื•ืช.

ืืœื’ื‘ืจื” ื™ื—ืกื™

ืžื“ื•ืข ื ื“ืจืฉืช ื”ื™ื•ื ืืœื’ื‘ืจื” ื™ื—ืกื™ืช? ื›ื“ื™ ืœื”ื‘ื™ืŸ ื˜ื•ื‘ ืžื“ื•ืข ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื‘ื ื•ื™ื•ืช ื‘ืฆื•ืจื” ืžืกื•ื™ืžืช ื•ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื‘ืื•ืคืŸ ืžื•ื“ืข, ืขืœื™ืš ืœื”ื‘ื™ืŸ ืืช ื”ืœื™ื‘ื” ื”ืขื•ืžื“ืช ื‘ื‘ืกื™ืกืŸ.

ืžื”ื™ ืืœื’ื‘ืจื” ื™ื—ืกื™ืช?

ื”ื”ื’ื“ืจื” ื”ืคื•ืจืžืœื™ืช ื”ื™ื ื›ื“ืœืงืžืŸ: ืืœื’ื‘ืจื” ื™ื—ืกื™ ื”ื™ื ืžืขืจื›ืช ืกื’ื•ืจื” ืฉืœ ืคืขื•ืœื•ืช ืขืœ ื™ื—ืกื™ื ื‘ืžื•ื“ืœ ื ืชื•ื ื™ื ื™ื—ืกื™. ืื ืœื•ืžืจ ืืช ื–ื” ืงืฆืช ื™ื•ืชืจ ืื ื•ืฉื™, ืžื“ื•ื‘ืจ ื‘ืžืขืจื›ืช ืฉืœ ืคืขื•ืœื•ืช ืขืœ ื˜ื‘ืœืื•ืช ื›ืš ืฉื”ืชื•ืฆืื” ื”ื™ื ืชืžื™ื“ ื˜ื‘ืœื”.

ืจืื” ืืช ื›ืœ ื”ืคืขื•ืœื•ืช ื”ื™ื—ืกื™ื•ืช ื‘ ื–ื” ืžืืžืจ ืžื”ืื‘ืจ - ื›ืืŸ ืื ื• ืžืชืืจื™ื ืžื“ื•ืข ืืชื” ืฆืจื™ืš ืœื“ืขืช ื•ื”ื™ื›ืŸ ื–ื” ืฉื™ืžื•ืฉื™.

ืœืžื”?

ื”ืชื—ืœืช ืœื”ื‘ื™ืŸ ื‘ืžื” ืžื“ื•ื‘ืจ ื‘ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื•ืื™ืœื• ืคืขื•ืœื•ืช ืขื•ืžื“ื•ืช ืžืื—ื•ืจื™ ื‘ื™ื˜ื•ื™ื™ื ื‘ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืกืคืฆื™ืคื™ื•ืช ื ื•ืชื ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื”ื‘ื ื” ืžืขืžื™ืงื” ื™ื•ืชืจ ืฉืœ ืžื” ืขื•ื‘ื“ ื‘ืฉืคื•ืช ืฉืื™ืœืชื” ื•ื›ื™ืฆื“.

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
ื ืœืงื— ืž ื–ื” ืžืืžืจื™ื. ื“ื•ื’ืžื” ืœืคืขื•ืœื”: join, ื”ืžืฆื˜ืจืคืช ืœื˜ื‘ืœืื•ืช.

ื—ื•ืžืจื™ื ืœืœื™ืžื•ื“:

ืงื•ืจืก ืžื‘ื•ื ื˜ื•ื‘ ืžืกื˜ื ืคื•ืจื“. ื‘ืื•ืคืŸ ื›ืœืœื™, ื™ืฉ ื”ืจื‘ื” ื—ื•ืžืจื™ื ืขืœ ืืœื’ื‘ืจื” ื•ืชื™ืื•ืจื™ื” ื™ื—ืกื™ื™ื - Coursera, Udacity. ื™ืฉ ื’ื ื›ืžื•ืช ืขืฆื•ืžื” ืฉืœ ื—ื•ืžืจ ื‘ืื™ื ื˜ืจื ื˜, ื›ื•ืœืœ ื˜ื•ื‘ ืงื•ืจืกื™ื ืืงื“ืžื™ื™ื. ื”ืขืฆื” ื”ืื™ืฉื™ืช ืฉืœื™: ืืชื” ืฆืจื™ืš ืœื”ื‘ื™ืŸ ืืช ื”ืืœื’ื‘ืจื” ื”ื”ืชื™ื™ื—ืกื•ืชื™ืช ื”ื™ื˜ื‘ - ื–ื” ื”ื‘ืกื™ืก ืฉืœ ื”ื™ืกื•ื“ื•ืช.

SQL

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
ื ืœืงื— ืž ื–ื” ืžืืžืจื™ื.

SQL ื”ื•ื ื‘ืขืฆื ื™ื™ืฉื•ื ืฉืœ ืืœื’ื‘ืจื” ืจืœืฆื™ื•ื ื™ืช - ืขื ืื–ื”ืจื” ื—ืฉื•ื‘ื”, SQL ื”ื•ื ื”ืฆื”ืจืชื™! ื›ืœื•ืžืจ, ื›ืฉื›ื•ืชื‘ื™ื ืฉืื™ืœืชื” ื‘ืฉืคืช ื”ืืœื’ื‘ืจื” ื”ื”ืชื™ื™ื—ืกื•ืช, ื‘ืขืฆื ืื•ืžืจื™ื ืื™ืš ืœื—ืฉื‘ - ืื‘ืœ ืขื SQL ืžืฆื™ื™ื ื™ื ืžื” ืจื•ืฆื™ื ืœื—ืœืฅ, ื•ืื– ื”-DBMS ื›ื‘ืจ ืžื™ื™ืฆืจ ื‘ื™ื˜ื•ื™ื™ื (ื™ืขื™ืœื™ื) ื‘ืฉืคืช ื”ืืœื’ื‘ืจื” ื”ื”ืชื™ื™ื—ืกื•ืชื™ืช (ืฉืœื”ื ืฉืงื™ืœื•ืช ื™ื“ื•ืขื” ืœื ื• ื‘ืชื•ืจ ืžืฉืคื˜ ืงื•ื“).

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
ื ืœืงื— ืž ื–ื” ืžืืžืจื™ื.

ืœืžื”?

DBMSs ื™ื—ืกื™: 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 - ื”ืจื‘ื” ื ื™ืชื•ื— ื ืชื•ื ื™ื ื’ื™ืฉื•ืฉ ืžืชืื™ื ื”ื™ื˜ื‘ ืœืžื—ืฉื‘ื™ื ื ื™ื™ื“ื™ื - ื›ื“ืื™ ืœื“ืขืช.
  • ื‘ืงืฉื•ืช - ืขื‘ื•ื“ื” ืžื•ืœ ื”ืจืฉืช.
  • Pyspark ืคื•ืคื•ืœืจื™ ืžืื•ื“ ื‘ืงืจื‘ ืžื”ื ื“ืกื™ ื ืชื•ื ื™ื, ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉืชืฆื˜ืจืš ืœืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื–ื” ืื• ืขื Spark, ืคืฉื•ื˜ ื‘ื’ืœืœ ื”ืคื•ืคื•ืœืจื™ื•ืช ืฉืœื”ื.
  • *ืกืœื ื™ื•ื - ืฉื™ืžื•ืฉื™ ืžืื•ื“ ืœืื™ืกื•ืฃ ื ืชื•ื ื™ื ืžืืชืจื™ื ื•ืžืฉืื‘ื™ื, ืœืคืขืžื™ื ืคืฉื•ื˜ ืื™ืŸ ื“ืจืš ืื—ืจืช ืœืงื‘ืœ ืืช ื”ื ืชื•ื ื™ื.

ื”ืขืฆื” ื”ืขื™ืงืจื™ืช ืฉืœื™: ืœืžื“ 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

ืื‘ืœ ื”ื—ืœืง ื”ื—ืฉื•ื‘ ื”ื•ื ืฉื”ืงื•ื“ ื”ื–ื” ื”ื•ื ื—ืœืง ืžื”ืกืงืจื™ืคื˜ ื•ืžื”ืฆื™ื ื•ืจ; ืœืžืขืฉื”, ืื ื—ื ื• ืžื˜ืžื™ืขื™ื ืฉืื™ืœืชื•ืช ื‘ืฆื™ื ื•ืจ Python. ื‘ืžืฆื‘ ื–ื”, ืฉืคืช ื”ืฉืื™ืœืชื” ืžื’ื™ืขื” ืืœื™ื ื• ืžืกืคืจื™ื•ืช ื›ืžื• Pandas ืื• pySpark.

ื‘ืื•ืคืŸ ื›ืœืœื™, ื‘-pySpark ืื ื• ืจื•ืื™ื ืกื•ื’ ื“ื•ืžื” ืฉืœ ื˜ืจื ืกืคื•ืจืžืฆื™ื” ืฉืœ ื ืชื•ื ื™ื ื‘ืืžืฆืขื•ืช ืฉืคืช ืฉืื™ืœืชื” ื‘ืจื•ื—:

df.filter(df.trip_type = โ€œreturnโ€)
  .groupby(โ€œdayโ€)
  .agg({duration: 'mean'})
  .sort()

ืื™ืคื” ื•ืžื” ืœืงืจื•ื

ืขืœ ืคื™ื™ืชื•ืŸ ืขืฆืžื• ื‘ืื•ืคืŸ ื›ืœืœื™ ืื™ืŸ ื‘ืขื™ื” ืœืžืฆื•ื ื—ื•ืžืจื™ื ืœืœืžื•ื“. ื™ืฉ ืžืกืคืจ ืขืฆื•ื ืฉืœ ืžื“ืจื™ื›ื™ื ื‘ืื™ื ื˜ืจื ื˜ ื“ื•ื‘ื™ ืคื ื“ื”, pySpark ื•ืงื•ืจืกื™ื ื‘ื ื•ืฉื ืœืขื•ืจืจ (ื•ื’ื ื‘ืคื ื™ ืขืฆืžื• DS). ื‘ืกืš ื”ื›ืœ, ื”ืชื•ื›ืŸ ื›ืืŸ ื ื”ื“ืจ ืœื’ื•ื’ืœ, ื•ืื ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื‘ื—ื•ืจ ื—ื‘ื™ืœื” ืื—ืช ืœื”ืชืžืงื“ ื‘ื”, ื–ื” ื™ื”ื™ื” ืคื ื“ื”, ื›ืžื•ื‘ืŸ. ื’ื ืœื’ื‘ื™ ื”ืฉื™ืœื•ื‘ ืฉืœ ื—ื•ืžืจื™ื DS+Python ืžืื•ื“.

ืžืขื˜ืคืช ื›ืฉืคืช ืฉืื™ืœืชื”

ืœื ืžืขื˜ ืคืจื•ื™ืงื˜ื™ื ืฉืœ ืขื™ื‘ื•ื“ ื•ื ื™ืชื•ื— ื ืชื•ื ื™ื ืฉืขื‘ื“ืชื™ ืื™ืชื ื”ื ืœืžืขืฉื” ืกืงืจื™ืคื˜ื™ื ืฉืœ ืžืขื˜ืคืช ืฉืงื•ืจืื™ื ืœืงื•ื“ ื‘ืคื™ื™ืชื•ืŸ, ื’'ืื•ื•ื” ื•ืคืงื•ื“ื•ืช ื”ืžืขื˜ืคืช ืขืฆืžืŸ. ืœื›ืŸ, ื‘ืื•ืคืŸ ื›ืœืœื™, ืืชื” ื™ื›ื•ืœ ืœื”ืชื™ื™ื—ืก ืœืฆื™ื ื•ืจื•ืช ื‘-bash/zsh/etc ื›ืกื•ื’ ืฉืœ ืฉืื™ืœืชื” ื‘ืจืžื” ื’ื‘ื•ื”ื” (ืืชื” ื™ื›ื•ืœ, ื›ืžื•ื‘ืŸ, ืœื”ื›ื ื™ืก ืฉื ืœื•ืœืื•ืช, ืื‘ืœ ื–ื” ืœื ืื•ืคื™ื™ื ื™ ืœืงื•ื“ DS ื‘ืฉืคื•ืช ืžืขื˜ืคืช), ื‘ื•ืื• ื ื™ืชืŸ ื“ื•ื’ืžื” ืคืฉื•ื˜ื” - ื”ื™ื™ืชื™ ืฆืจื™ืš ืœืขืฉื•ืช ืžื™ืคื•ื™ QID ืฉืœ wikidata ื•ืงื™ืฉื•ืจื™ื ืžืœืื™ื ืœื•ื™ืงื™ ื”ืจื•ืกื™ืช ื•ื”ืื ื’ืœื™ืช, ื‘ืฉื‘ื™ืœ ื–ื” ื›ืชื‘ืชื™ ื‘ืงืฉื” ืคืฉื•ื˜ื” ืžื”ืคืงื•ื“ื•ืช ื‘-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 ืขื ื”ืžืคืชื— - ื–ืจื ื”ืคื™ืง ืžื™ื“ ืืช ื”ืชื•ืฆืื” ื•ื”ืขื‘ื™ืจ ืื•ืชื” ืœ-postprocessor (ื–ื”ื” ื›ืžื• ื‘ื“ื•ื’ืžื” ื”ืจืืฉื•ื ื”) ื‘ืคื™ื™ืชื•ืŸ
  • ื‘ืื•ืคืŸ ืคื ื™ืžื™, ื”-postprocessor ื”ื™ื” ืžื›ื•ื ืช ืžืฆื‘ ืคืฉื•ื˜ื” ืฉืขื™ืฆื‘ื” ืืช ื”ืคืœื˜ 

ื‘ืกืš ื”ื›ืœ, ืฆื™ื ื•ืจ ืžื•ืจื›ื‘ ืฉืขื•ื‘ื“ ื‘ืžืฆื‘ ื–ืจื™ืžื” ืขืœ ื ืชื•ื ื™ื ื’ื“ื•ืœื™ื (0.5TB), ืœืœื ืžืฉืื‘ื™ื ืžืฉืžืขื•ืชื™ื™ื ื•ืขืฉื•ื™ ืžืฆื™ื ื•ืจ ืคืฉื•ื˜ ื•ืžืกืคืจ ื›ืœื™ื.

ื˜ื™ืค ื—ืฉื•ื‘ ื ื•ืกืฃ: ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืขื‘ื•ื“ ื˜ื•ื‘ ื•ื™ืขื™ืœ ื‘ื˜ืจืžื™ื ืœ ื•ืœื›ืชื•ื‘ bash/zsh/etc.

ืื™ืคื” ื–ื” ื™ื”ื™ื” ืฉื™ืžื•ืฉื™? ื›ืŸ, ื›ืžืขื˜ ื‘ื›ืœ ืžืงื•ื - ืฉื•ื‘, ื™ืฉ ื”ืจื‘ื” ื—ื•ืžืจื™ื ืœืœืžื•ื“ ื‘ืื™ื ื˜ืจื ื˜. ื‘ืžื™ื•ื—ื“, ื›ืืŸ ื–ื” ื”ืžืืžืจ ื”ืงื•ื“ื ืฉืœื™.

R scripting

ืฉื•ื‘, ื”ืงื•ืจื ืขืฉื•ื™ ืœืฆืขื•ืง - ื•ื‘ื›ืŸ, ื–ื• ืฉืคืช ืชื›ื ื•ืช ืฉืœืžื”! ื•ื›ืžื•ื‘ืŸ, ื”ื•ื ื™ื”ื™ื” ืฆื•ื“ืง. ืขื ื–ืืช, ื‘ื“ืจืš ื›ืœืœ ื ืชืงืœืชื™ ื‘-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, ื›ืžื• dataframes ื•-data vectorization - ื›ืš ืฉื‘ืื•ืคืŸ ื›ืœืœื™ ื”ืจื‘ื” ื“ื‘ืจื™ื ื‘-R ื™ื™ืจืื• ืœื›ื ืžื•ื›ืจื™ื ื•ื ื•ื—ื™ื.

ื™ืฉ ื”ืจื‘ื” ืžืงื•ืจื•ืช ืœืœืžื•ื“, ืœืžืฉืœ, ื–ื”.

ื’ืจืคื™ ื™ื“ืข

ื›ืืŸ ื™ืฉ ืœื™ ื—ื•ื•ื™ื” ืงืฆืช ื™ื•ืฆืืช ื“ื•ืคืŸ, ื›ื™ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืื ื™ ืฆืจื™ืš ืœืขื‘ื•ื“ ืขื ื’ืจืคื™ ื™ื“ืข ื•ืฉืคื•ืช ืฉืื™ืœืชื•ืช ืขื‘ื•ืจ ื’ืจืคื™ื. ืœื›ืŸ, ื‘ื•ืื• ื ืขื‘ื•ืจ ื‘ืงืฆืจื” ืขืœ ื”ื™ืกื•ื“ื•ืช, ืฉื›ืŸ ื”ื—ืœืง ื”ื–ื” ื”ื•ื ืงืฆืช ื™ื•ืชืจ ืืงื–ื•ื˜ื™.

ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื™ื—ืกื™ื™ื ืงืœืืกื™ื™ื ื™ืฉ ืœื ื• ืกื›ื™ืžื” ืงื‘ื•ืขื”, ืื‘ืœ ื›ืืŸ ื”ืกื›ื™ืžื” ื’ืžื™ืฉื”, ื›ืœ ืคืจื“ื™ืงื˜ ื”ื•ื ืœืžืขืฉื” "ืขืžื•ื“ื”" ื•ืืฃ ื™ื•ืชืจ.

ืชืืจื• ืœืขืฆืžื›ื ืฉืืชื ืžื“ื’ืžื ื™ื ืื“ื ื•ืจืฆื™ืชื ืœืชืืจ ื“ื‘ืจื™ื ืžืจื›ื–ื™ื™ื, ืœืžืฉืœ, ื‘ื•ืื• ื ื™ืงื— ืื“ื ืกืคืฆื™ืคื™, ื“ืื’ืœืก ืื“ืžืก, ื•ื ืฉืชืžืฉ ื‘ืชื™ืื•ืจ ื”ื–ื” ื›ื‘ืกื™ืก.

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
www.wikidata.org/wiki/Q42

ืื ื”ืฉืชืžืฉื ื• ื‘ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™, ื ืฆื˜ืจืš ืœื™ืฆื•ืจ ื˜ื‘ืœื” ืขื ืงื™ืช ืื• ื˜ื‘ืœืื•ืช ืขื ืžืกืคืจ ืขืฆื•ื ืฉืœ ืขืžื•ื“ื•ืช, ืฉืจื•ื‘ืŸ ื™ื”ื™ื• NULL ืื• ืžืœืื•ืช ื‘ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ ืฉืœ False, ืœืžืฉืœ, ืื™ืŸ ื–ื” ืกื‘ื™ืจ ืฉืœืจื‘ื™ื ืžืื™ืชื ื• ื™ืฉ ืจื™ืฉื•ื ื‘ืกืคืจื™ื™ื” ื”ืœืื•ืžื™ืช ื”ืงื•ืจื™ืื ื™ืช - ื›ืžื•ื‘ืŸ, ื ื•ื›ืœ ืœืฉื™ื ืื•ืชื ื‘ื˜ื‘ืœืื•ืช ื ืคืจื“ื•ืช, ืื‘ืœ ื–ื” ื™ื”ื™ื” ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื ื™ืกื™ื•ืŸ ืœื™ืฆื•ืจ ืžื•ื“ืœ ืฉืœ ืžืขื’ืœ ืœื•ื’ื™ ื’ืžื™ืฉ ืขื ืคืจื“ื™ืงื˜ื™ื ื‘ืืžืฆืขื•ืช ืžืขื’ืœ ื™ื—ืกื™ ืงื‘ื•ืข.

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื
ืื– ืชืืจื• ืœืขืฆืžื›ื ืฉื›ืœ ื”ื ืชื•ื ื™ื ืžืื•ื—ืกื ื™ื ื›ื’ืจืฃ ืื• ื›ื‘ื™ื˜ื•ื™ื™ื ื‘ื•ืœื™ืื ื™ื™ื ื‘ื™ื ืืจื™ื™ื ื•ืื•ื ืจื™ื™ื.

ืื™ืคื” ืืคืฉืจ ื‘ื›ืœืœ ืœื”ื™ืชืงืœ ื‘ื–ื”? ืจืืฉื™ืช, ืœืขื‘ื•ื“ ืขื ื ืชื•ื ื™ื ื•ื™ืงื™, ื•ืขื ื›ืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื’ืจืคื™ื ืื• ื ืชื•ื ื™ื ืžื—ื•ื‘ืจื™ื.

ืœื”ืœืŸ ืฉืคื•ืช ื”ืฉืื™ืœืชื” ื”ืขื™ืงืจื™ื•ืช ื‘ื”ืŸ ื”ืฉืชืžืฉืชื™ ื•ืขื‘ื“ืชื™ ืื™ืชืŸ.

SPARQL

ื•ื™ืงื™:
SPARQL (ืจืืฉื™ ืชื™ื‘ื•ืช ืจืงื•ืจืกื™ื‘ื™ื™ื ืž ืื ื’. ืคืจื•ื˜ื•ืงื•ืœ SPARQL ื•ืฉืคืช ืฉืื™ืœืชื•ืช RDF-) ืฉืคืช ืฉืื™ืœืชืช ื ืชื•ื ื™ื, ื”ืžื™ื•ืฆื’ ืขืœ ื™ื“ื™ ื”ืžื•ื“ืœ RDFื• - ืคืจื•ื˜ื•ืงื•ืœ ืœื”ืขื‘ื™ืจ ื‘ืงืฉื•ืช ืืœื• ื•ืœื”ืฉื™ื‘ ืœื”ืŸ. SPARQL ื”ื™ื ื”ืžืœืฆื” ืงื•ื ืกื•ืจืฆื™ื•ื W3C ื•ืื—ืช ื”ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืจืฉืช ืกืžื ื˜ื™ืช.

ืื‘ืœ ื‘ืžืฆื™ืื•ืช ื–ื•ื”ื™ ืฉืคืช ืฉืื™ืœืชื” ืขื‘ื•ืจ ืคืจื“ื™ืงื˜ื™ื ืื•ื ืจื™ื™ื ื•ื‘ื™ื ืืจื™ื ืœื•ื’ื™ื™ื. ืืชื” ืคืฉื•ื˜ ืžืฆื™ื™ืŸ ื‘ืชื ืื™ ืžื” ืงื‘ื•ืข ื‘ื‘ื™ื˜ื•ื™ ื‘ื•ืœื™ืื ื™ ื•ืžื” ืœื (ื‘ืคืฉื˜ื•ืช ืจื‘ื”).

ื‘ืกื™ืก RDF (Resource Description Framework) ืขืฆืžื•, ืฉืขืœื™ื• ืžื‘ื•ืฆืขื•ืช ืฉืื™ืœืชื•ืช SPARQL, ื”ื•ื ืžืฉื•ืœืฉ object, predicate, subject - ื•ื”ืฉืื™ืœืชื” ื‘ื•ื—ืจืช ืืช ื”ืฉืœืฉื•ืช ื”ื ื“ืจืฉื•ืช ืœืคื™ ื”ื”ื’ื‘ืœื•ืช ืฉืฆื•ื™ื ื• ื‘ืจื•ื—: ืžืฆื X ื›ืš ืฉ-p_55(X, q_33) ื ื›ื•ืŸ - ื›ืืฉืจ, ื›ืžื•ื‘ืŸ, p_55 ื”ื•ื ืกื•ื’ ืฉืœ ื™ื—ืก ืขื ID 55, ื•-q_33 ื”ื•ื ื—ืคืฅ ืขื ืชืขื•ื“ืช ื–ื”ื•ืช 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 ืคื™ืจื•ืฉื• unary), ื‘ืชื ืื™ ืฉืขื‘ื•ืจ X ื–ื” ื ื›ื•ืŸ ืฉืžื“ื™ื ื”(X) - ื›ืœื•ืžืจ, X ื”ื™ื ืžื“ื™ื ื” ื•ื’ื ื—ื‘ืจ_ื‘(X,"EU ").

ื›ืœื•ืžืจ, ื‘ืžืงืจื” ื–ื”, ื’ื ื”ื ืชื•ื ื™ื ื•ื’ื ื”ื›ืœืœื™ื ืžื•ืฆื’ื™ื ื‘ืื•ืชื• ืื•ืคืŸ, ืžื” ืฉืžืืคืฉืจ ืœื ื• ืœื“ื’ืžืŸ ื‘ืขื™ื•ืช ื‘ืงืœื•ืช ื•ื‘ื˜ื•ื‘ื•ืช ืจื‘ื”.

ืื™ืคื” ื ืคื’ืฉืชื ื‘ืชืขืฉื™ื™ื”?: ืคืจื•ื™ืงื˜ ื’ื“ื•ืœ ืฉืœื ืขื ื—ื‘ืจื” ืฉื›ื•ืชื‘ืช ืฉืื™ืœืชื•ืช ื‘ืฉืคื” ื›ื–ื•, ื•ื›ืŸ ืขืœ ื”ืคืจื•ื™ืงื˜ ื”ื ื•ื›ื—ื™ ื‘ืœื™ื‘ืช ื”ืžืขืจื›ืช - ื ืจืื” ืฉื–ื” ื“ื‘ืจ ื“ื™ ืืงื–ื•ื˜ื™, ืื‘ืœ ืœืคืขืžื™ื ื–ื” ืงื•ืจื”.

ื“ื•ื’ืžื” ืฉืœ ืงื˜ืข ืงื•ื“ ื‘ืฉืคื” ืœื•ื’ื™ืช ื”ืžืขื‘ื“ืช ื•ื™ืงื™ื“ืื˜ื”:

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื

ื—ื•ืžืจื™ื: ืื ื™ ืืชืŸ ื›ืืŸ ื›ืžื” ืงื™ืฉื•ืจื™ื ืœืฉืคืช ื”ืชื›ื ื•ืช ื”ืœื•ื’ื™ืช ื”ืžื•ื“ืจื ื™ืช ืชื›ื ื•ืช ืžืขืจื›ื™ ืชืฉื•ื‘ื•ืช - ืื ื™ ืžืžืœื™ืฅ ืœืœืžื•ื“ ืื•ืชื”:

ื”ืขืจื•ืช ืžื“ืขืŸ ื ืชื•ื ื™ื: ืกืงื™ืจื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืฉืœ ืฉืคื•ืช ืฉืื™ืœืชื•ืช ื ืชื•ื ื™ื

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”