2017-04-11 56 views
0

合金教程http://alloy.mit.edu/alloy/tutorials/online/frame-FS-3.html,我們定義在文件系統如下:三元關係,關係的產品和領域,它們本身關係

contents: Dir lone-> FSObject, 
parent: FSObject ->lone Dir 

// A File System 
sig FileSystem { 
    root: Dir, 
    live: set FSObject, 
    contents: Dir lone-> FSObject, 
    parent: FSObject ->lone Dir 
} 

我只是無法理解以下說明:

這些是三元關係,使用關係產品操作r(「 - >」)。把它們看作是本身就是關係的領域。內容關係將每個文件系統映射到從目錄到文件系統對象的二進制關係。同樣,父級將每個文件系統與文件系統對象關聯到目錄。

有人可以解釋我用不同的例子,換句話說?

回答

0

甲關係中包含具有對於每一列的值的行。它擁有一些謂詞(報表模板)由字段參數,使一些真正命題(聲明)的行。 - ,其中人X愛(X,Y)行人ý 愛

X  Y 
------------ 
Rick Ilsa 
Victor Ilsa 
Ilsa Rick 
Ilsa Victor 
Louis Louis 

的值是一組特定的成員。我們說這個集合是它的類型。變量的類型是它可以容納的值的類型。關係值是該集合的一個元素,它是其字段類型的「產品」。

Loves值是一組與XPersonY會員的所有關係中的一員是Person成員。所以Loves和它的值是Person -> Person類型。

所有報價的意思是,列的類型可以是一個關係。

-- the (X, Z) rows where Z is the (A, B) rows where X will fly to A in B 
Itinerary 

劇透警告!

X  Z 
-------------------------- 
Rick A   B 
     ------------------ 
     Paris  Spring 
     Casablanca Summer 
Ilsa A   B 
     ------------------ 
     Paris  Spring 
     Casablanca Fall 
     Lisbon  Fall 
Victor A   B 
     ------------------ 
     Casablanca Fall 
     Lisbon  Fall