ภาษาของวันเวลา $now expression
ถ้าเราสามารถทำให้คอมพิวเตอร์สามารถเข้าใจวลี ที่เกี่ยวกับ วันเวลา ที่เป็นภาษาธรรมชาติของเรา เช่น วันนี้, เดือนนี้
เราจะเอาไปใช้ทำอะไร …
User interface
เมื่อเอาไปใช้กับ User Interface ช่วยให้เราสามารถใช้ input box ธรรมดา ได้โดยง่าย โดยไม่จำเป็นต้องใช้ widget อื่น
Database query
เราสามารถนำไปใช้กับ database query สำหรับข้อมูลวันที่ เพื่อสร้างเป็นค่าช่วงวันที่ ณ เวลาที่ร้องขอข้อมูล ซึ่งเป็นค่าวันที่ที่อ้างอิงกับวันที่ปัจจุบัน โดยใช้ query string ที่เป็น $now expression แทนที่จะเป็น absolute value
Date calculation
ประยุกต์ใช้คำนวณวันที่ เมื่อเลือกให้อ้างอิงกับ วันที่อื่น แทนที่จะเป็นวันที่วันนี้
เช่น เครดิต 30 วัน
, อายุสัญญา 12 เดือน
เราสามารถใช้ $now expression คำนวณ หาวันที่ครบกำหนด ได้เช่นกัน
ตัวอย่าง expression
ตัวเลขโดดๆ
5
→ วันที่ 5 ที่ผ่านมา
วันที่/เดือน อย่างย่อ
1/12
→ วันที่ 1 เดือน 12 ที่ผ่านมา1–30/4
→ งวดวันที่ 1 ถึง 30 เดือน 4 ที่ผ่านมา
เดือน/ปี อย่างย่อ
4/60
→ งวดวันที่ 1 ถึง 30 เดือน 4 ปี 2560 (2017)4/17
→ เหมือนข้างบน ปีเป็น ค.ศ.4/2560
4/2017
เลขปี
2559
2016
ข้อความต่างๆ
มีมากมายหลากหลาย ตั้งแต่ ข้อความที่ชัดเจน เช่น
today
วันนี้
yesterday
วานนี้
เมื่อวานนี้
วันก่อน
monday
วันจันทร์
this month
เดือนนี้
last month
เดือนที่แล้ว
this year
ปีนี้
this quarter
ไตรมาสนี้
this week
สัปดาห์นี้
end of last month
สิ้นเดือนที่แล้ว
begin of this year
ต้นปีนี้
ข้อความที่ระบุ จำนวนงวดไปด้วย
7 days
7 วัน
→ งวด 7 วันนับจากวันนี้
last 7 days
next 7 days
compound expression
from begin of this year
til end of last month
ตั้งแต่ ต้นปีนี้
ถึง สิ้นเดือนก่อน
1/1
—
30/4
แนวทางในอนาคต
กำหนดมาตรฐานของ expression
การพัฒนา $now expression นี้ เป็นงานที่ developer คนไทย ต้องทำเอง เพราะเกี่ยวข้องกับภาษาไทยโดยตรง ประเทศไทยเป็นหนึ่งในไม่กี่ประเทศ ที่ใช้ระบบปี 2 ระบบแบบเป็นธรรมชาติ คนไทยส่วนใหญ่สามารถเข้าใจ ปี 2016 และ ปี 2559 ได้โดยไม่สับสน
ภาษาธรรมชาติของไทย ที่เกี่ยวข้องกับวันเวลามีมากมาย การร่างมาตรฐาน input และ output ของ expression เพื่อใช้เป็นแนวทาง และ spec สำหรับการพัฒนาเพื่อใช้งาน $now expression ในวงกว้าง
ข้อความบางข้อความ อาจขึ้นอยู่กับเวลาขณะนั้น
- ยอดขาย
1 เดือน
ถ้าวันนี้เป็นวันที่ 15
หมายถึงยอดขาย นับจากวันที่ 15 ของเดือนที่แล้ว จนถึง วันนี้
หรือหมายถึง ยอดขาย นับจากต้นเดือน จนถึงวันนี้ (logic นี้ใช้ไม่ได้ถ้าวันนี้เป็นวันที่ 1)
หรือหมายถึง ยอดขาย เต็มเดือน ของเดือนที่ผ่านมา (logic นี้ใช้ไม่ได้ถ้าวันนี้เป็นวันสิ้นเดือน)
ข้อความบางข้อความ ขึ้นอยู่กับบริบทการนำไปใช้
- ยอดขาย
1 เดือน
→ หมายถึง 1 เดือนที่ผ่านมา - ยอดหนี้ที่ครบกำหนดภายใน
1 เดือน
→ หมายถึง 1 เดือนในอนาคต
จากตัวอย่างข้างต้น เห็นว่า การพิจารณาเฉพาะ phase ส่วนที่เป็น $now expression ในบางบริบท อาจได้คำตอบที่ไม่ตรงกับเจตนา
ความละเอียดในระดับ ช่วงเวลาของวัน
เมื่อเริ่มมีการนำ $now expression ไปช่วยในการสอบถามข้อมูลแบบ real time อย่าง ใน chat bot เราพบตัวอย่าง คำถามจาก user ในระดับช่วงเวลาที่ละเอียดในระดับเวลาของวัน หรือ ระดับ ชม. หรือ นาที
- ยอดขาย
ครึ่งวันเช้า
— — — — — — — — — — — — — — — — — — — — — — — — — — —
Sathit Jittanupat 2017-04-30