ฉันกำลังบอกคุณจากประสบการณ์ส่วนตัวว่าอะไรมีประโยชน์ที่ไหนและเมื่อไหร่ เป็นภาพรวมและวิทยานิพนธ์เพื่อให้ชัดเจนว่าคุณสามารถเจาะลึกอะไรและที่ไหนได้บ้าง - แต่ที่นี่ฉันมีประสบการณ์ส่วนตัวโดยเฉพาะบางทีทุกอย่างอาจแตกต่างไปจากเดิมอย่างสิ้นเชิงสำหรับคุณ
เหตุใดการรู้และสามารถใช้ภาษาคิวรีจึงเป็นเรื่องสำคัญ โดยแก่นแท้แล้ว Data Science มีขั้นตอนการทำงานที่สำคัญหลายขั้นตอน และขั้นตอนแรกและสำคัญที่สุด (หากไม่มีขั้นตอนนี้ ก็จะไม่มีอะไรทำงานได้เลย!) คือการได้รับหรือดึงข้อมูล โดยส่วนใหญ่ ข้อมูลจะอยู่ที่ไหนสักแห่งในรูปแบบใดรูปแบบหนึ่ง และจำเป็นต้อง "ดึงข้อมูล" จากที่นั่น
ภาษาแบบสอบถามช่วยให้คุณสามารถดึงข้อมูลนี้ได้! และวันนี้ฉันจะบอกคุณเกี่ยวกับภาษาแบบสอบถามที่เป็นประโยชน์สำหรับฉันและฉันจะบอกคุณและแสดงให้คุณเห็นว่าที่ไหนและอย่างไร - เหตุใดจึงจำเป็นต้องศึกษา
จะมีประเภทการสืบค้นข้อมูลอยู่สามบล็อกหลัก ซึ่งเราจะกล่าวถึงในบทความนี้:
- ภาษาคิวรี "มาตรฐาน" คือสิ่งที่เข้าใจกันโดยทั่วไปเมื่อพูดถึงภาษาคิวรี เช่น พีชคณิตเชิงสัมพันธ์หรือ SQL
- ภาษาคิวรีการเขียนสคริปต์: ตัวอย่างเช่น Python เช่น pandas, numpy หรือการเขียนสคริปต์เชลล์
- ภาษาสืบค้นกราฟความรู้และฐานข้อมูลกราฟ
ทุกสิ่งที่เขียนที่นี่เป็นเพียงประสบการณ์ส่วนตัว สิ่งที่มีประโยชน์ พร้อมคำอธิบายสถานการณ์และ "เหตุใดจึงจำเป็น" - ทุกคนสามารถลองดูว่าสถานการณ์ที่คล้ายกันจะเกิดขึ้นกับคุณได้อย่างไร และพยายามเตรียมตัวรับล่วงหน้าด้วยการทำความเข้าใจภาษาเหล่านี้ ก่อนที่คุณจะต้องสมัคร(ด่วน)เข้าโครงการหรือแม้แต่เข้าโครงการที่ต้องการ
ภาษาคิวรี "มาตรฐาน"
ภาษาการสืบค้นมาตรฐานนั้นมีความหมายที่ชัดเจนว่าเรามักจะคิดถึงภาษาเหล่านี้เมื่อเราพูดถึงการสืบค้น
พีชคณิตเชิงสัมพันธ์
เหตุใดพีชคณิตเชิงสัมพันธ์จึงจำเป็นในปัจจุบัน เพื่อให้มีความเข้าใจที่ดีว่าเหตุใดภาษาคิวรีจึงมีโครงสร้างในลักษณะใดลักษณะหนึ่งและใช้งานอย่างมีสติ คุณจะต้องเข้าใจแกนกลางที่อยู่เบื้องหลังภาษาเหล่านั้น
พีชคณิตเชิงสัมพันธ์คืออะไร?
คำจำกัดความที่เป็นทางการมีดังนี้ พีชคณิตเชิงสัมพันธ์เป็นระบบปิดของการดำเนินการเกี่ยวกับความสัมพันธ์ในแบบจำลองข้อมูลเชิงสัมพันธ์ เพื่อให้ดูเป็นธรรมชาติมากขึ้นอีกหน่อย นี่คือระบบการดำเนินการบนโต๊ะซึ่งผลลัพธ์จะเป็นตารางเสมอ
ดูการดำเนินการเชิงสัมพันธ์ทั้งหมดได้ใน
ทำไม?
การเริ่มเข้าใจว่าภาษาคิวรีทั้งหมดเกี่ยวกับอะไรและการดำเนินการใดที่อยู่เบื้องหลังนิพจน์ในภาษาคิวรีเฉพาะมักจะให้ความเข้าใจที่ลึกซึ้งยิ่งขึ้นว่าอะไรทำงานในภาษาคิวรีและอย่างไร
เอามาจาก
วัสดุการศึกษา:
SQL
เอามาจาก
โดยพื้นฐานแล้ว SQL นั้นเป็นการนำพีชคณิตเชิงสัมพันธ์ไปใช้ - ด้วยข้อแม้ที่สำคัญ SQL จึงเป็นการประกาศ! นั่นคือ เมื่อเขียนแบบสอบถามในภาษาพีชคณิตเชิงสัมพันธ์ คุณพูดวิธีคำนวณจริงๆ แต่ด้วย SQL คุณจะระบุสิ่งที่คุณต้องการแยก จากนั้น DBMS จะสร้างนิพจน์ (มีประสิทธิภาพ) ในภาษาของพีชคณิตเชิงสัมพันธ์ ( ความเท่าเทียมกันของพวกเขาเป็นที่รู้จักสำหรับเราในชื่อ
เอามาจาก
ทำไม?
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 ใดบ้างที่เหมาะกับคำอธิบายนี้ จากนั้นจึงเริ่มศึกษาระบบนี้
การเขียนสคริปต์ภาษาแบบสอบถาม
ในตอนแรก ดูเหมือนว่า 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()
อ่านได้ที่ไหนและอย่างไร
บน Python โดยทั่วไปแล้ว
เชลล์เป็นภาษาแบบสอบถาม
โปรเจ็กต์การประมวลผลและการวิเคราะห์ข้อมูลจำนวนไม่น้อยที่ฉันร่วมงานด้วย อันที่จริงคือเชลล์สคริปต์ที่เรียกใช้โค้ดใน Python, Java และเชลล์สั่งการเอง ดังนั้น โดยทั่วไป คุณสามารถพิจารณาไปป์ไลน์ใน 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 - ให้แถบความคืบหน้าตามขนาดไฟล์และส่งต่อเนื้อหาต่อไป
- unpigz -c อ่านส่วนหนึ่งของไฟล์เก็บถาวรและมอบให้ jq
- jq ด้วยคีย์ - สตรีมสร้างผลลัพธ์ทันทีและส่งผ่านไปยังโปรเซสเซอร์หลัง (เช่นเดียวกับตัวอย่างแรก) ใน Python
- ภายใน postprocessor เป็นเครื่องสถานะธรรมดาที่จัดรูปแบบเอาต์พุต
โดยรวมแล้ว ไปป์ไลน์ที่ซับซ้อนที่ทำงานในโหมดโฟลว์บนข้อมูลขนาดใหญ่ (0.5TB) โดยไม่ต้องใช้ทรัพยากรจำนวนมาก และสร้างขึ้นจากไปป์ไลน์ธรรมดาและเครื่องมือสองสามอย่าง
เคล็ดลับสำคัญอีกประการหนึ่ง: สามารถทำงานได้ดีและมีประสิทธิภาพในเทอร์มินัลและเขียน bash/zsh/etc
มันจะมีประโยชน์ที่ไหน? ใช่ เกือบทุกที่ - ขอย้ำอีกครั้งว่ามีสื่อการเรียนรู้มากมายบนอินเทอร์เน็ต โดยเฉพาะที่นี่
การเขียนสคริปต์ R
ผู้อ่านอาจอุทานอีกครั้ง - นี่คือภาษาการเขียนโปรแกรมทั้งหมด! และแน่นอนว่าเขาจะพูดถูก อย่างไรก็ตาม ฉันมักจะพบ R ในบริบทที่จริงๆ แล้ว มันคล้ายกับภาษาคิวรีมาก
R คือสภาพแวดล้อมการประมวลผลทางสถิติและภาษาสำหรับการคำนวณและการแสดงภาพแบบคงที่ (ตาม
ถ่าย
ทำไม Data Scientist จึงต้องรู้ 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 เช่น dataframes และ data vectorization ดังนั้นโดยทั่วไปแล้ว สิ่งต่างๆ มากมายใน R ดูเหมือนจะคุ้นเคยและสะดวกสำหรับคุณ
มีแหล่งให้ศึกษามากมาย เช่น
กราฟความรู้
ที่นี่ฉันมีประสบการณ์ที่ผิดปกติเล็กน้อยเพราะฉันมักจะต้องทำงานกับกราฟความรู้และภาษาคิวรีสำหรับกราฟ ดังนั้น เรามาดูข้อมูลพื้นฐานคร่าวๆ กันก่อนดีกว่า เนื่องจากส่วนนี้จะแปลกใหม่กว่าเล็กน้อย
ในฐานข้อมูลเชิงสัมพันธ์แบบคลาสสิก เรามีสคีมาคงที่ แต่ในที่นี้ สคีมามีความยืดหยุ่น แต่ละเพรดิเคตจริงๆ แล้วเป็น “คอลัมน์” และอื่นๆ อีกมากมาย
ลองจินตนาการว่าคุณกำลังสร้างโมเดลบุคคลและต้องการอธิบายสิ่งสำคัญ เช่น ลองพิจารณาบุคคลใดบุคคลหนึ่งอย่าง Douglas Adams และใช้คำอธิบายนี้เป็นพื้นฐาน
หากเราใช้ฐานข้อมูลเชิงสัมพันธ์ เราจะต้องสร้างตารางขนาดใหญ่หรือตารางที่มีคอลัมน์จำนวนมาก ซึ่งส่วนใหญ่จะเป็น NULL หรือเติมด้วยค่าเท็จเริ่มต้นบางส่วน ตัวอย่างเช่น ไม่น่าเป็นไปได้ที่พวกเราหลายคนจะมี เข้าสู่หอสมุดแห่งชาติเกาหลี - แน่นอนว่าเราสามารถแยกพวกมันไว้ในตารางแยกกัน แต่ท้ายที่สุดแล้ว นี่จะเป็นความพยายามที่จะสร้างแบบจำลองวงจรลอจิคัลที่ยืดหยุ่นพร้อมเพรดิเคตโดยใช้วงจรเชิงสัมพันธ์แบบตายตัว
ลองจินตนาการว่าข้อมูลทั้งหมดถูกจัดเก็บในรูปแบบกราฟหรือเป็นนิพจน์บูลีนแบบไบนารีและเอกภาค
คุณจะเจอสิ่งนี้ได้ที่ไหน? ประการแรก การทำงานด้วย
ต่อไปนี้เป็นภาษาคิวรีหลักที่ฉันใช้และทำงานด้วย
สปาร์คิวแอล
วิกิพีเดีย:
สปาร์คิวแอล (คำย่อแบบเรียกซ้ำ จากเอ็ง โปรโตคอล 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 คือ วัตถุที่มี ID 33 (ที่นี่และเรื่องราวทั้งหมด โดยละเว้นรายละเอียดทุกประเภทอีกครั้ง)
ตัวอย่างการนำเสนอข้อมูล:
รูปภาพและตัวอย่างประเทศต่างๆ ที่นี่
ตัวอย่างแบบสอบถามพื้นฐาน
ที่จริงแล้ว เราต้องการค้นหาค่าของตัวแปร ?country เช่นนั้นสำหรับภาคแสดง
member_of เป็นความจริงที่ member_of(?country,q458) และ q458 เป็น ID ของสหภาพยุโรป
ตัวอย่างของแบบสอบถาม SPARQL จริงภายในเอ็นจิ้นหลาม:
โดยปกติแล้ว ฉันต้องอ่าน SPARQL แทนที่จะเขียน ในสถานการณ์นั้น น่าจะเป็นทักษะที่มีประโยชน์ในการทำความเข้าใจภาษาอย่างน้อยในระดับพื้นฐาน เพื่อให้เข้าใจว่าข้อมูลถูกดึงออกมาอย่างไร
มีสื่อการเรียนออนไลน์มากมาย เช่น ที่นี่
ภาษาคิวรีเชิงตรรกะ
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับหัวข้อนี้ได้ในบทความของฉัน
output(X) :- country(X), member_of(X,“EU”).
ที่นี่เรากำลังพูดถึงการสร้างภาคแสดงเอาต์พุตใหม่/1 (/1 หมายถึงเอกภาค) โดยมีเงื่อนไขว่าสำหรับ X มันเป็นความจริงที่ประเทศ(X) - นั่นคือ X คือประเทศและยัง member_of(X,"EU ")
นั่นคือในกรณีนี้ ทั้งข้อมูลและกฎจะถูกนำเสนอในลักษณะเดียวกัน ซึ่งทำให้เราสามารถจำลองปัญหาได้อย่างง่ายดายและดี
เจอกันในวงการไหนครับ?: โครงการขนาดใหญ่ทั้งหมดกับบริษัทที่เขียนคำสั่งในภาษาดังกล่าวตลอดจนโครงการปัจจุบันในแกนกลางของระบบ - ดูเหมือนว่านี่จะเป็นสิ่งที่ค่อนข้างแปลกใหม่ แต่บางครั้งก็เกิดขึ้น
ตัวอย่างของส่วนย่อยของโค้ดในภาษาตรรกะที่ประมวลผลข้อมูลวิกิ:
สื่อการสอน: ฉันจะให้ลิงก์สองสามรายการไปยังภาษาการเขียนโปรแกรมเชิงตรรกะสมัยใหม่ Answer Set Programming - ฉันแนะนำให้ศึกษามัน:
http://peace.eas.asu.edu/aaai12tutorial/asp-tutorial-aaai.pdf http://ceur-ws.org/Vol-1145/tutorial1.pdf https://www.youtube.com/watch?v=gVQ0bP8zyHw https://www.youtube.com/watch?v=kdcd7Je2glc https://potassco.org/book/ http://potassco.sourceforge.net/teaching.html https://www.cs.uni-potsdam.de/~torsten/Potassco/Tutorials/fmcad12.pdf
ที่มา: will.com