Po flas nga pĂ«rvoja ime personale, se ku dhe kur Ă«shtĂ« dashur. NjĂ« pĂ«rmbledhje dhe me theksime, pĂ«r ta bĂ«rĂ« tĂ« qartĂ« se çfarĂ« mund tĂ« shqyrtoni mĂ« tej â por kĂ«tu kam vetĂ«m pĂ«rvojĂ«n time subjektive, ndoshta ju do tĂ« keni diçka krejtĂ«sisht ndryshe.
Pse Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« dini dhe tĂ« jeni nĂ« gjendje tĂ« punoni me gjuhĂ«t e kĂ«rkesave? NĂ« thelb, nĂ« ShkencĂ«n e tĂ« DhĂ«nave ka disa etapa tĂ« rĂ«ndĂ«sishme nĂ« punĂ« dhe mĂ« e para dhe mĂ« e rĂ«ndĂ«sishmja (pa tĂ« nuk do tĂ« funksionojĂ« asgjĂ«!) Ă«shtĂ« mbledhja ose nxjerrja e tĂ« dhĂ«nave. Shpesh tĂ« dhĂ«nat ndodhen diku nĂ« njĂ« formĂ« dhe duhet ânxjerrĂ«â prej andej.Â
Gjuhet e kĂ«rkesave pikĂ«risht lejojnĂ« nxjerrjen e kĂ«tyre tĂ« dhĂ«nave! Dhe sot do tĂ« flas pĂ«r ato gjuhĂ« kĂ«rkimesh qĂ« mĂ« kanĂ« ndihmuar dhe do tĂ« tregoj se ku dhe si pikĂ«risht â pse Ă«shtĂ« e nevojshme tĂ« mĂ«sohet.
Do të ketë tre blloqe të krijuara dhe lloje kërkesash për të dhëna, të cilat do të shqyrtojmë në këtë artikel:
- Gjuha âstandardâ e kĂ«rkesave â ajo qĂ« zakonisht kuptohet kur flitet pĂ«r njĂ« gjuhĂ« kĂ«rkese, si p.sh., algebra relacional ose SQL.
- Gjuha skriptore e kërkesave: për shembull, gjuhët fantastike të Python-it si pandas, numpy ose skriptimi i shell-it.
- Gjuhet e kërkesave për grafët e njohurive dhe bazat e të dhënave grafike.
Ădo gjĂ« e shkruar kĂ«tu Ă«shtĂ« thjesht njĂ« eksperiencĂ« personale, ajo qĂ« ka qenĂ« e dobishme, me pĂ«rshkrimin e situatave dhe "pse ka qenĂ« e nevojshme" â secili mund ta provojĂ« se sa tĂ« ngjashme mund tĂ« ndodhin situata tĂ« tilla dhe tĂ« pĂ«rgatitet pĂ«r to mĂ« parĂ«, duke e kuptuar kĂ«to gjuhĂ« para se tĂ« duhet t'i pĂ«rdorĂ« ato (nĂ« mĂ«nyrĂ« urgjente) nĂ« njĂ« projekt ose madje tĂ« shkojĂ« nĂ« njĂ« projekt ku ato janĂ« tĂ« nevojshme.
Gjuhët standarde të pyetjeve
Gjuhët standarde të pyetjeve në atë kuptim, se zakonisht pikërisht për to mendojmë kur flasim për pyetje.
Algebra relacional
Pse na nevojitet sot algebra relacional? Për të pasur një përfaqësim të mirë të asaj që e ndihmon për të kuptuar pse gjuhët e pyetjeve janë të organizuara në një mënyrë të caktuar dhe është e nevojshme të kuptohet thelbi që është në bazë.
ĂfarĂ« Ă«shtĂ« algebra relacional?
Përkufizimi formal është: algebra relacional është një sistem i mbyllur operacionesh mbi marrëdhëniet në modelin relacional të të dhënave. Nëse e shikojmë më njerëzisht, është një sistem operacionesh mbi tabela, në mënyrë që rezultati gjithashtu të jetë gjithmonë një tabelë.
Shih tĂ« gjitha operacionet relacional nĂ« artikulli nga Habr â kĂ«tu ne pĂ«rshkruajmĂ« pse Ă«shtĂ« e nevojshme tĂ« dihet dhe ku pĂ«rdoret.
Pse?
KĂ«tu fillon tĂ« kuptosh se çfarĂ« pĂ«rbĂ«jnĂ« gjuhĂ«t e kĂ«rkimeve dhe cilat operacione qĂ«ndrojnĂ« pas shprehjeve tĂ« gjuhĂ«ve tĂ« caktuara tĂ« kĂ«rkimeve â zakonisht ofron njĂ« kuptim mĂ« tĂ« thellĂ« tĂ« asaj qĂ« ndodh dhe si funksionon nĂ« gjuhĂ«t e kĂ«rkimeve.

Marre nga artikulli. Shembulli i operacionit: join, i cili bashkon tabela.
Burime për studim:
. NĂ« pĂ«rgjithĂ«si, ka shumĂ« materiale mbi algebra relacional dhe teori â Coursera, Udacity. Ka gjithashtu njĂ« sasi tĂ« madhe materials nĂ« internet, pĂ«rfshirĂ« kurse tĂ« mira . KĂ«shilla ime personale: duhet ta kuptoni shumĂ« mirĂ« algebrĂ«n relacional â Ă«shtĂ« themeli i gjithçkaje.
SQL

Marre nga të artikullit.
SQL, nĂ« thelb, Ă«shtĂ« njĂ« implementim i algebrĂ«s relacional â me njĂ« rezervĂ« tĂ« rĂ«ndĂ«sishme, SQL Ă«shtĂ« deklarativ! KĂ«shtu, duke shkruar njĂ« kĂ«rkesĂ« nĂ« gjuhĂ«n e algebrĂ«s relacional, nĂ« fakt thoni se si duhet tĂ« llogaritet â ndĂ«rsa me SQL, ju pĂ«rcaktoni se çfarĂ« dĂ«shironi tĂ« nxirrni, dhe mĂ« pas DBMS gjeneron (efektiv) shprehje nĂ« gjuhĂ«n e algebrĂ«s relacional (ekvivalenca e tyre Ă«shtĂ« e njohur nga ).

Marre nga të artikullit.
Pse?
Baza të dhënash relationale: Oracle, Postgres, SQL Server, etj. janë ende gjerësisht të pranishëm dhe ka një mundësi të madhe që do t'ju duhet të lidheni me to, që do të thotë se do të duhet të lexoni SQL (gjithashtu shumë e mundshme) ose ta shkruani atë (po ashtu, jo e papritur).
ĂfarĂ« tĂ« lexoni dhe tĂ« mĂ«soni
Në të njëjtat lidhje të sipërpërmendura (për algebrën relacional), ka një sasi të jashtëzakonshme materiali, për shembull, .
Meqenëse, çfarë është NoSQL?
«WshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se termi âNoSQLâ ka njĂ« origjinĂ« krejtĂ«sisht spontane dhe nuk ka njĂ« definicion tĂ« njohur pĂ«r çdo institucion shkencor.» PĂ«rkatĂ«sisht nĂ« Habr.
NĂ« thelb, njerĂ«zit kuptonin se modeli i plotĂ« relational nuk Ă«shtĂ« i nevojshĂ«m pĂ«r tĂ« zgjidhur shumĂ« probleme, sidomos pĂ«r ata ku, pĂ«r shembull, performanca Ă«shtĂ« vendimtare dhe disa kĂ«rkesa tĂ« thjeshta me agregim dominon â aty Ă«shtĂ« kritike tĂ« llogaritĂ«sh shpejt metrikat dhe t'i shkruash ato nĂ« bazĂ«, ndĂ«rsa shumica e karakteristikave relacional dukeshin jo vetĂ«m tĂ« padobishme, por edhe dĂ«mshme â pĂ«rse tĂ« normalizosh diçka, kur kjo do tĂ« prishĂ« atĂ« qĂ« Ă«shtĂ« mĂ« e rĂ«ndĂ«sishme pĂ«r ne (pĂ«r njĂ« detyrĂ« tĂ« caktuar) â performancĂ«n?
Gjithashtu shpesh janĂ« tĂ« nevojshme skemat fleksibile nĂ« vend tĂ« skemave matematikore fikse tĂ« modelit tradicional relacional â dhe kjo e thjeshton dukshĂ«m zhvillimin e aplikacioneve, kur Ă«shtĂ« kritike tĂ« pĂ«rhapim sistemin dhe tĂ« fillojmĂ« tĂ« punojmĂ« shpejt, duke procesuar rezultatet â ose skema dhe llojet e tĂ« dhĂ«nave tĂ« ruajtur nuk janĂ« aq tĂ« rĂ«ndĂ«sishme.
PĂ«r shembull, ne po krijojmĂ« njĂ« sistem ekspert dhe duam tĂ« ruajmĂ« informacionin mbi njĂ« domen tĂ« caktuar sĂ« bashku me disa meta-informacione â mund tĂ« mos e dimĂ« tĂ« gjitha fushat dhe thjesht tĂ« ruajmĂ« JSON pĂ«r çdo regjistĂ«r â kjo na jep njĂ« ambient shumĂ« fleksibĂ«l pĂ«r shtrirjen e modelit tĂ« tĂ« dhĂ«nave dhe iterimin e shpejtĂ« â prandaj nĂ« kĂ«tĂ« rast, NoSQL do tĂ« ishte madje mĂ« e preferueshme dhe lexueshme. NjĂ« shembull regjistri (nga njĂ« nga projektet e mia, ku NoSQL ishte pikĂ«risht aty ku ishte e nevojshme).
{"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}
Mund të lexoni më shumë për NoSQL.
ĂfarĂ« tĂ« studiojmĂ«?
KĂ«tu Ă«shtĂ« mĂ« mirĂ« tĂ« analizoni mirĂ« detyrĂ«n tuaj, cilat janĂ« veçoritĂ« e saj dhe cilat sisteme NoSQL i pĂ«rshtaten kĂ«tij pĂ«rshkrimi â dhe pastaj tĂ« filloni tĂ« studioni kĂ«tĂ« sistem.
Gjuha e skriptimit për kërkesa
SĂ« pari, duket se çfarĂ« ka tĂ« bĂ«jĂ« Python â Ă«shtĂ« njĂ« gjuhĂ« programuese, dhe nuk ka tĂ« bĂ«jĂ« fare me kĂ«rkesat.

- Pandas është si një thikë shumë funksionale për Shkencën e Të Dhënave, shumë transformime të dhënash, agregime etj. ndodhin në të.
- Numpy â llogaritje vektoriale, matrica dhe algebra lineare aty.
- Scipy â shumĂ« matematikĂ« nĂ« kĂ«tĂ« paketĂ«, veçanĂ«risht statistikat.
- Jupyter lab â shumĂ« analiza eksploruese tĂ« tĂ« dhĂ«nave qĂ« funksionojnĂ« mirĂ« nĂ« notebook â Ă«shtĂ« e dobishme tĂ« dish.
- Requests â punĂ« me rrjetin.
- Pyspark â shumĂ« popullor mes inxhinierĂ«ve tĂ« tĂ« dhĂ«nave, me siguri do t'ju duhet tĂ« ndĂ«rveproni me kĂ«tĂ« ose me Spark, thjesht pĂ«r shkak tĂ« popullaritetit tĂ« tyre.
- *Selenium â shumĂ« i dobishĂ«m pĂ«r mbledhjen e tĂ« dhĂ«nave nga faqet dhe burimet, ndonjĂ«herĂ« thjesht nuk mund tĂ« merrni tĂ« dhĂ«na ndryshe.
Këshilli im kryesor: mësoni Python!
Pandas
Le të marrim si shembull kodin e mëposhtëm:
import pandas as pd
df = pd.read_csv(âdata/dataset.csvâ)
# Llogaritni dhe rinovoni agregimet
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'}))NĂ« thelb, ne shohim se kodi i pĂ«rshtatet njĂ« modeli klasik 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_namePor pjesa e rĂ«ndĂ«sishme â ky kod Ă«shtĂ« pjesĂ« e skriptit dhe pipeline-it, nĂ« tĂ« vĂ«rtetĂ« ne e integrojmĂ« kĂ«rkesat nĂ« pipeline-in e Python-it. NĂ« kĂ«tĂ« situatĂ«, gjuha e kĂ«rkesave na vjen nga libraritĂ«, siç janĂ« Pandas ose pySpark.
Në përgjithësi në pySpark ne shohim një lloj të ngjashëm transformimi të të dhënave përmes gjuhës së kërkesave në shpirtin e:
df.filter(df.trip_type = âreturnâ)
.groupby(âdayâ)
.agg({duration: 'mean'})
.sort()Ku dhe çfarë të lexojmë
PĂ«r Pythonin nĂ« pĂ«rgjithĂ«si tĂ« gjejmĂ« materiale pĂ«r studim. NĂ« rrjet ka njĂ« sasi tĂ« madhe tutorialesh pĂ«r , dhe kurse pĂ«r (si dhe pĂ«r vetĂ« ). NĂ« pĂ«rgjithĂ«si, materialet kĂ«tu gjenden lehtĂ«sisht nĂ« Google dhe nĂ«se do tĂ« duhet tĂ« zgjidhja njĂ« paketĂ«, nĂ« tĂ« cilĂ«n do tĂ« pĂ«rqendrohesha â kjo do tĂ« ishte pandas, sigurisht. PĂ«r lidhjen DS+Python ka shumĂ« materiale gjithashtu. .
Shell si gjuhë e kërkesës
Ka shumĂ« projekte pĂ«r pĂ«rpunimin dhe analizimin e tĂ« dhĂ«nave me tĂ« cilat kam punuar â kĂ«to janĂ«, nĂ« thelb, skripte shell qĂ« thĂ«rrasin kodin nĂ« Python, Java dhe vetĂ« komandat shell. Prandaj, nĂ« pĂ«rgjithĂ«si, mund tĂ« merren parasysh pipeline-t nĂ« bash/zsh/etc si njĂ« kĂ«rkesĂ« tĂ« nivelit tĂ« lartĂ« (sigurisht, mund tĂ« shtohen dhe cikle, por kjo nuk Ă«shtĂ« tipike pĂ«r kodin DS nĂ« gjuhĂ«t shell), le tĂ« sjellim njĂ« shembull tĂ« thjeshtĂ« â mĂ« duheshte tĂ« krijoja njĂ« mapim tĂ« QID nga Wikidata dhe lidhjen e plotĂ« pĂ«r Wikipedi nĂ« rusisht dhe anglisht, pĂ«r kĂ«tĂ« shkrova njĂ« kĂ«rkesĂ« tĂ« thjeshtĂ« nga komandat nĂ« bash dhe pĂ«r tĂ« shpallur shkrova njĂ« skript tĂ« thjeshtĂ« nĂ« Python, qĂ« i bashkova kĂ«shtu:
pv âdata/latest-all.json.gzâ |
unpigz -c |
jq --stream $JQ_QUERY |
python3 scripts/post_process.py "output.csv"
ku
JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2]=="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' Ky ishte, në thelb, i gjithë pipeline-i që krijonte mapimin e nevojshëm; siç e shohim, gjithçka funksiononte në modin e rrjedhës:
- pv filepath â ofron progresi bazuar nĂ« madhĂ«sinĂ« e skedarit dhe e kalon atĂ« mĂ« tej
- unpigz -c lexonte një pjesë të arkivit dhe ia jepte jq
- jq me çelĂ«sin â stream menjĂ«herĂ« jepte rezultatin dhe e kalonte atĂ« te postproçesori (ashtu si me shembullin e parĂ«) nĂ« python
- brenda postproçesorit â Ă«shtĂ« njĂ« makinĂ« e thjeshtĂ« e shteteve, e cila formatizonte daljenÂ
Në përfundim, një pipeline i ndërlikuar që punon në mënyrë streaming me të dhëna të mëdha (0.5TB), pa burime të konsiderueshme dhe i përbërë nga një pipeline të thjeshtë dhe disa mjete.
Një këshillë e rëndësishme: duhet të dini të punoni mirë dhe efektivisht në terminal dhe të shkruani në bash/zsh/etc.
Ku do tĂ« ndihmojĂ«? Po pothuajse kudo â materiale pĂ«r studim pĂ«rsĂ«ri ka SHUMĂ nĂ« rrjet. Sidomos, ja artikulli im i mĂ«parshĂ«m.
R scripting
PĂ«rsĂ«ri, lexuesi mund tĂ« thotĂ« â por ky Ă«shtĂ« njĂ« gjuhĂ« e tĂ«rĂ« programimi! Dhe sigurisht qĂ« do tĂ« ketĂ« tĂ« drejtĂ«. MegjithatĂ«, zakonisht mĂ« Ă«shtĂ« dashur tĂ« pĂ«rballesh me R gjithmonĂ« nĂ« njĂ« kontekst tĂ« tillĂ«, qĂ« nĂ« thelb ishte shumĂ« e ngjashme me njĂ« gjuhĂ« kĂ«rkese.
R është një mjedis për llogaritjet statistikore dhe gjuhë për llogaritjet statistikore dhe vizualizimin (sipas ).

Marrë . Për këtë, e rekomandoj, është një material i mirë.
Pse duhet një data scientist të dijë R? Të paktën, sepse ekziston një numër i madh njerëzish jashtë IT-së që merren me analizën e të dhënave në R. Kam hasur në këto vende:
- Sektori farmaceutik.
- Biologët.
- Sektori financiar.
- Njerëz të arsimuar vetëm në matematikë që merret me statistikat.
- Modele statistikore të specializuara dhe modele të mësimit të makinerisë (të cilat shpesh gjenden vetëm në versionin autorit si paketë R).
Pse kjo Ă«shtĂ« nĂ« fakt njĂ« gjuhĂ« kĂ«rkese? NĂ« formĂ«n nĂ« tĂ« cilĂ«n shpesh paraqitet â kjo nĂ« tĂ« vĂ«rtetĂ« Ă«shtĂ« njĂ« kĂ«rkesĂ« pĂ«r krijimin e njĂ« modeli, duke pĂ«rfshirĂ« leximin e tĂ« dhĂ«nave dhe rregullimin e parametrave tĂ« kĂ«rkesĂ«s (modeleve), si dhe vizualizimin e tĂ« dhĂ«nave nĂ« paketa si ggplot2 â kjo Ă«shtĂ« gjithashtu njĂ« formĂ« e shkruar e kĂ«rkesave.
Shembuj kërkesash për vizualizim
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))NĂ« pĂ«rgjithĂ«si, shumĂ« ide nga R kanĂ« kaluar nĂ« paketat python, si pandas, numpy ose scipy, si dataframe dhe vektorizimi i tĂ« dhĂ«nave â prandaj shumĂ« gjĂ«ra nĂ« R do t'ju duken tĂ« njohura dhe tĂ« pĂ«rshtatshme.
Burime për të mësuar ka shumë, për shembull, .
Grafikët e njohurive (Knowledge graph)
Këtu kam një përvojë të pakët të zakonshme, sepse më shpesh më pengon të punoj me grafet e njohurisë dhe gjuhët e kërkesave ndaj grafëve. Prandaj, le të kalojmë shpejt mbi bazat, pasi kjo pjesë është pak më ekzotike.
NĂ« bazat klasike relacional, kemi njĂ« skemĂ« tĂ« rregullt â kĂ«tu skema Ă«shtĂ« fleksibile, çdo predikat Ă«shtĂ« nĂ« thelb njĂ« âkolonĂ«â dhe madje mĂ« shumĂ«.
Imagjinoni se do të modelonit një person dhe do të donit të përshkruani gjëra kyçe; për shembull, le të marrim një person konkret, Douglas Adams, dhe do të bazohemi në këtë përshkrim.

NĂ«se do tĂ« kishim pĂ«rdorur njĂ« bazĂ« relacional, do tĂ« kishim duhur tĂ« krijonim njĂ« tabelĂ« tĂ« madhe ose tabela tĂ« mĂ«dha me njĂ« numĂ«r tĂ« madh kolonash, shumica prej tĂ« cilave do tĂ« ishin NULL ose tĂ« mbushura me ndonjĂ« vlerĂ« tĂ« defoltit False, pĂ«r shembull, nĂ« dyshim se shumĂ« prej nesh kanĂ« njĂ« regjistĂ«r nĂ« bibliotekĂ«n kombĂ«tare koreane â sigurisht, mund tĂ« kishim separuar ato nĂ« tabela tĂ« veçanta, por kjo nĂ« fund do tĂ« ishte pĂ«rpjekje pĂ«r tĂ« modeluar njĂ« skemĂ« logjike fleksibile me predikate, duke pĂ«rdorur njĂ« relacional tĂ« rregullt.

Prandaj imagjinoni se të gjitha të dhënat ruhen si një grafo apo si shprehje logjike binare dhe uniare.
Ku mund ta hasni këtë? Së pari, duke punuar me , për të mirën e çdo baze të dhënash grafi ose të dhënash të lidhura.
Më poshtë janë gjuhët kryesore të kërkimeve që kam qenë e detyruar të aplikoj dhe me të cilat kam punuar.
SPARQL
Wiki:
SPARQL ( nga SPARQL Protocol and RDF Query Language) â , tĂ« paraqitura sipas modelit , dhe gjithashtu pĂ«r tĂ« transmetuar kĂ«to kĂ«rkesa dhe pĂ«rgjigje mbi to. SPARQL Ă«shtĂ« njĂ« rekomandim i dhe njĂ« nga teknologjitĂ« .
Në të vërtetë, kjo është një gjuhë kërkimesh për predikate logjike uniare dhe binare. Thjesht tregohet se çfarë është e fiksuar në shprehjen logjike dhe çfarë nuk është (shumë thjesht).
Baza e vetĂ« RDF (Resource Description Framework), mbi tĂ« cilĂ«n kryhen kĂ«rkesat SPARQL â Ă«shtĂ« njĂ« trio objekt, predikate, subjekt. â dhe kĂ«rkesa zgjedh trejat e nevojshme sipas kufizimeve tĂ« caktuara, si: gjej njĂ« X, tĂ« tillĂ« qĂ« p_55(X, q_33) Ă«shtĂ« e vĂ«rtetĂ« â ku, sigurisht, p_55 Ă«shtĂ« njĂ« marrĂ«dhĂ«nie me ID 55, dhe q_33 Ă«shtĂ« njĂ« objekt me ID 33 (kjo Ă«shtĂ« e gjithĂ« historia, duke lĂ«nĂ« mĂ«njanĂ« detaje tĂ« ndryshme).
Shembulli i prezantimit të të dhënave:

Imazhe dhe shembuj me vende këtu .
Shembulli i kërkesës bazë

Në fakt, ne duam të gjejmë vlerën e ndryshores ?country, të tillë që për predikatin
member_of, është e vërtetë që member_of(?country,q458), ndërsa q458 është ID e Bashkimit Evropian.
Shembulli i një kërkese SPARQL të vërtetë brenda motorit python:

NĂ« pĂ«rgjithĂ«si, mĂ« ka ndodhur tĂ« lexoj SPARQL, e jo ta shkruaj â nĂ« njĂ« situatĂ« tĂ« tillĂ«, me siguri do tĂ« ishte njĂ« aftĂ«si e dobishme tĂ« kuptosh gjuhĂ«n, tĂ« paktĂ«n nĂ« njĂ« nivel bazik, pĂ«r tĂ« kuptuar si janĂ« nxjerrĂ« tĂ« dhĂ«nat.Â
Ka shumë materiale online për të mësuar: për shembull, këtu dhe . Unë zakonisht kërkoj në Google për struktura dhe shembuj specifikë dhe deri tani mjafton.
Gjuhët logjike të kërkesave
Më shumë rreth temës mund të lexoni në artikullin tim . Në këtë pjesë, ne do të përmendim shkurtimisht pse gjuhët logjike janë të përshtatshme për shkrimin e kërkesave. Në thelb, RDF është thjesht një koleksion i deklaratave logjike si p(X) dhe h(X,Y), ndërsa kërkesa logjike ka këtë formë:
output(X) :- country(X), member_of(X,"EU").
KĂ«tu po flasim pĂ«r krijimin e njĂ« predikati tĂ« ri output/1 (/1 do tĂ« thotĂ« njĂ«anshĂ«m), me kushte qĂ« pĂ«r X Ă«shtĂ« e vĂ«rtetĂ« qĂ« country(X) â dmth, X Ă«shtĂ« njĂ« vend dhe gjithashtu member_of(X,"EU").
Pra, në këtë rast, të dhënat dhe rregullat janë të paraqitura në të njëjtën mënyrë, çka lejon modelimin e lehtë dhe efikas të detyrave.
Ku janĂ« takuar nĂ« industri: njĂ« projekt i madh me njĂ« kompani qĂ« shkruan kĂ«rkesa nĂ« atĂ« gjuhĂ«, si dhe nĂ« projektin aktual nĂ« bĂ«rthamĂ«n e sistemit â duket se Ă«shtĂ« diçka shumĂ« ekzotike, megjithatĂ« ndonjĂ«herĂ« ndodh.
Një shembull i një fragmendi kodi në gjuhën logjike që përpunon wikidata:

Burimet: do tĂ« pĂ«rmend disa lidhje pĂ«r gjuhĂ«n moderne tĂ« programimit tĂ« logjikĂ«s Answer Set Programming â rekomandoj tĂ« studiohet pikĂ«risht ajo:
Burimi: habr.com
