計算機是我們重要的工作助手,但是現在我們和計算機之間缺少一種合適的會話語言。
hiwii語言是介於計算機語言和自然語言直接的一種語言。他以計算機語言形式為基礎,目標是實現自然語言的功能。
hiwii語言將建立人與計算機會話標準,不僅是人與計算機之間,而且計算機與計算機間、人與人的會話和通訊標準。
hiwii語言建立在人和計算機的新視角之上,hiwii語言認為人和計算機都是信息處理的個體。雖然信息處理方法、處理能力不同,但是人和計算機具有相同的本質。
基本介紹
- 中文名:海微語言
- 外文名:hiwii language
- 運行環境:計算機
- 類型:計算機語言
有一些程式能夠實現簡單的人機互動,比如蘋果siri等,但是這種互動太簡單了,只能完成非常有限的功能,距離我們的要求還有很遠。我們的要求是能夠完整的全面執行我們的指令,而不是偶爾能夠辨識出來的有限的指令。
我們希望通過語言互動,使用所有計算機所能夠提供的全部功能。圖形界面雖然有很友好的界面,使不懂計算機的人能夠很快學會使用計算機,但是圖形界面永遠不可能完全代替語言。
語言互動也不是為了完全取代圖形互動,恰恰相反,有了互動式的語言將會有更好的圖形界面。計算機的圖形互動界面也是計算機指令執行的結果,是程式設計師編程的結果。有了合適的語言和語法,用戶完全可以自己定義喜歡的圖形界面。
人和計算機之間存在語言的互動,但是普通的計算機用戶並沒有這種許可權,程式設計師壟斷了這種互動。
互動是語言的基本功能,但即使是程式設計師,也並不總是通過互動的方式完成編程。
計算機語言的目的都是生成程式。而生成程式的整個過程中,程式設計師並不是和計算機在互動,即你一言,我一語。程式設計師通常是一次寫好所有的代碼,然後編譯並執行的。大部分時間裡,程式設計師是在孤獨的寫作和閱讀。
我們能否使用當前的計算機語言作為計算機互動語言呢?答案是否定的。
當前幾乎所有計算機語言都是為了生成邏輯程式而設計的,程式的目的只是完成記憶體管理、邏輯判斷、運算等功能,記憶存儲往往是由資料庫語言完成,而資料庫語言又缺乏邏輯處理功能。
自然語言是和計算機語言完全不同的一類語言,比如英語、漢語等。自然語言中,人們通常把語言分為祈使句、疑問句和陳述句。語法專家們認為語句分四種,第四種語句是感嘆句。但是感嘆句一般用於表達某些情感。讓我們簡單一些,暫不考慮感情問題。另一方面,即使從語法角度分析,感嘆句也是一個特殊的陳述句。其陳述的內容包括兩個方面:語句表面的意思和傳達的情感。
幾乎所有的計算機語言都忽視了語言的陳述句和疑問句功能,只關注於祈使句的完成。資料庫語言有陳述句和疑問句的功能,但又沒有祈使句的功能。而且,我們不能想像,我們和計算機的互動是通過多種語言完成的。
從語言的三種功能來看,沒有一種計算機語言是能夠完全符合自然語言的功能要求的。
我們能否使用自然語言作為人機互動語言呢?
在很多幻想影片中,人和計算機通過自然語言進行互動。但是在當前情況下,自然語言有很多限制還不能作為人機互動語言。
自然語言語法複雜,無法通過簡單語法分析獲得主語和謂語等語法要素,因此也造成了自然容易產生歧義的缺點。
我們現在使用的書面語言來自於口語,書面語言易於閱讀的原因有一方面是因為我們的書面語言引入了標點符號和換行,使我們能夠很快的區分出語句和段落。但是我們還可以做得更好,我們應該引入符號來區分主語和謂語。
所有的語言,無論是自然語言還是計算機語言,無論是二進制機器語言還是高級計算機語言,他們都具有主語和謂語。自然語言通過辭彙的含義分析來區別名詞和動詞,進而區別出主語和謂語,以及賓語、狀語等。但是計算機語言需要能夠首先區分出主語和謂語,然後才能解析執行。
無論是自然語言還是計算機語言,他們都必須具備語言的三種基本功能,這就是祈使句、疑問句和陳述句。
無論英語、漢語或其它語言,人們通常把語言分為祈使句、疑問句和陳述句。語法專家們認為語句分四種,第四種語句是感嘆句。但是感嘆句一般用於表達某些情感。我們主要分析機器智慧型和人工智慧的共同點,人類自己的情感問題還未完全解決,同時機器的智慧型問題也未完全解決,更不要提機器的情感問題,讓我們簡單一些,暫不考慮感情問題。另一方面,即使從語法角度分析,感嘆句也是一個特殊的陳述句。其陳述的內容包括兩個方面:語句表面的意思和傳達的情感。
當前幾乎所有的計算機語言都只是完成了祈使句的功能,並沒有完成疑問句和陳述句的功能。特別是陳述句,人類的文明幾乎都是以陳述句形式傳承的,而大部分的計算機語言從來沒有想過如何實現陳述句。
少數的計算機語言具有陳述句和疑問句的一些特徵。比如,數據查詢語言具備簡單的疑問句和陳述句特徵。但是數據查詢語言的會話對象只限于格式資料庫,使用者幾乎都是專業的資料庫程式設計師。而數據查詢語言在具備了疑問句和陳述句特徵後,又喪失了祈使句的功能。因此資料庫查詢語言必須配合其它計算機語言才能在一個完整的程式中使用。
我們需要一種全新的語言。這種語言必需要具備自然語言的三種基本功能,語法必須容易解析,能夠不通過語義分析就直接解析出主語、謂語等語法內容。
hiwii語言就是這樣的背景下產生的。hiwii是我給自己的語言和系統起的名字,中文名是海微。
hiwii語言不同於任何一種計算機語言,他不是為了生成一段程式,他是一種會話語言。通過hiwii語言,我們可以直接傳遞指令給計算機,而不必通過圖形互動界面。
hiwii語言不是自然語言,但能夠表達自然語言能夠表達一切。
1.1. 語言是什麼
語言是信息的一種重要表示形式,而從結果上看,信息與運動具有相同的本質。
物體的運動在這裡不僅指物體位置的變化,物體任何狀態的變化都是運動的一種形式。比如變色龍的身體從一種顏色變換到另一種顏色就是一種運動。
運動無處不在,一個物體的運動會影響到另外一個物體的運動,形成運動在物體間的傳導。
運動的傳導有時是接觸的,比如我們踢足球,腳的運動傳導到足球,引起足球的運動,足球就會飛出去。運動的傳導也可以是非接觸的。比如萬有引力,兩個相隔萬里的星球通過萬有引力相互影響,我們的地球在太陽的引力下圍繞太陽進行自傳。
信息是運動的一種形式。與運動的傳導類似,信息的傳遞表現出的也是運動的傳導。信息的傳送方做出傳送信息的動作,信息的接收方根據信息內容做出相應的動作。比如:軍官發出指令,士兵根據軍官的指令完成指定的動作。
信息傳遞的信息傳送方,其目的就是希望信息接收方按照信息內容做出期望的動作。信息的傳導在形式上與運動的傳導類似,我們可以認為,信息作為運動傳導的一種形式,其本質就是運動的傳導。
信息的傳遞和運動的傳導具有相同的本質,也有明顯的不同。運動傳導的結果是根據物理規律,而信息傳遞的結果依賴信息傳送方和接收方的約定,最終信息接收方的動作是依據接收方對信息的理解。有些信息,不同的人有相同的理解,而有些信息不同人的理解各不相同。軍隊中,軍官訓練士兵,可以使士兵步伐一致,這是軍官和士兵對步伐指令理解的一致。也有一些情況,不同的信息接收方對指令的理解不同的情況,比如跳舞,同樣的舞曲,舞池中卻找不到動作完全相同的兩個人,也就是說,每個人對舞曲指令的理解不同,導致各人的舞蹈動作不同。物體的運動是所有物體遵從客觀物理規律的體現,而信息的傳遞過程中,不同的信息接收者對相同的信息可以有完全不同的回響動作。
運動的傳導就是因果關係的體現,信息構成了因果關係的最重要一環。
愛因斯坦相對論指出,任何物體的運動速度或能量信息的傳播速度不能超過光速。從愛因斯坦的結論中可以看到,信息和運動在某些方面具有相同的屬性。
語言是信息最重要的形式之一。語言的傳遞是一種信息傳遞,一個人完成說話的動作,然後另外一個人根據說話的內容做出對應的動作。比如電視上經常看到的軍隊訓練,教官喊出“立正”或者“稍息”,士兵們做出相應的動作。
信息的傳遞可以是單向的,也可以是雙向的。比如談話就是一種雙向的信息互動。
1.2. 重新認識計算機
當我們確定了語言的本質是運動,我們需要重新認識計算機。
傳統的觀點認為計算機是一個執行程式的機器,我們輸入執行指令或者一段程式,計算機執行,然後我們從紙帶或螢幕讀取到執行結果。
從語言互動的角度,計算機和人其實沒有本質的區別。人類和計算機都一樣的接收語言信息,執行請求,最後傳送信息。
人類和計算機使用的語句也都是祈使句、疑問句和陳述句。祈使句方面,計算機和人做出的動作區別較大,計算機的動作往往是螢幕顯示、驅動印表機等,而人類的動作卻是走、跑等。疑問句和陳述句方面,計算機和人沒有本質的區別,只是當前計算機的邏輯處理能力還較弱。隨著人工智慧的發展,當語言的內容只包括陳述句和疑問句,計算機將會和人類一樣。如果不看談話對象,我們將無法區分人類和計算機。
從功能上講,計算機和人一樣具有信息的傳送和接收部件。
鍵盤和人類的耳朵一樣,實際是一個語言接收的部件,二者都是把驅動權交給了信息傳送方,然後通過感知信息接收器官的變化,信息接收方完成信息的接收動作。二者完成的機理有所不同,聲音驅動耳朵,通過耳朵內精巧的聽覺機構,人類完成聲音信息的接收。鍵盤雖然不能完成這么複雜的信息接收,但是二者的工作原理都是基於物理接觸的方式。
計算機的信息傳送部件較簡單,聲音、圖像是基本的信息傳送方法。和人類相比,計算機的信息傳送部件起到了相同的功能。在信息傳送過程中,人的手有時充當了信息傳送部件,比如在鍵盤信息錄入中。
在電影《黑客帝國》中,人們獲得知識不是通過語言互動,而是和計算機一樣,通過在腦後的一個插口輸入程式。那些奇妙的程式可以發揮不可思議的作用,輸入武術的程式,那么我們就會成為武林高手,輸入音樂的程式,那么我們就是音樂家。
大部分情況下,我們只需要通過語言就可以獲得知識。我們不需要像《黑客帝國》中那樣,在腦後留一個插口,用於輸入什麼程式。我們通過語言形式也一樣可以獲得知識。聽廚師給我們講解一道菜的做法,我們就可以學會這道菜的製作程式。對於人類,我們相當大部分的知識都是來源於聽到或看到的語言。
人們給程式進行了神秘化,仿佛一旦有了奇妙的程式,計算機就可以完成人類不能完成的工作。但程式並不神秘,它只是一種語言。程式只是指令計算機完成計算機能夠完成的工作。
直接閱讀機器語言是非常困難的,這可能是人們產生程式神秘化的一個原因。在電影《黑客帝國》中,有一個情節,演員可以從大量的0101中得到美女的畫面。這種快速翻譯可能永遠只能存在影視作品中。閱讀大量的0和1給人帶來的最大的困難可能不是快速翻譯,而是如何斷句。沒有任何人能告訴你從流水般出現的01中,何處是一句話的開始,何處是結束。向前或向後讀錯一位的結果可能就是美女變成了骷髏。
不同語言可以相互轉換。自然語言之間可以轉換,不同計算機語言之間也可以轉換。只要完成相同的動作驅動,我們就可以認為兩段語言是等效的。一段機器語言往往是難以閱讀的,但是如果把他轉換為等效的高級語言,就很容易理解了。
行為或者動作(二者不區分)用語言表示時,我們不需要提及一些動作實現的細節。比如,“抬起胳膊”,我們不需要提示需要調動多少肌肉、消耗多少能量等等。
這種方式在編程思想中叫做“封裝”。高級語言不同於機器語言和彙編語言的要點在於,高級語言封裝了一些人們不易理解,也不易管理的對象,以相對易於理解和易於管理的方式展現出來。 比如:暫存器操作和記憶體管理對於大部分程式設計師都是一個頭痛的事,但高級語言以易於理解的對象或者函式管理方式進行管理。
計算機高級語言使普通的程式設計師不必關心一些計算機低層操作,但是仍然需要關注很多用戶不關心,而程式設計師必須關注的計算機內部操作,比如類庫的使用、記憶體操作、輸入/輸出流等。
程式設計師使用的這些語言辭彙在自然語言中沒有,是計算機特有的一些概念。這使計算機語言的使用有了較大的難度,也產生了程式設計師這個職業。
當我們理解語言的本質,通過適當的包裝,可以在計算機語言和自然語言之間找到一種合適的語言,既可以作為人機互動的語言,也可以作為人與人之間互動語言,還可以作為計算機之間的網路接口標準。
1.3. 計算機接口
二進制信息是計算機與計算機間傳遞信息的格式。
二進制作為最原始的語言,可以表示任何信息。不僅是語言,圖片、聲音、視頻都是用二進制表示。對於相同的二進制代碼,用不同解析標準會得到完全不同的結果。我們不能在計算機通訊領域隨意的使用二進制通訊,必須定義一些標準,使我們把二進制唯一的解釋成為我們希望的結果。
當前,XML是一種廣泛使用的接口標準,但是XML作為一種語言是不合格的。
XML標籤提高了XML的可讀性,但是標籤同時承擔了兩個角色,一個是語言要素,一個是分隔設定。在一個理想的語言中,分隔設定不應該有語言含義。
XML通常在DOCTYPE中定義標籤,在文檔中使用。而我們經常會在運行中定義一些語法要素,在同一文檔中同時定義標籤,又使用標籤可能會使解析變得困難。
嚴格的標籤定義阻止了別名的使用,而別名是一個語言生命力的源泉。
XML標籤在一個文檔中往往重複使用,這增加了網路傳輸中的消耗,雖然不值一提,但是這種消耗並沒有帶來應有的價值。
現有的網路傳輸協定TCP/IP已經很成熟,這是構成internet的基礎。基於TCP/IP的數據包通常由包頭和包體組成。包頭通常包含包體格式信息,編碼規則等。包體可以是文本內容,也可以是二進制內容。
html就是一種基於TCP/IP的、廣泛使用的網路協定。當傳輸文本內容,html包體採用了XML格式。
如果採用hiwii語言作為包體,摒棄XML格式,這就形成了一種新的接口協定。
hiwii語言將不僅是一種人機互動語言,也是計算機和計算機之間的互動語言。
2. hiwii語言
當確定了語言的本質,那么語言的目的也就確定了,那就是如何描述動作。
hiwii語言的唯一目的就是描述動作。
hiwii語言認為,對象的動作分為三種,分別是:動作、計算和判斷。這裡計算不是數學意義上的狹義概念,是存在對象到存在對象間的映射關係。判斷表示肯定或否定某種狀態的存在。
不同的計算機語言其語法往往是由很多格式構成,hiwii語言只有三種語法格式。
多數的計算機語言往往用關鍵字來引導一些特殊的語法,比如:if/while等語句。hiwii語言沒有關鍵字,也沒有特殊語法,所有的語句都在三種表達式的規則內。
很多計算機語言支持語法糖,即用一種簡化的表達式表示一種複雜表達式。hiwii語言不提倡語法糖,這會破壞語言的可讀性,為了少些幾個單詞而要求用戶必須多學習一種語法,這種代價是不值的。
雖然hiwii不支持語法糖,但是通過符號函式定義的方法,同樣可以實現表達式簡化。hiwii語言支持簡化寫法,但不會把簡化寫法做為語言的內置特徵。
本節只是簡單介紹了hiwii語言的一些特種,具體的使用方法容我以後慢慢道來。
2.1. 語法
hiwii語言由三種表達式構成:
計算表達式
判斷表達式
動作表達式
自然語言中,辭彙是構成語句的要素。hiwii語言中只有表達式的概念,沒有語句和段落的概念,辭彙是最簡單的表達式,語句和段落是較複雜的表達式。
三種表達式從詞性的角度理解,分別對應了名詞、形容詞和動詞。
會話過程中,表達式的詞性由會話的上下文決定。
表達式會話中,接收到的表達式都是按照動作表達式進行解析和處理。動作表達式中的主語按照計算表達式解析,狀語表達式按照判斷表達式解析。
2.2. 基本表達式
辭彙不是構成hiwii語言的唯一基本元素,構成hiwii語言的基本要素有三個,這三種基本元素是:identifier表達式、函式表達式和映射表達式。identifier表達式就是辭彙表達式。
格式如下:
identifier表達式:必須以字母或其它字元開始,不能以數字或符號開始,不能包含特殊符號。如:abc, a1, b2, 符號0等。
函式表達式:identifier(arg0, arg1, ……)
和映射表達式:identifier[arg0, arg1, ……]
括弧的使用豐富了語言的基本要素,辭彙不再是唯一的基本要素,函式、映射和辭彙構成了語言的三大基本要素。
2.2.1. 函式表達式
函式是程式語言的基本要素之一。
函式表達式最少有一個參數。
當參數是null時,可以不寫。
比如:f(null, 3) = f(, 3) //不可省略分隔設定“,”
在c/java中,函式是唯一的可定義表達式,當函式沒有參數時,就用類似於f()的形式表示。hiwii語言中,f()表示的不是一個沒有參數的identifier,而是f(null)。
2.2.2. mapping表達式
映射表達式格式與函式表達式幾乎完全相同,不同點只在於函式表達式使用小括弧,而映射表達式使用中括弧。
表達式有時表示實際的對象,有時只是一個表達式。或者說,表達式有時表示一個值,而有時只是一個符號。函式表達式的參數是對象,而映射表達式的參數是表達式。
2.3. 其它表達式
2.3.1. character
字元是構成表達式的基本元素,每個UNICODE字元也是字元。
如:'a','+','漢','字'等。
空格的表示方法:' '
不可見字元需要用一些特殊格式表示,即:'\t','\n','\r','\f'。
由於'\'用來做轉義符表示不可見字元,因此'\'本身也成為特殊字元,用'\\'表示。
一些特殊的顯示字元也需要轉義符才能表示,如:'\”'。
由於編碼採用unicode,因此java傳統的char就無法記錄所有的字元。unicode補充字元集採用雙char表示一個字元的方式。
2.3.2. String
字元串是“”內包含有序符號列表,比如:
"abc"
"I am Tom"
"hiwii語言"
空字元串表示一個長度為0的字元串,表示方法""。就其本身而言,空字元串不是符號的有序排列。
2.3.3. Number
用來表示數字的表達式。Number表達式在hiwii系統中分為四類,分別是:整數表達式、浮點數表達式、分數表達式和科學計數表達式。
2.3.3.1. 整型
全部由數字組成,比如:3,45,1234等
2.3.3.2. 浮點數
就是表達式中間有小數點的數,比如:1.0,2.34等
2.3.3.3. 分數
格式:int1/int2。分數的分子和分母必須都是整型數。
比如:3/4,4/5,7/4等。
分數只有真分數和假分數兩種類型。
作為數學的基本表達方式,有理數的概念表示方式,分數不能成為計算機表達式二級成員,它們必須是一級成員。有了分數,1/3這樣的數就不用以0.33333的小數形式近似表示。
2.3.3.4. 科學計數
科學計數由兩個部分組成,實數部分和指數部分。科學計數形式嚴格按照數學要求,實數部分必須介於[1, 10]之間,即大於等於1,小於10。指數部分必須是整數。指數部分可以是一個負數。
格式:float/int[e/E][+|-]int
比如:3e2,
1.23e3
3.4e-3
科學計數法與前面三種計數法不同。整數、小數、分數的表示範圍順序擴大,所有的整數能夠用小數表示,所有的小數能夠用分數表示。但科學計數法的表示範圍並不能覆蓋分數的表示範圍。它不能準確的表示所有分數,甚至不能表示0。科學計數法只是能夠更好的表示一個很大的數。比如:1e80。如果用其它表示方法,這個簡單的數需要寫滿幾行。
2.3.4. 二進制數
二進制數是計算機時代的標誌,二進制數的處理是計算機的基本功能。二進制數有三種表示方法,即二進制表示、八進制表示和十六進制表示。Java和c中,二進制數是整數的一種表示方式,而hiwii語言把二進制數分離出來,進行不同的處理。
2.3.4.1. 二進制
格式:0[b/B][01]+
即以0b或0B開始,後面跟至少一個0或1。
如:0b00001111
2.3.4.2. 八進制
格式:0[o/O][0-7]+
即以0o或0O開始,後面跟至少一個0-7之間的數字。
如:0o1234567
在java和c中,八進制數以0開始表示。Hiwii語言中,表達式第二個字元位置必須是o(注意是字母o,而不是數字0)。
2.3.4.3. 十六進制
格式:0[x/X][0-9a-fA-F]+
即以0x或0X開始,後面跟至少一個0-9或a-f之間的字母或數字。
如:0xe3
2.3.5. 括弧表達式
括弧表達式有三種,分別小括弧表達式、中括弧表達式和大括弧表達式。
2.3.5.1. 小括弧表達式
格式:(Expression)
如:(3+2),(a>3)等。括弧的優先權最高,括弧表達式一般用來優先進行計算或判斷。當主語較長時,也可以用括弧來表示較長的主語,如:
(2+3+4+5+6).compare(20)
2.3.5.2. 中括弧表達式
以[]包圍,以","分隔的表達式集合。
()[]{}三種表達式分別表示不同的意義。()表達式表示一個具有最高優先權的表達式,{}表達式運用在程式執行中,表示進入了一個執行環境,環境內如果定義了參數,環境外是不能訪問的。而中括弧表達式只是多個表達式組合在一起的表示方式。從邏輯角度,[]內的元素和[]外的元素是處於相同等級的。如果不考慮執行環境,[]表達式和{}表達式在執行中意義是相同的。[]表達式也可以用在計算表達式中,表示有序集合。有序對(Ordered Pair),支持有序對的基礎計算,cons/car/cdr
2.3.5.3. 大括弧表達式
大括弧表達式是以{}包圍,以","分隔的表達式。
格式:
{
expression1,
expression2,
…….
expression n
}
大括弧表達式本身也是一個表達式,因此大括弧表達式可以嵌套,如:
{
expression1,
expression2,
{
expression3
},
}
2.3.5.4. 參數
小括弧表達式獨立使用時,只允許且必須有一個參數。
中括弧和大括弧表達式允許有0到任意多個參數,參數中間用","分隔。小括弧表達式作為函式表達式的一部分時,三者使用相同的參數規則。
2.3.6. id+中括弧
identifier[param,…]
2.3.7. id+大括弧
identifier{表達式1;表達式2;…}
2.4. 主謂狀格式
一個典型表達式格式包括三個部分:主語、謂語和狀語。
由於hiwii語言包括三種表達式,因此三種表達式中,主語和謂語的連線符號不同:
動作表達式:主語#謂語{狀語}
計算表達式:主語.謂語{狀語}
判斷表達式:主語$謂語{狀語}
主語!謂語{狀語}
判斷表達式分為肯定表達式和否定表達式,二者的連線符號也不相同。
使用過程中,謂語可以單獨使用。主語和狀語選擇使用,可以同時選用,或只選擇主語或狀語。
當不使用主語時,除了否定的判斷表達式,主語和謂語間的連線符必須省略。沒有主語時,否定的判斷表達式不可以省略連線符。
當主語和謂語同時使用時,謂語格式必須是三種基本表達式之一。
主語可以是基本表達式或特殊表達式。如:”abc”.length。
計算表達式可以作為主謂格式的主語。而這時計算表達式可能會形成如下格式:名詞1. 名詞2. 名詞3……
hiwii語言的表達式格式中,不包含自然語言中常有的賓語部分。由於函式表達式是基本表達式,函式表達式的參數可以作為賓語。
例子:
太陽 //簡單計算表達式
藍色 //簡單判斷表達式
跑 //簡單動作表達式
Tom#跑 //主語+謂語形式,Tom跑。
Tom#跑{飛快,穿著跑鞋}
//主謂狀形式,Tom穿著跑鞋飛快的跑。
Tom.衣服.袖子 //Tom的衣服的袖子
Tom.衣服.袖子$髒了 //Tom的衣服的袖子髒了
Tom.衣服{藍色}.袖子{左側的} //Tom的藍色衣服的左側袖子
主語和謂語的使用場景如下:
在語言會話中,當目標對象本身時,通常是省略主語,直接使用謂語。比如:請坐。
由於目標對象可能是由多個子對象構成,當需要指示目標對象的部分構成做出某個動作時,請求語句必須由主語。比如:請左腿抬起。
狀語是修飾謂語的。
因此一個完整的語句是主語+謂語+狀語。
我們通常把謂語認為是動詞,但是對於計算機而言,計算和判斷也是一種動作,而計算和判斷對應的名稱和形容詞也可以認為是謂語。當謂語是名稱,主語就是名稱的屬主,狀語就是形容詞。當謂語是形容詞,主語就是修飾對象,狀語就是副詞。
2.5. 會話詞典
當確定了hiwii語言的語法,會話雙方溝通的基礎就成為雙方是否擁有共同的基本表達式,我們定於這種基本表達式集合叫做會話詞典。
會話詞典按照詞性劃分為計算表達式、判斷表達式和動作表達式。
每種表達式都分為identifier、function和mapping三種形式。
會話詞典中的基礎表達式按照是否需要定義分為:無定義元素和定義的元素。
無定義元素是會話詞典的相關方法都理解該元素,且無須解釋。
2.6. 詞典元素
hiwii語言定義通用的語法結構,這使會話的參與者不再需要根據不同的語言定義不同的語法解析。
有了簡單通用的語法結構,會話的參與者還需要擁有共同的詞典元素。
2.6.1. 分支和循環
大部分計算機語言語法都還是很複雜,這些語言的分支和循環往往是一種特殊的語法,比如:C語言和java中,if語句、switch語句、for語句等都是特殊的語法。
hiwii語言用mapping表達式表示分支和循環。比如if和while
if[condition,command,elsecommand] //elsecommand可選
while[condition,command]
3. 用途和意義
hiwii語言不是一個產品,而是一個標準。一個得到廣泛支持的標準必將給世界帶來巨大的變化。
3.1. 企業IT架構
hiwii語言規範了計算機間的網路傳輸標準,使計算機與計算機之間可以實現角色分工。相同角色的計算機可以組成群,實現集群服務。
通過hiwii語言的標準件,可以在軟體層實現積木式管理,用標準的部件實現任意的軟體目標。
3.2. 雲計算
雲計算是現在非常熱門的辭彙,但是事實上雲計算就是代理和集群服務。雲計算用於表示當人在一台終端上操作,實際的執行可能是在遠端的多台伺服器上。然而人類很早就有了這種工作模式。當我們去銀行做業務,我們面對的是銀行櫃員,但是在後台有很多人在為同一個客戶服務。
當系統與系統間有了統一的語言標準,計算機的概念將發生很大的改變。
3.3. 瀏覽器
當前的瀏覽器是基於html標準,完成前端畫面的呈現。但是html標準並不是一個號的語言。拋開前面提到的XML固有的一些缺點不說,HTML實際上是由三種語言構成,分別是html標籤、CSS和javaScript組成。為什麼不用單一的hiwii語言實現呢?
3.4. 作業系統
當前的作業系統只是提供了執行程式的接口,需要程式設計師按照標準格式生成程式。但是通過hiwii語言,系統的畫面可以由語言生成,在繼承現有作業系統圖形操作方便性的同時,提供語言操作界面。
hiwii系統在發行之處必然是運行在當前流行的作業系統之上,當所有的操作都可以通過hiwii系統完成時,hiwii系統可以和硬體結合,取代作業系統。
3.5. 資料庫
語言本身就是數據,現在的數據完全可以通過陳述句代替。
3.6. 未來的程式
現在的程式一般是通過二進制檔案格式發布,通過作業系統來執行。當hiwii語言成為計算機標準語言接口,程式將是可讀的文字,安裝程式就是讓計算機閱讀一段人類也可以讀懂的文字。
有人也許會擔心文字輸入的程式執行效率是否會很低。這種擔心是多餘的,雖然程式是文字的形式輸入的,但是在系統內部還是轉換為二進制執行的。
這種方式同時也解決不同計算機作業系統間的跨平台問題。
也許這種方式會帶來程式著作權問題,但未來的程式設計師和現在的作家會是一樣的,他們的作品任何人都可以閱讀。現在我們如何保護作家的著作權,未來我們就可以用類似的方法保護程式設計師的作品。
3.7. 知識庫
當我們在人和系統之間有了統一的語言,計算機系統可以成為人們真正的智慧型助手。通過陳述句形式,人們把信息傳遞給計算機。至於計算機用什麼格式存儲信息,這不是我們需要關心的問題。當我們需要提取一些信息的時候,我們可以通過疑問句形式提取出我們需要的信息。
計算機可以做得更多,通過陳述句我們可以講述一個事件的發生過程、一個人的一生、一個物體的描述。當信息積累得足夠多,一個知識庫就形成了。
我們當前的描述類信息是以自然語言的形式存儲在計算機中,通過全文檢索的形式來查詢信息。google、baidu都是基於全文檢索的原理來工作的。全文檢索雖然可以通過辭彙查詢文章,但是無法進行語句邏輯的查詢。
hiwii系統將按照人類的思維模式來存儲知識。所有陳述句形式的信息以邏輯形式存儲在系統中,而不是存儲在oracle等資料庫表中。存儲的方式方便用戶以疑問句形式提取任意數據。
未來,hiwii語言將給我們的搜尋方式帶來巨大的變化。
3.8. 人工智慧
圖靈測試是由現代計算 機科學之父英國人阿蘭?圖靈 65 年前提出的。圖靈測試會在測試人在與被測試者 (一個人和一台機器) 隔開的情況下,通過一些裝置(如鍵盤)向被測試者隨意提問。問過一些問題後,如果被測試者超過 30% 的答覆不能使測試人確認出哪個是人、哪個是機器的回答,那么這台機器就通過了測試,並被認為具有人類智慧型。
圖靈測試可以理解為通過陳述句和疑問句來測試一台計算機。如果我們的陳述句或疑問句中隱含了人類的常識,那么這種測試是不公平的。人工智慧測試的應該是一個智慧型系統接受陳述內容,並根據陳述內容的推斷能力是否和人類一致。
hiwii語言試圖建立基本的邏輯知識,根據邏輯知識,用戶可以以陳述句形式傳遞知識給計算機,然後通過疑問句的形式取得推理結果。
未來hiwii系統可以像小學生一樣吸收知識,具有和人類一樣邏輯能力。
4. 總結
人類歷史上有一個通天塔的傳說,人們把這個塔叫做巴別塔。《聖經·舊約·創世記》第11章宣稱,當時人類聯合起來興建希望能通往天堂的高塔。最初,由於語言相通,建造巴別塔的工程實施很順利。上帝不喜歡這樣,如果人類真的修成宏偉的通天塔,那以後還有什麼事幹不成呢?為了阻止人類的計畫,上帝讓人類說不同的語言,使人類相互之間不能溝通,計畫因此失敗,人類自此各散東西。
現在是時候再次做出選擇了,我們可以選擇相同的語言,自由的溝通,不僅僅是人和人,人和計算機,計算機和計算機都可以用同一種語言自由溝通。在新的溝通環境中,人類真的可以做成任何事。