← rfc/
╔══════════════════════════════════════════════════════════════════════════╗
RFC 767 · mail

Çok Ortamlı Belgelerin İletimi için Yapılandırılmış Bir Biçim

Yazar
Jonathan B. Postel
Kurum
USC Information Sciences Institute
Tarih
Ağustos 1980
Durum
Network Working Group Yorum Talebi
Kanal
mail/

Ağ Çalışma Grubu

Yorum Talebi: 767
Yazar: Jonathan B. Postel
Kurum: USC Information Sciences Institute
Tarih: Ağustos 1980

Information Sciences Institute
University of Southern California
4676 Admiralty Way
Marina del Rey, California 90291
(213) 822-1511


Çok Ortamlı Belgelerin İletimi için Yapılandırılmış Bir Biçim

İçindekiler

ÖNSÖZ ........................................................ iii

1. GİRİŞ ..................................................... 1

1.1. Motivasyon ................................................. 1
1.2. Kapsam ..................................................... 1
1.3. Terminoloji ................................................ 1
1.4. Belge Tanımı ............................................... 2
1.5. Diğer Çalışmalar ........................................... 2

2. ŞARTNAME .................................................. 3

2.1. Belge ...................................................... 3
2.2. Mesaj Nesneleri ............................................ 5
2.3. Gövde Yapıları ............................................ 13
2.3.1. Basit Elemanlar ......................................... 13
2.3.2. Yapılandırılmış Metin ................................... 13
2.3.3. NLS Dosya Örneği ........................................ 13
2.3.4. Çok Ortamlı Yapılar ..................................... 15
2.3.5. Ortamlar ................................................ 21
2.3.6. METİN ................................................... 22
2.3.7. SES ..................................................... 22
2.3.8. FAKS .................................................... 23
2.3.9. GRAFİK .................................................. 24

3. ÖRNEKLER VE SENARYOLAR .................................... 25

Örnek 1: Metin Örneği ........................................... 25
Örnek 2: Çok Ortam Örneği ....................................... 28

KAYNAKLAR .................................................... 31


ÖNSÖZ

Bu, söz konusu biçim şartnamesinin ilk baskısıdır ve yorum, öneri ve tavsiye talebi olarak değerlendirilmelidir. Bilgisayar destekli mesaj sistemleri üzerine daha önce çok sayıda çalışma yapılmıştır ve bunların bir kısmı kaynakça bölümünde listelenmiştir. Bu şartname, ARPA araştırma topluluğunun üyeleri ve bilgisayar destekli mesaj sistemlerinin geliştirilmesiyle ilgilenen diğer kişilerle yapılan pek çok tartışma ile şekillendi. Bu belge, ISI'de yürütülen ARPA destekli Internetwork Concepts Research Project çerçevesinde hazırlanmıştır.

Jon Postel


RFC: 767
J. Postel
USC-ISI
Ağustos 1980

1. Giriş

Bu belge, çok ortamlı belgelerin yapılandırılmış veri temsillerini iletmek için bir biçim tanımlar. Bu biçim, bir ağlar arası mesaj iletim sisteminde Internet Message Protocol ile birlikte kullanılmak üzere tasarlanmıştır. Söz konusu sistem, Mesaj İşleme Modülleri (MPM — Message Processing Modules) olarak adlandırılan ana bilgisayarlardaki süreçler arasında mesaj iletmek için tasarlanmıştır. MPM'ler birden fazla ağda konumlanır ve birlikte bir ağlar arası mesaj iletim sistemi oluşturur. Internet Message Protocol bir mesajı; bir Tanımlayıcı (Identification), bir Komut (Command) ve bir Belge (Document) bileşenlerinden oluşan bir yapı olarak tanımlar. Bu rapor, bu tür Belgelerin biçimini tanımlamayı amaçlamaktadır. Okuyucunun Internet Message Protocol [1] hakkında bilgi sahibi olduğu varsayılır.

1.1. Motivasyon

Kullanıcılarla çeşitli ortamlarda (metin, grafik, faks, konuşma) etkileşime giren bilgisayar uygulamaları hayata geçirilmektedir. Çok ortamlı bilgileri işleyebilen bilgisayar cihazları kullanıma sunuldukça, programlar ve kullanıcılar arasında bilgisayar posta sistemi de dahil olmak üzere çeşitli mekanizmalar aracılığıyla çok ortamlı bilgi alışverişi yapmak için bilgisayarların kullanılması arzu edilir hâle gelmektedir.

1.2. Kapsam

Bu biçim, ağlar arası mesaj iletim sisteminde çok ortamlı belgelerin iletimi için kullanılmak üzere tasarlanmıştır; ancak daha geniş bir uygulanabilirliğe sahip olduğu düşünülmektedir.

1.3. Terminoloji

Mesajlar, Mesaj İşleme Modülü (MPM) adı verilen bir süreç tarafından yönlendirilir. Mesajlar, kullanıcılarla birlikte çalışan Kullanıcı Arayüz Programları (UIP — User Interface Programs) tarafından oluşturulur ve tüketilir.

MPM'ler arasında aktarılan temel birime mesaj denir. Bir mesaj; bir işlem tanımlayıcısından (mesajı benzersiz biçimde tanımlayan), bir komuttan (iletim için gerekli bilgiyi içeren) ve bir belgeden oluşur. Belge bir veri yapısıdır.

Bir kişisel mektup için belge gövdesi mektubun içeriğine karşılık gelir; belge başlığı ise tarih satırı, selam ve imzaya karşılık gelir.

Bir kurum içi not için belge gövdesi metne, belge başlığı ise notun başlık bölümüne karşılık gelir.

Komutlar, mektubu veya notu yönlendirmek için Postane veya posta odası tarafından kullanılan bilgiye karşılık gelir. Komuttaki bilginin bir kısmı UIP tarafından sağlanır.

1.4. Belge Tanımı

Belge alanlardan (fields) oluşur. Her alanın bir tanımlayıcı adı olacaktır. Tipik alanlar şunlardır: DATE, TO, SUBJECT ve BODY. Alanların çoğu çok basit, bazıları ise karmaşıktır. Gövde (body) alanı oldukça karmaşık olabilir. Örneğin DATE, tarih ve saati ISO biçiminde belirten çok kısıtlı bir karakter dizisidir. Daha karmaşık bir örnek TO alanıdır: bu bir posta kutuları listesidir; bir posta kutusu ise kendi başına bir adres bilgisi öğelerinden oluşan özellik listesidir. BODY basitçe bir karakter dizisi olabileceği gibi, farklı ortamlardaki bilgiyi temsil eden çok yapılandırılmış bir veri koleksiyonu da olabilir.

BODY, çok ortamlı bilginin kontrollü bir sunumunu belirtecek şekilde yapılandırılabilir. Belgelerin gövdesinde metin, grafik, faks ve ses bilgisinin yer alması için hükümler mevcuttur. Bilgi birimlerinin sunumu ardışık (sequential), bağımsız (independent) veya eşzamanlı (simultaneous) olabilir.

1.5. Diğer Çalışmalar

Bu protokol, ARPA Ağı'ndaki mesaj protokolleri üzerine önceki çalışmalardan [2,3,4,5,6] ve başkalarının bilgisayar mesaj sistemleri tasarımına ilişkin fikirlerinden [7,8,9,10,11,12,13,14,15,16,17,18] faydalanmıştır.


2. Şartname

Bir belgenin yapılandırılmış biçimi, Internet Message Protocol'de [1] kullanılan temel veri elemanları üzerine inşa edilir.

2.1. Belge

Belge; alan (field) olarak adlandırılan <ad,değer> çiftlerinden oluşan bir özellik listesidir (property list). Birkaç alan özel olarak zorunludur ve birçoğu isteğe bağlıdır. Alan değerlerinin bir kısmı basit, birkaçı ise oldukça karmaşıktır. Özellikle gövde (body) değeri çok yüksek derecede yapılandırılmış olabilir.

Daha eski mesaj sistemleri, belgenin bir başlık (header) ve bir gövde (body) bölümüne ayrıldığını kabul etmiş ve belirli başlık alanlarını (örneğin date, to, subject) belirtmek için anahtar kelimeler kullanmıştır. Kabaca söylemek gerekirse, bu işlevsellik yeni yapılandırılmış biçimde <ad,değer> çiftinin "ad" kısmını bir anahtar kelime olarak kabul etmek yoluyla sağlanır. Ayrıca bu yeni yapılandırılmış biçim, gövdeye ilişkin ayrı muameleyi ortadan kaldırır.

Belgelerin alacağı pek çok biçimi önceden öngörmek mümkün değildir; bu yüzden belge başlığı için standart esnek olmalıdır. Buradaki yaklaşım, temel alanlardan oluşan bir küme tanımlamak ve gerekli olan her alanın eklenmesine izin vermektir. Bu şekilde eklenen özellikler başkaları tarafından anlaşılamayabilir.

En az özellikli belge aşağıdaki alanlardan oluşan bir özellik listesidir:

Ad Değer
DATE tarih dizgesi (name)
SENDER bir posta kutusu
SUBJECT konu dizgesi (text)
BODY bir veri yapısı

Tipik bir belge aşağıdaki alanları içeren bir özellik listesidir:

Ad Değer
DATE tarih dizgesi (name)
SENDER bir posta kutusu
FROM posta kutuları listesi
TO posta kutuları listesi
CC posta kutuları listesi
SUBJECT konu dizgesi (text)
BODY bir veri yapısı

Ayrıntılı bir belge şu alanları içerebilir:

Ad Değer
DATE tarih dizgesi (name)
SENDER bir posta kutusu
FROM posta kutuları listesi
TO posta kutuları listesi
CC posta kutuları listesi
BCC posta kutuları listesi
REPLY-TO posta kutuları listesi
SUBJECT konu dizgesi (text)
COMMENTS yorum dizgesi (text)
MESSAGE-ID bu mesajın tanımlayıcısı (text)
IN-REPLY-TO önceki mesajın tanımlayıcısı (text)
REFERENCES diğer mesajların tanımlayıcıları (text)
KEYWORDS bu mesajda kullanılan anahtar terimler (text)
BODY bir veri yapısı

Anahtar nesnelerden biri posta kutusudur (mailbox). sender, from, to, cc, bcc ve reply-to alanlarında görünür. Posta kutusu, bir mesajın hedef alıcısını belirtmek üzere birleştirilen nesnelerden oluşan bir özellik listesidir. Posta kutusunu oluşturan <ad,değer> çiftlerinin çoğu, Internet Message Protocol'deki [1] deliver komutunda kullanılanlarla aynıdır. Belge bağlamında posta kutusunda kullanılmak üzere birkaç ek <ad,değer> çifti tanımlanmıştır. Özellikle, bir bilgisayar hesabını tanımlayan "user name"e karşılık olarak bir kişinin gerçek adı için bir alan vardır.

Bunun yanı sıra bir dağıtım grubu (distribution group) adını belirtmek için bir alan bulunur. Böyle grup adları, bir belgenin bir alıcı grubuna gönderildiğini belirtmek için kullanılır. Bu esasen posta kutusunun, grup adı için tek bir <ad,değer> çiftinden oluşan alternatif bir biçimini sunar. Grup adı posta kutusu ile aynı listedeki diğer posta kutuları arasında zorunlu bir ilişki bulunmaz.

Örneğin, aşağıdaki durumların tümüne izin verilir:

2.2. Mesaj Nesneleri

Mesaj belgelerinde, posta kutusu veya tarih gibi bir dizi nesne kullanırız. Bu nesneler temel veri elemanlarında kodlanır. Bazı nesneler tamsayı veya karakter dizgesi gibi basit şeylerdir; diğerleri ise listeler veya özellik listeleri gibi daha karmaşık nesnelerdir. Aşağıda mesajlarda kullanılan nesnelerin bir listesi verilmiştir. Nesne tanımları alfabetik sıradadır.

Account (Hesap)

Hesap bilgisi. Bir name elemanı ile temsil edilir.

Address (Adres)

Adres, bir kullanıcıyı tanımlamak için gerekli olan asgari bilgiyi içermek için tasarlanmıştır — daha fazlasını değil (posta kutusu ile karşılaştırın).

Bir adres, aşağıdaki <ad,değer> çiftlerini içeren bir özellik listesidir:

ad açıklama
NET ağ adı
HOST ana bilgisayar adı
USER kullanıcı adı

veya:

ad açıklama
MPM mpm-tanımlayıcısı
USER kullanıcı adı

Answer (Yanıt)

Bir soruya verilen evet (true) veya hayır (false) yanıtı. Bir boolean elemanı ile temsil edilir.

BCC

Posta kutuları listesi. Mesajın "kör karbon kopyalarını" (blind carbon copies) alanların adresleri.

Body (Gövde)

Bir veri yapısı. Bu, bir karakter dizgesi kadar basit olabileceği gibi (name veya text elemanı ile temsil edilir) listelerden oluşan karmaşık bir yapı da olabilir. Kısmen veya tamamen şifrelenmiş olabilir. Bölüm 3.3, bazı olası yapılandırılmış gövdeleri açıklar.

C (Karakter)

Bir karakter. Bir name elemanı ile temsil edilir.

CC

Posta kutuları listesi. Bir mesajın kopyaları To nesnesindeki adreslerin yanı sıra başkalarına da gönderildiğinde, kopyaların gönderildiği kişilerin adresleri burada kaydedilir.

City (Şehir)

Bir şehir. Bir name elemanı ile temsil edilir.

Comments (Yorumlar)

Bir yorum dizgesi. Bir text elemanı ile temsil edilir.

Count (Sayı)

Bir tür öğenin sayısı. Bir integer elemanı ile temsil edilir.

Country (Ülke)

Bir ülke. Bir name elemanı ile temsil edilir.

Date (Tarih)

Tarih ve saat, Uluslararası Standardizasyon Örgütü (ISO) önerilerine [19,20,21] göre temsil edilir. ISO tavsiyeleri 2014, 3307 ve 4031 bir arada değerlendirildiğinde aşağıdaki tarih ve saat temsili elde edilir:

yyyy-aa-gg-ss:dd:ss,fff+ss:dd

Burada yyyy dört haneli yıl, aa iki haneli ay, gg iki haneli gün, ss (ilk) 24 saat biçiminde iki haneli saat, dd iki haneli dakika, ss (ikinci) iki haneli saniye ve fff saniyenin ondalık kesridir. Bu temel tarih ve saate, Greenwich'ten sapma artı veya eksi ss saat ve dd dakika olarak eklenir.

Saat yerel saattir ve sapma, yerel saat ile Evrensel Eşgüdümlü Zaman (UTC) arasındaki farktır. Yerel saatten UTC'ye dönüştürmek için sapma yerel saatten cebirsel olarak çıkarılır.

Örneğin, aşağıdaki zamanlar verildiğinde:

Los Angeles'ta saat   14:25:00-08:00
UTC'de saat           22:25:00

veya:

Paris'te saat         11:43:00+01:00
UTC'de saat           10:43:00

Device (Cihaz)

Bir cihaz adı. Bir name elemanı ile temsil edilir.

Document (Belge)

Alanlardan oluşan bir özellik listesi.

Distribution Group (Dağıtım Grubu)

Bir dağıtım grubu, aşağıdaki <ad,değer> çiftini içeren bir özellik listesidir:

ad      açıklama
----    -----------
GROUP   belge dağıtım grubu adı

Bu yapı, dağıtım grubunun posta kutusunun özel bir hâli olmasını sağlamak için kullanılır.

Facsimile Structure (Faks Yapısı)

Bir faks veri yapısı. Bir özellik listesi ile temsil edilir.

File (Dosya)

Bir dosya adı. Bir name elemanı ile temsil edilir.

Format (Biçim)

Bir biçim göstergesi. Bir name elemanı ile temsil edilir.

From (Kimden)

Posta kutuları listesi. From, bir belgenin yazarının adıdır.

Graphics Structure (Grafik Yapısı)

Bir grafik veri yapısı. Bir özellik listesi ile temsil edilir.

Group (Grup)

Bir belge dağıtım grubu adı. Bir name elemanı ile temsil edilir.

Host (Ana Bilgisayar)

Bir ana bilgisayar adı. Bir name elemanı ile temsil edilir.

Ident (Tanıtıcı)

Bir kişinin tanımlayıcısı — genellikle baş harfleri. Bir name elemanı ile temsil edilir.

In-Reply-To (Yanıt Olarak)

Önceki mesajın mesaj tanımlayıcısı. Bir text elemanı ile temsil edilir.

Internet Address (İnternet Adresi)

Bu, ARPA ağlar arası ortamda bir ana bilgisayarı tanımlar. İnternet adresi 32 bitlik bir sayıdır; üst sıradaki 8 bit ağı, alt sıradaki 24 bit ise o ağdaki ana bilgisayarı tanımlar [22]. Bu biçimde kullanım için internet adresi sekiz bitlik alanlara bölünür ve her alanın değeri ondalık rakamlarla temsil edilir. Örneğin, ISIE'nin ARPANET adresi 167837748'dir ve 10,1,0,52 olarak temsil edilir. Ayrıca bu temsil, bir ana bilgisayardaki adresi — örneğin bir MPM'nin TCP portunu — kapsayacak şekilde genişletilebilir; örneğin 10,1,0,52,0,45.

Keywords (Anahtar Kelimeler)

Bu mesajda kullanılan anahtar terimler. Bir text elemanı ile temsil edilir.

Mailbox (Posta Kutusu)

Bu, ağlar arası posta sisteminin bir kullanıcısının hedef adresidir. Posta kutusu; mesajın alıcısının ağ, ana bilgisayar, konum ve yerel kullanıcı tanımlayıcısı gibi bilgileri içerir. Posta kutusu, iletim için gerekli olan asgari bilgiye ek olarak başka bilgiler de içerebilir.

Örnek olarak, birine ilk kez bir mesaj gönderirken kişi doğru alıcıyı tanımlamaya yardımcı olacak birçok öğeyi içerebilir. Ancak bu mesaja bir yanıt aldığında, yanıt bir Adres (Posta Kutusu yerine) içerecektir ve bundan sonra bu Adres kullanılabilir.

Bir posta kutusu bir özellik listesidir. Bir posta kutusu aşağıdaki <ad,değer> çiftlerini içerebilir:

ad       açıklama
----     -----------
MPM      mpm-tanımlayıcısı
NET      ağ adı
HOST     ana bilgisayar adı
PORT     ana bilgisayardaki MPM adresi
USER     kullanıcı adı (bilgisayar hesap adı)
PERSON   bir kişinin gerçek adı
GROUP    belge dağıtım grubu
ORG      kurum adı
CITY     şehir
STATE    eyalet
COUNTRY  ülke
ZIP      posta kodu
PHONE    telefon numarası

En az özellikli posta kutusu bir Adres veya bir Dağıtım Grubudur.

Message-ID (Mesaj Tanımlayıcısı)

Bu mesajın tanımlayıcısı. Bu, MPM mesaj tanımlamasıyla ilgili değildir; UIP'in uzun vadeli belge tanımlayıcısıdır. Bir text elemanı ile temsil edilir.

MPM-Identifier (MPM Tanımlayıcısı)

Bir MPM'nin ağlar arası adresi. Bu, ARPA İnternet Adresi veya bir X.121 Public Data Network Adresi [23] olabilir. mpm-tanımlayıcısı, tek bir <ad,değer> çiftine sahip bir özellik listesidir. Bu alışılmadık yapı, kullanılan adres türünün kolayca belirlenebilmesi için kullanılır.

Net (Ağ)

Bir ağ adı. Bir name elemanı ile temsil edilir.

NLS Block (NLS Bloğu)

Bir NLS düğümündeki bilgi. Bir özellik listesi ile temsil edilir.

NLS Node (NLS Düğümü)

Bir NLS bloğu ve alt yapısı. Bir özellik listesi ile temsil edilir.

NLS Substructure (NLS Alt Yapısı)

Bir NLS düğümleri listesi. Bir liste ile temsil edilir.

Org (Kurum)

Bir kurum adı. Bir name elemanı ile temsil edilir.

Paragraph (Paragraf)

Bir metin paragrafı. Bir text elemanı ile temsil edilir.

Parcel (Paket)

Ses verisinin temel birimi. Bir bitstr elemanı ile temsil edilir.

Person (Kişi)

Bir kişinin gerçek adı. Bir name elemanı ile temsil edilir.

Password (Parola)

Bir parola. Bir name elemanı ile temsil edilir.

Phone (Telefon)

Bir telefon numarası. Bir name elemanı ile temsil edilir.

Pointer (İşaretçi)

Bu veri yapısının dışında saklanan bilgiye bir işaretçi. Dış verinin yerini belirlemek, dış veriye erişim sağlamak ve dış veriye doğru yorumu uygulamak için gerekli bilgileri içeren bir özellik listesi. Örneğin şunları içerebilir:

ad         açıklama
----       -----------
NET        ağ adı
HOST       ana bilgisayar adı
FILE       dosya adı
USER       kullanıcı adı (bilgisayar hesap adı)
PASSWORD   parola
ACCOUNT    hesap
FORMAT     biçim

Port

Ana bilgisayar içindeki MPM adresi. Bir name elemanı ile temsil edilir.

Presentation Descriptor (Sunum Tanımlayıcısı)

<ad,değer> çiftlerinden oluşan bir özellik listesi; burada ad bir sıra göstergesi, değer ise bir sunum elemanıdır. Sıra göstergeleri SEQUENTIAL (ardışık), SIMULTANEOUS (eşzamanlı) ve INDEPENDENT (bağımsız) değerlerini alır.

Presentation Element (Sunum Elemanı)

Ortam yapılarından oluşan bir özellik listesi.

Protocol (Protokol)

Bir ortam için kullanılan kodlama şemasının adı. Bir name elemanı ile temsil edilir.

References (Kaynaklar)

Diğer mesajların mesaj tanımlayıcıları. Bir text elemanları listesiyle temsil edilir.

Reply-To (Yanıt-Adresi)

Posta kutuları listesi. Bazen bir mesajın yanıtlarının from veya sender dışında bir adrese yönlendirilmesi istenebilir. Böyle bir durumda reply-to nesnesi kullanılabilir.

R 450 Block

Rapicom 450 veri birimi (585 bit). Bir bitstr elemanı ile temsil edilir.

Sender (Gönderen)

Bir posta kutusu. Sender, mesajı gönderen kişinin adresini içerir. Bazı durumlarda bu, mesajın yazarıyla AYNI değildir. Böyle bir durumda yazar from nesnesinde belirtilmelidir.

SID

Bir NLS ifade tanımlayıcısı. Bir integer elemanı ile temsil edilir.

State (Eyalet)

Bir eyalet adı. Bir name elemanı ile temsil edilir.

Subject (Konu)

Mesajın konusu. Bir text elemanı ile temsil edilir.

Text Structure (Metin Yapısı)

Bir metin veri yapısı. Bir özellik listesi ile temsil edilir.

To (Kime)

Posta kutuları listesi. To, mesajın alıcılarını tanımlar.

User (Kullanıcı)

Bir kullanıcı adı (bilgisayar hesap adı). Bir name elemanı ile temsil edilir.

Version (Sürüm)

Bir sürüm numarası. Bir index elemanı ile temsil edilir.

Vocoder

Bir vocoder (ses kodlayıcı) adı. Bir name elemanı ile temsil edilir.

Voice Structure (Ses Yapısı)

Bir ses veri yapısı. Bir özellik listesi ile temsil edilir.

X121 Address (X121 Adresi)

Bu, Public Data Network ortamındaki bir ana bilgisayarı tanımlar. Bir tanımlayıcının parçası olarak kullanıldığında, bir mesajın kaynak ana bilgisayarını tanımlar. X121 adresi en fazla 14 rakamlık bir dizidir [23]. Bu biçim içinde kullanım için X121 adresi ondalık rakamlarla temsil edilir.

ZIP (Posta Kodu)

Bir posta kodu. Bir name elemanı ile temsil edilir.

2.3. Gövde Yapıları

2.3.1. Basit Elemanlar

Gövde basitçe tek bir veri elemanı olabilir. Örneğin tek bir text elemanı, uzun bir karakter dizgesini temsil edebilir.

<body> := TEXT

veya

text:"bu gövdenin gerçek metnidir"

2.3.2. Yapılandırılmış Metin

Gövde, her paragrafın bir text elemanı ile temsil edildiği paragraflar olarak düşünülebilir. Paragraflar böylece bir listenin öğeleri hâline gelir.

<body> := LIST (<paragraph>, <paragraph>, ...)

    <paragraph> := TEXT

veya

list:(text:"birinci paragraf", text:"ikinci paragraf", ...)

2.3.3. NLS Dosya Örneği

NLS dosyalarından gelen verileri bu biçimde temsil etmek mümkündür. NLS, yapılandırılmış veri dosyaları üzerinde işlem yapan geniş çok amaçlı bir sistemdir. Dosyalar ağaç yapılıdır ve ağacın her düğümüne bağlı veriler vardır. Her düğüme bağlı ayrıca birkaç alan bulunur.

Bir NLS dosyası şöyledir:

proplist(
  name:"FILENAME", name:<file>
  name:"CREATION-DATE", name:<date>
  name:"VERSION", index:<version>
  name:"SID-COUNT", integer<count>
  name:"LAST-WRITER", name:<ident>
  name:"OWNER", name:<ident>
  name:"LAST-WRITE-TIME", name:<date>
  name:"LEFT-NAME-DELIM-DEFAULT", name:<c>
  name:"RIGHT-NAME-DELIM-DEFAULT", name:<c>
  name:"SUBSTRUCTURE", <nls-substructure>
)endlist

Bir NLS alt yapısı şöyledir:

list:(
  <nls-node>
  .
  .
  .
)endlist

Bir NLS düğümü şöyledir:

proplist:(
  name:"BLOCK", <nls-block>
  name:"SUBSTRUCTURE", <nls-substructure>
)endlist

Bir NLS bloğu şöyledir:

proplist:(
  name:"LEFT-NAME-DELIM", name:<c>
  name:"RIGHT-NAME-DELIM", name:<c>
  name:"SID", integer:<sid>
  name:"CREATOR", name:<ident>
  name:"CREATION-TIME", name:<date>
  name:"DATA", <data>
)endlist

NLS verisi şöyledir:

proplist:(
  name:"<bir veri adı>", <tür veri adına bağlıdır>
  .
  .
  .
)endlist

Metin için veri şöyledir:

proplist:(
  name:"TEXT", text:"ifadenin metni"
)endlist

2.3.4. Çok Ortamlı Yapılar

Seminerlerde slaytların kullanılmasına benzer biçimde, grafik bilginin bir paralel anlatım (running commentary) eşliğinde gösterildiği senaryolar tasarlanabilir. Bir slayt ve açıklaması birbirine bağlıdır. Böyle bir sunumun eşgüdümü, anlaşılması için merkezî önemdedir. Bu senkronizasyon belge yapısının içinde yakalanmalıdır.

Belge yapısı içinde ihtiyaç duyulan, zamana göre sıralı üç temelde farklı kontrol türü vardır. Bunlar:

Simultaneous (Eşzamanlı)
Sequential (Ardışık)
Independent (Bağımsız)

Eşzamanlı veri, senkron sunum için tasarlanmıştır. Bunun imasına göre veri paralel olarak sunulur.

Ardışık veri öğeleri, listelenen sırayla birer birer sunulur. Sıralama kesin biçimde soldan sağadır.

Bağımsız veri, herhangi bir zaman sırasıyla sunulabilir. Herhangi bir biçimde sıralanmamıştır.

Veri, sunum elemanları ya da PE'ler (presentation elements) olarak adlandırılan küçük bilgi birimlerine bölünür. PE'ler, sunum sırasını kontrol etmek için yapılar hâlinde bir araya getirilebilir. Bir PE, çeşitli ortamlardaki bilgiyi temsil eden elemanlardan oluşan bir özellik listesidir. Örneğin:

<pe> := proplist(
          name:"VOICE", <voice-structure>,
          name:"GRAPHICS", <graphics-structure>
        )endlist

PE'ler, sunum tanımlayıcıları ya da PD'ler (presentation descriptors) aracılığıyla daha büyük kontrollü sunumlar hâlinde birleştirilir. Bir PD, listesindeki PE'lerin zaman sıralama türünü belirten bir özellik listesidir.

<pd> := <<seq>> | <<sim>> | <<ind>>

<<seq>> := name:"SEQUENTIAL", <pe>

<<sim>> := name:"SIMULTANEOUS", <pe>

<<ind>> := name:"INDEPENDENT", <pe>

Bir PE; ortam <ad,değer> çiftlerinden ya da PD'lerden oluşan bir özellik listesidir.

<pe> := <<text>> | <<voice>> | <<facsimile>>
      | <<graphics>> | <pd>

<<text>> := name:"TEXT", <text structure>

<<voice>> := name:"VOICE", <voice structure>

<<facsimile>> := name:"FACSIMILE", <facsimile structure>

<<graphics>> := name:"GRAPHICS", <graphics structure>

Bir PE içinde birden fazla <ad,değer> çifti mevcutsa, ortamlar farklı çıkış cihazlarında üst PD tarafından belirtilen sırayla sunulur. proplist içindeki görünüm sırası, yalnızca üst PD ardışık sıralama belirttiğinde önem taşır.

Bu şemayı kullanan çok ortamlı mesajların yapısı, temel bir metin belgesini ve farklı sıralama seçeneklerini göstermek için seçilmiş birkaç basit örnekle gösterilecektir. Son örnek daha egzotik kullanımları işaret edecektir.

Düz Metin Mesaj

Basit bir metin gövdesi tek bir metin veri yapısıyla temsil edilebilir. Yapılandırılmış bir gövdenin en basit örneğini vermek için basit bir metin gövdesini çok ortam yapısında gösteriyoruz.

<body> := <pd>

  <pd> := <<seq>>

    <<seq>> := name:"SEQUENTIAL", <pe>

      <pe> := name:"TEXT", <text structure>

veya

proplist:(
  name:"SEQUENTIAL",
  proplist:(
    name:"TEXT", <text structure>
  )endlist
)endlist

Eşzamanlı Sıralama

Bu sıralama seçeneği, ayrı akışların paralel sunulacağı durumları belirtmek için kullanılır. Örneğin, GRAPHICS ve VOICE verisinin eşzamanlı sunulacağını varsayalım.

<body> := <pd>

  <pd> := <<sim>>

    <<sim>> := name:"SIMULTANEOUS", <pe>

      <pe> := name:"VOICE", <voice structure>
              name:"GRAPHICS", <graphics structure>

veya

proplist:(
  name:"SIMULTANEOUS",
  proplist:(
    name:"VOICE", <voice structure>
    name:"GRAPHICS", <graphics structure>
  )endlist
)endlist

Ardışık Sıralama

Bu seçenek, ardışık zaman sıralamasını belirtmek için kullanılır. Bu PD'nin altındaki alt ağaçtaki ortamlar ayrı akışlar değildir. Yine yukarıdaki örneği kullanarak GRAPHICS ve VOICE verisinin ardışık sıralama ile sunulacağını varsayalım.

<body> := <pd>

  <pd> := <<seq>>

    <<seq>> := name:"SEQUENTIAL", <pe>

      <pe> := name:"VOICE", <voice structure>
              name:"GRAPHICS", <graphics structure>

veya

proplist:(
  name:"SEQUENTIAL",
  proplist:(
    name:"VOICE", <voice structure>
    name:"GRAPHICS", <graphics structure>
  )endlist
)endlist

Bağımsız Sıralama

Bazı çıkış cihazlarının diğerlerine göre çok yavaş olduğu açıktır. Bunu örnekleyen bir durum faks cihazlarıdır. Faks cihazlarının çoğu yavaştır. 9600 baud hızında iletilen ayrıntılı bir resmin basılması dakikalar sürer. Ona eşlik eden ses veya metin bilgisi kısa olduğunda, kullanıcının böyle bir cihazı beklemesi sakıncalıdır.

Örneğin, belge bir faks görüntüsü ve "Merhaba Frank, işte istediğin resmin bir kopyası." metnini içeriyorsa, kullanıcının resmi beklemesi gerekmez. Faks makinesi kuyrukta biriktirilebilir ve kullanıcı resmi daha sonra alabilir. Bir anlamda resim, metinden zaman olarak bağımsızdır.

<body> := <pd>

  <pd> := <<ind>>

    <<ind>> := name:"INDEPENDENT", <pe>

      <pe> := name:"FACSIMILE", <facsimile structure>
              name:"TEXT", <text structure>

veya

proplist:(
  name:"INDEPENDENT",
  proplist:(
    name:"FACSIMILE", <facsimile structure>
    name:"TEXT", <text structure>
  )endlist
)endlist

Akış Örneği

Yapı ve ardışık sıralama seçeneği kullanılarak bir akış başlatmak mümkündür. Akış, sona erene kadar kendi hızında ilerleyecektir.

<body> := <pd>

  <pd> := <<seq>>

    <<seq>> := name:"SEQUENTIAL", <pe>

      <pe> := <pd>

        <pd> := <<sim>>

          <<sim>> := name:"SIMULTANEOUS", <pe>

            <pe> := name:"VOICE", <voice structure>
                    name:"GRAPHICS", <graphics structure>

veya

proplist:(
  name:"SEQUENTIAL",
  proplist:(
    name:"SIMULTANEOUS",
    proplist:(
      name:"VOICE", <voice structure>
      name:"GRAPHICS", <graphics structure>
    )endlist,
    name:"SIMULTANEOUS",
    proplist:(
      name:"VOICE", <voice structure>
      name:"GRAPHICS", <graphics structure>
    )endlist,
    .
    .
    .
  )endlist
)endlist

Böyle bir belge yapısı bir slayt sunumunu andırır.

Çoklu Aktif Akış Örneği

Bu örnek egzotiktir ancak neyin mümkün olduğunu göstermektedir. Yapı ve eşzamanlı sıralama kullanılarak paralelde iki veya daha fazla ayrı akış başlatmak mümkündür. Her akış, tümü sona erene kadar kendi hızında ilerleyecektir.

<body> := <pd>

  <pd> := name:"SIMULTANEOUS", <pe>

    <pe> = <pd>

      <pd> := name:"SEQUENTIAL", <pe>

        <pe> = <pd>

          <pd> := name:"SIMULTANEOUS", <pe>

            <pe> := name:"VOICE", <voice structure>
                    name:"GRAPHICS", <graphics structure>

veya

proplist:(
  name:"SIMULTANEOUS",
  proplist:(
    name:"SEQUENTIAL",
    proplist:(
      name:"SIMULTANEOUS",
      proplist:(
        name:"VOICE", <voice structure>
        name:"GRAPHICS", <graphics structure>
      )endlist,
      name:"SIMULTANEOUS",
      proplist:(
        name:"VOICE", <voice structure>
        name:"GRAPHICS", <graphics structure>
      )endlist,
      .
      .
      .
    )endlist,
    name:"SEQUENTIAL",
    proplist:(
      name:"SIMULTANEOUS",
      proplist:(
        name:"VOICE", <voice structure>
        name:"GRAPHICS", <graphics structure>
      )endlist,
      .
      .
      .
    )endlist
  )endlist
)endlist

2.3.5. Ortamlar

Buraya kadar, bir PE içine yerleşen ortam sınıfları için açık bir açıklama verilmedi. Gelecekte çeşitli belge istasyonlarında hangi ortam türlerinin destekleneceği bilinmemektedir. Bugün için kısmen destek sağlanmış olanlar şunlardır:

Bu ortamların her birindeki veri için standart biçimler tanımlanmalıdır.

2.3.6. METİN

Metin verisi çeşitli protokollere göre yapılandırılabilir (henüz tanımlanmamıştır). Veri yapısının üst düzeyi, protokolü ve o protokolün sürümünü tanımlayan bir özellik listesidir.

name:"TEXT", proplist:(
  name:"PROTOCOL", <protocol>,
  name:"VERSION", <version>,
  name:"DATA", <data>
)endlist

İlk protokol PARAGRAPH olarak adlandırılır ve veri, her paragrafın bir text elemanı olduğu paragraflar listesidir.

name:"DATA", list:(
  text: <paragraph>
  text: <paragraph>
  .
  .
  .
)endlist

2.3.7. SES

ARPANET üzerinde ses verisinin iletilmesine yönelik hayli araştırma yapılmış olduğundan, ses verisi için standart temeli Ağ Ses Protokolü (NVP — Network Voice Protocol) sağlar.

Ses verisi; kullanılan vocoder'ı, iletim protokolünü ve paket (parcel) verisini belirten bir özellik listesidir. Paket veri biçimi kullanılan protokole özeldir ve listeler hâlinde gruplanır.

name:"VOICE", proplist:(
  name:"VOCODER", <vocoder>,
  name:"PROTOCOL", <protocol>,
  name:"VERSION", <version>,
  name:"DATA", <data>
)endlist

NVP protokolünün birkaç parametresi vardır. Sürüm numarası, vocoder donanımı ve yazılımı tarafından zamanlamayı ayarlamak ve kullanılan kodlama türünü tanımlamak için kullanılan belirli bir parametre kümesini belirtir. Bir belge içinde sürüm numarasının değişmesi beklenmez.

NVP'nin kendisi, bir ağ konuşma bağlantısının her iki ucunun birbirini "anlamasını" sağlamak için bu parametrelerin müzakeresini destekler. Bir belge sisteminde böyle etkileşimli bir müzakere mümkün olmadığından, müzakere yetenekleri hariç tutulmuştur. Farklı donanımlar kullanıma sunuldukça yeni sürümler tanımlanabilir.

NVP protokolü için veri listesi şu biçimi alır:

name:"DATA", list:(
  bitstr: <parcel>
  bitstr: <parcel>
  .
  .
  .
)endlist

Listedeki öğeler paketlerdir (parcels). Bireysel paketler; içerikleri ve uzunlukları sürüm numarası tarafından önceden tanımlanmış bit-dizgesi veri elemanlarıdır. Bir paket grubundaki paket sayısı, kapsayan liste başlığındaki öğe sayısından alınabilir.

2.3.8. FAKS

Kullanımda olan birkaç faks cihazı vardır. CCITT tarafından standartlar hazırlanmakla birlikte, bugün mevcut cihazların çoğu tescilli sıkıştırma algoritmaları nedeniyle birbirleriyle uyumsuzdur. Faks veri açıklaması birden çok protokol olasılığına izin verecektir.

name:"FACSIMILE", proplist:(
  name:"DEVICE", <device>,
  name:"PROTOCOL", <protocol>,
  name:"DATA", <data>
)endlist

Bilgisayarlara arayüzlenen faks cihazı sayısı azdır ve ARPANET'teki mevcut deneyler RAPICOM 450 kullanır. İlk faks standart biçimi bu makine için kullanılan veri yapısına dayandırılacaktır. Yani, RAPICOM450 cihazı ve BLOCK protokolü için veri şöyle olacaktır:

name:"DATA", list:(
  bitstr:<r450-block>,
  bitstr:<r450-block>,
  .
  .
  .
)endlist

Burada bir r450-block 585 bitlik bir birimdir.

2.3.9. GRAFİK

Grafik için durum faks ile büyük benzerlik gösterir. Bugün piyasadaki cihazlar çeşitli kullanıcı arayüzleri ve seçeneklerine sahiptir. Benzer bir yapı tanımlanmıştır.

name:"GRAPHICS", proplist:(
  name:"DEVICE", <device>,
  name:"PROTOCOL", <protocol>,
  name:"DATA", <data>
)endlist

Belgelerde grafik verisini tanımlamak için kullanılabilecek birkaç aday protokol bulunur. Biri Network Graphics Protocol (Ağ Grafik Protokolü), diğeri Graphics Language (Grafik Dili), üçüncüsü ise SIGGRAPH Core System'dir.

Çok Ortamlı Belgelerin İletimi için Yapılandırılmış Bir Biçim

3. Örnekler ve Senaryolar

Örnek 1: Metin Örneği

Aşağıdaki mesajı göndermek istediğimizi varsayalım:

Date: 1979-03-29-11:46-08:00
From: Jon Postel <Postel@ISIF>
Subject: Perşembe Toplantısı
To: Danny Cohen <Cohen@ISIB>
CC: Linda

Danny:

Lütfen takvimine Perşembe günü saat 15:00'teki toplantımızı işaretle.

--jon.

Bu mesaj yapılandırılmış biçimde kodlanacaktır. Aşağıda bu mesajın yukarıdan aşağıya üretilmesindeki ardışık adımlar sunulmaktadır. Mesajların tanımlayıcı ve komut kısımları burada genişletilmeyecektir (bkz. [1]).

  1. message

  2. (identification, command, document)

(ID:<<identification>>,
 CMD:<<command>>,
 DOC:(date, from, subject, to, cc, body))
(ID:<<identification>>,
 CMD:<<command>>,
 DOC:(DATE:date,
      FROM:from
      SUBJECT:subject,
      TO:to,
      CC:cc,
      BODY:body))
(ID:<<identification>>,
 CMD:<<command>>,
 DOC:(DATE: 1979-03-29-11:46-08:00,
      FROM: (NET:ARPANET,HOST:ISIF,USER:Postel,PERSON:Jon Postel),
      SUBJECT: Perşembe Toplantısı,
      TO: (NET:ARPANET,HOST:ISIB,USER:Cohen,PERSON:Danny Cohen),
      CC: (NET:ARPANET,HOST:ISIF,USER:Linda),
      BODY:
        Danny:

        Lütfen takvimine Perşembe günü saat 15:00'teki
        toplantımızı işaretle.

        --jon.))
PROPLIST:
 (ID:<<identification>>,
  CMD:<<command>>,
  DOC:
    PROPLIST:(
      DATE: 1979-03-29-11:46-08:00,
      FROM:
        LIST:(
          PROPLIST:(
            NET:ARPANET,
            HOST:ISIF,
            USER:Postel,
            PERSON:Jon Postel,
          )ENDLIST,
        )ENDLIST,
      SUBJECT: Perşembe Toplantısı,
      TO:
        LIST:(
          PROPLIST:(
            NET:ARPANET,
            HOST:ISIB,
            USER:Cohen,
            PERSON:Danny Cohen,
          )ENDLIST,
        )ENDLIST,
      CC:
        LIST:(
          PROPLIST:(
            NET:ARPANET,
            HOST:ISIF,
            USER:Linda,
          )ENDLIST,
        )ENDLIST,
      BODY:
        Danny:

        Lütfen takvimine Perşembe günü saat 15:00'teki
        toplantımızı işaretle.

        --jon.
    )ENDLIST
  )ENDLIST
proplist:(
  name:"ID", <<identification>>,
  name:"CMD", <<command>>,
  name:"DOC",
    proplist:(
      name:"DATE", name:"1979-03-29-11:46-08:00",
      name:"FROM",
        list:(
          proplist:(
            name:"NET", name:"ARPANET",
            name:"HOST", name:"ISIF",
            name:"USER", name:"Postel",
            name:"PERSON", name:"Jon Postel",
          )endlist,
        )endlist,
      name:"SUBJECT", text:"Perşembe Toplantısı",
      name:"TO",
        list:(
          proplist:(
            name:"NET", name:"ARPANET",
            name:"HOST", name:"ISIB",
            name:"USER", name:"Cohen",
            name:"PERSON", name:"Danny Cohen",
          )endlist,
        )endlist,
      name:"CC",
        list:(
          proplist:(
            name:"NET", name:"ARPANET",
            name:"HOST", name:"ISIF",
            name:"USER", name:"Linda",
          )endlist,
        )endlist,
      name:"BODY",
        text:"Danny:

              Lütfen takvimine Perşembe günü
              saat 15:00'teki toplantımızı işaretle.

              --jon."
    )endlist
  )endlist

Örnek 2: Çok Ortam Örneği

proplist:(
  name:"ID", <<identification>>,
  name:"CMD", <<command>>,
  name:"DOC",
    proplist:(
      name:"DATE", name:"1980-08-06-11:46-08:00",
      name:"FROM",
        list:(
          proplist:(
            name:"NET", name:"ARPANET",
            name:"HOST", name:"ISIF",
            name:"USER", name:"Postel",
            name:"PERSON", name:"Jon Postel",
          )endlist,
        )endlist,
      name:"SUBJECT", text:"Çok Ortamlı Test Mesajı",
      name:"TO",
        list:(
          proplist:(
            name:"GROUP", name:"Multimedia Experiment List",
          )endlist,
        )endlist,
      name:"CC",
        list:(
          proplist:(
            name:"NET", name:"ARPANET",
            name:"HOST", name:"ISIF",
            name:"USER", name:"Linda",
          )endlist,
        )endlist,
      name:"BODY",
        proplist:(
          name:"SEQUENTIAL",
            proplist:(
              name:"TEXT",
                proplist:(
                  name:"PROTOCOL", name:"PARAGRAPH",
                  name:"VERSION", index:"1",
                  name:"DATA",
                    list:(
                      text:"Bu bir çok ortamlı posta testidir."
                      text:"Umarım beğenirsiniz."
                    )endlist
                )endlist

              name:"SIMULTANEOUS",
                proplist:(
                  name:"VOICE",
                    proplist:(
                      name:"VOCODER", name:<vocoder>,
                      name:"PROTOCOL", name:"NVP",
                      name:"VERSION", index:"1",
                      name:"DATA",
                        list:(
                          bitstr:<parcel>
                          bitstr:<parcel>
                        )endlist
                    )endlist

                  name:"GRAPHICS",
                    proplist:(
                      name:"DEVICE", name:<device>,
                      name:"PROTOCOL", name:<protocol>,
                      name:"VERSION", index:<version>,
                      name:"DATA", <data>
                    )endlist
                )endlist
            )endlist

          name:"SEQUENTIAL",
            proplist:(
              name:"TEXT",
                proplist:(
                  name:"PROTOCOL", name:"PARAGRAPH",
                  name:"VERSION", index:"1",
                  name:"DATA",
                    list:(
                      text:"Bu, paralel olarak sunulması gereken
                            ses ve grafikti."
                      text:"--jon."
                    )endlist
                )endlist
            )endlist
        )endlist
    )endlist
)endlist

Kaynaklar

[1] Postel, J., "Internet Message Protocol," RFC 759, 113, USC/Information Sciences Institute, August 1980.

[2] Bhushan, A., K. Pogran, R. Tomlinson, and J. White, "Standardizing Network Mail Headers," RFC 561, NIC 18516, September 1973.

[3] Myer, T., and D. Henderson, "Message Transmission Protocol," RFC 680, NIC 32116, 30 April 1975.

[4] Crocker, D., J. Vittal, K. Pogran, and D. Henderson, "Standard for the Format of ARPA Network Text Messages," RFC 733, NIC 41952, 21 November 1977.

[5] Barber, D., and J. Laws, "A Basic Mail Scheme for EIN," INWG 192, February 1979.

[6] Braaten, O., "Introduction to a Mail Protocol," Norwegian Computing Center, INWG 180, August 1978.

[7] Crocker, D., E. Szurkowski, and D. Farber, "An Internetwork Memo Distribution Capability - MMDF," Sixth Data Communications Symposium, ACM/IEEE, November 1979.

[8] Haverty, J., D. Henderson, and D. Oestreicher, "Proposed Specification of an Inter-site Message Protocol," 8 July 1975.

[9] Thomas, R., "Providing Mail Services for NSW Users," BBN NSW Working Note 24, Bolt Beranek and Newman, October 1978.

[10] White, J., "A Proposed Mail Protocol," RFC 524, NIC 17140, SRI International, 13 June 1973.

[11] White, J., "Description of a Multi-Host Journal," NIC 23144, SRI International, 30 May 1974.

[12] White, J., "Journal Subscription Service," NIC 23143, SRI International, 28 May 1974.

[13] Levin, R., and M. Schroeder, "Transport of Electronic Messages Through a Network," Teleinformatics 79, Boutmy & Danthine (eds.), North Holland Publishing Co., 1979.

[14] Earnest, L., and J. McCarthy, "DIALNET: A Computer Communications Study," Computer Science Department, Stanford University, August 1978.

[15] Crispin M., "DIALNET: A Telephone Network Data Communications Protocol," DECUS Proceedings, Fall 1979.

[16] Caulkins, D., "The Personal Computer Network (PCNET) Project: A Status Report," Dr. Dobbs Journal of Computer Calisthenics and Orthodontia, v.5, n.6, June 1980.

[17] Postel, J., "NSW Transaction Protocol (NSWTP)," USC/Information Sciences Institute, IEN 38, May 1978.

[18] Haverty, J., "MSDTP -- Message Services Data Transmission Protocol," RFC 713, NIC 34739, April 1976.

[19] ISO-2014, "Writing of calendar dates in all-numeric form," Recommendation 2014, International Organization for Standardization, 1975.

[20] ISO-3307, "Information Interchange -- Representations of time of the day," Recommendation 3307, International Organization for Standardization, 1975.

[21] ISO-4031, "Information Interchange -- Representation of local time differentials," Recommendation 4031, International Organization for Standardization, 1978.

[22] Postel, J., "DOD Standard Internet Protocol," USC/Information Sciences Institute, IEN 128, NTIS number AD A079730, January 1980.

[23] CCITT-X.121, "International Numbering Plan for Public Data Networks," Recommendation X.121, CCITT, Geneva, 1978.

[24] Cohen, D., "Specifications for the Network Voice Protocol (NVP)," NIC 42444, RFC 741, NSC 68, RR-75-39, USC/Information Sciences Institute, January 1976.

[25] CCITT-T.30, "Procedures for Document Facsimile Transmission in the General Switched Telephone Network," Recommendation T.30, Orange Book, V. 7, The International Telephone and Telegraph Consulative Committee, International Telecommunication Union, Geneva, 1977.

[26] Treadwell, S., "FAX File Format," ARPANET Message, 14 November 1979.

[27] Sproull, R., and E. Thomas, "A Network Graphics Protocol," NIC 24308, Xerox Palo Alto Research Center, August 1974.

[28] Bisbey, R., and D. Hollingworth, "A Distributable, Display-Device-Independent Vector Graphics System for Command and Control," RR-80-87, USC/Information Sciences Institute, July 1980.

[29] Bisbey, R., D. Hollingworth, and B. Britt, "Graphics Language," TM-80-18, USC/Information Sciences Institute, July 1980.

[30] Graphics Standard Planning Committee, "Core System," Computer Graphics, V. 13, N. 3, SIGGRAPH, ACM, August 1979.