एक्सप्रेस (डेटा मॉडलिंग भाषा): Difference between revisions
No edit summary |
No edit summary |
||
Line 53: | Line 53: | ||
** लॉजिकल: बूलियन डेटाटाइप के समान लॉजिकल में सत्य और असत्य के संभावित मान और इसके अलावा अज्ञात भी होते हैं। | ** लॉजिकल: बूलियन डेटाटाइप के समान लॉजिकल में सत्य और असत्य के संभावित मान और इसके अलावा अज्ञात भी होते हैं। | ||
** बूलियन: बूलियन मान सत्य और असत्य के साथ। | ** बूलियन: बूलियन मान सत्य और असत्य के साथ। | ||
** संख्या: संख्या डेटा प्रकार पूर्णांक और वास्तविक दोनों का सुपरटाइप है। अधिकांश कार्यान्वयन | ** संख्या: संख्या डेटा प्रकार पूर्णांक और वास्तविक दोनों का सुपरटाइप है। अधिकांश कार्यान्वयन वास्तविक प्रकार का प्रतिनिधित्व करने के लिए दोहरे प्रकार का उपयोग करता है, चाहे वास्तविक मान पूर्णांक हो। | ||
** पूर्णांक: एक्सप्रेस पूर्णांक सिद्धांत रूप में किसी भी लम्बाई के हो सकते हैं, लेकिन अधिकांश कार्यान्वयनों ने उन्हें हस्ताक्षरित 32 बिट मान तक सीमित कर दिया। | ** पूर्णांक: एक्सप्रेस पूर्णांक सिद्धांत रूप में किसी भी लम्बाई के हो सकते हैं, लेकिन अधिकांश कार्यान्वयनों ने उन्हें हस्ताक्षरित 32 बिट मान तक सीमित कर दिया। | ||
** वास्तविक: आदर्श रूप से एक्सप्रेस वास्तविक मूल्य सटीकता और आकार में असीमित है। लेकिन व्यवहार में वास्तविक मूल्य को टाइप डबल के फ्लोटिंग पॉइंट मान द्वारा दर्शाया जाता है। | ** वास्तविक: आदर्श रूप से एक्सप्रेस वास्तविक मूल्य सटीकता और आकार में असीमित है। लेकिन व्यवहार में वास्तविक मूल्य को टाइप डबल के फ्लोटिंग पॉइंट मान द्वारा दर्शाया जाता है। | ||
Line 100: | Line 100: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
यह उदाहरण बताता है कि | यह उदाहरण बताता है कि क्षेत्र इकाई की लंबाई का वर्ग मान होना चाहिए | ||
इसके लिए विशेषता आयाम लम्बाई_प्रतिनिधि 2 के बराबर होना चाहिए और बुनियादी एसआई इकाइयों के अन्य सभी प्रतिनिधि 0 होने चाहिए। | इसके लिए विशेषता आयाम लम्बाई_प्रतिनिधि 2 के बराबर होना चाहिए और बुनियादी एसआई इकाइयों के अन्य सभी प्रतिनिधि 0 होने चाहिए। | ||
Line 117: | Line 117: | ||
{{Commons category|EXPRESS}} आईएसओ संबंधित विषय | {{Commons category|EXPRESS}} आईएसओ संबंधित विषय | ||
* आईएसओ 10303: कंप्यूटर-व्याख्यात्मक प्रतिनिधित्व और औद्योगिक उत्पाद डेटा के आदान-प्रदान के लिए आईएसओ मानक। | * आईएसओ 10303: कंप्यूटर-व्याख्यात्मक प्रतिनिधित्व और औद्योगिक उत्पाद डेटा के आदान-प्रदान के लिए आईएसओ मानक। | ||
* [[ISO 10303-21|आईएसओ 10303-21]]: | * [[ISO 10303-21|आईएसओ 10303-21]]: एएससीआईआई संरचना के साथ स्टेप का डेटा विनिमय रूप | ||
* आईएसओ 10303-22: मानक डेटा एक्सेस इंटरफ़ेस, स्टेप के कार्यान्वयन के विधियों का हिस्सा | * आईएसओ 10303-22: मानक डेटा एक्सेस इंटरफ़ेस, स्टेप के कार्यान्वयन के विधियों का हिस्सा | ||
* [[आईएसओ 10303-28]]: एसटीईपी-एक्सएमएल एक्सप्रेस स्कीमा का प्रतिनिधित्व करने के लिए विस्तरणीय मार्कअप लैंग्वेज (एक्सएमएल) के उपयोग को निर्दिष्ट करता है | * [[आईएसओ 10303-28]]: एसटीईपी-एक्सएमएल एक्सप्रेस स्कीमा का प्रतिनिधित्व करने के लिए विस्तरणीय मार्कअप लैंग्वेज (एक्सएमएल) के उपयोग को निर्दिष्ट करता है | ||
* [[आईएसओ 13584]]-24: पीएलआईबी का तार्किक मॉडल एक्सप्रेस में निर्दिष्ट है | * [[आईएसओ 13584]]-24: पीएलआईबी का तार्किक मॉडल एक्सप्रेस में निर्दिष्ट है | ||
* [[ISO 13399|आईएसओ 13399]]: कटिंग टूल डेटा प्रतिनिधित्व और विनिमय के लिए आईएसओ मानक | * [[ISO 13399|आईएसओ 13399]]: कटिंग टूल डेटा प्रतिनिधित्व और विनिमय के लिए आईएसओ मानक | ||
* इंडस्ट्री फाउंडेशन क्लासेस|आईएसओ/ | * इंडस्ट्री फाउंडेशन क्लासेस|आईएसओ/पीएएस 16739: इंडस्ट्री फाउंडेशन क्लासेस एक्सप्रेस में निर्दिष्ट है | ||
* [[STEP (ISO 10303) भागों की सूची|स्टेप (आईएसओ 10303) भागों की सूची]] | * [[STEP (ISO 10303) भागों की सूची|स्टेप (आईएसओ 10303) भागों की सूची]] | ||
Revision as of 12:40, 22 February 2023
एक्सप्रेस उत्पाद (व्यवसाय) डेटा के लिए मानक डेटा मॉडलिंग भाषा है। एक्सप्रेस को उत्पाद मॉडल स्टेप (आईएसओ 10303) के आदान-प्रदान के लिए आईएसओ मानक में औपचारिक रूप दिया गया है, और आईएसओ 10303-11 के रूप में मानकीकृत किया गया है।[1]
अवलोकन
डेटा मॉडल औपचारिक रूप से रुचि के डोमेन के लिए डेटा वस्तु और डेटा वस्तु के बीच संबंधों को परिभाषित करते हैं। डेटा मॉडल के कुछ विशिष्ट अनुप्रयोगों में डेटाबेस के विकास का समर्थन करना और किसी विशेष क्षेत्र के लिए डेटा के आदान-प्रदान को सक्षम करना सम्मिलित है। डेटा मॉडल को डेटा मॉडलिंग भाषा में निर्दिष्ट किया जाता है।[2] एक्सप्रेस आईएसओ 10303-11, एक्सप्रेस भाषा संदर्भ नियमावली में परिभाषित डेटा मॉडलिंग भाषा है।[3]
एक एक्सप्रेस डेटा मॉडल को टेक्स्ट और आरेखीय रूप से दो तरह से परिभाषित किया जा सकता है। औपचारिक सत्यापन के लिए और आईएसओ 10303-22 जैसे उपकरणों के लिए इनपुट के रूप में एएससीआईआई फ़ाइल के अन्दर टेक्स्टुअल प्रतिनिधित्व सबसे महत्वपूर्ण है। दूसरी ओर ग्राफिकल प्रतिनिधित्व अधिकांश मानव उपयोग के लिए अधिक उपयुक्त होता है जैसे स्पष्टीकरण और ट्यूटोरियल। ग्राफिकल प्रतिनिधित्व, जिसे एक्सप्रेस-जी कहा जाता है, उन सभी विवरणों का प्रतिनिधित्व करने में सक्षम नहीं है जिन्हें पाठ्य रूप में तैयार किया जा सकता है।
एक्सप्रेस प्रोग्रामिंग लैंग्वेज जैसे पास्कल (प्रोग्रामिंग भाषा) के समान है। स्कीमा के अन्दर विभिन्न समुच्चयप्रकारों को संरचनात्मक बाधाओं और एल्गोरिथम नियमों के साथ परिभाषित किया जा सकता है। एक्सप्रेस की मुख्य विशेषता डेटाप्रकारों की आबादी को औपचारिक रूप से मान्य करने की संभावना है - यह सभी संरचनात्मक और एल्गोरिथम नियमों की जांच करना है।
एक्सप्रेस-जी
एक्सप्रेस-जी सूचना मॉडल के लिए मानक चित्रमय संकेतन है।[4] यह इकाई और प्रकार की परिभाषाएँ, संबंधों और प्रमुखता को प्रदर्शित करने के लिए एक्सप्रेस भाषा का साथी है।[5] यह चित्रमय संकेतन एक्सप्रेस भाषा के उपसमुच्चय का समर्थन करता है। एक्सप्रेस पर एक्सप्रेस-जी का उपयोग करने के लाभों में से यह है कि डेटा मॉडल की संरचना को अधिक समझने योग्य विधि से प्रस्तुत किया जा सकता है। एक्सप्रेस-जी का नुकसान यह है कि जटिल बाधाओं को औपचारिक रूप से निर्दिष्ट नहीं किया जा सकता है। चित्र 1 उदाहरण है। चित्र में प्रस्तुत डेटा मॉडल का उपयोग ध्वनि संक्षिप्त डिस्क (सीडी) संग्रह के लिए डेटाबेस की आवश्यकताओं को निर्दिष्ट करने के लिए किया जा सकता है।[2]
सरल उदाहरण
साधारण एक्सप्रेस डेटा मॉडल चित्र 2 जैसा दिखता है, और कोड इस प्रकार है:
SCHEMA Family;
ENTITY Person
ABSTRACT SUPERTYPE OF (ONEOF (Male, Female));
name: STRING;
mother: OPTIONAL Female;
father: OPTIONAL Male;
END_ENTITY;
ENTITY Female
SUBTYPE OF (Person);
END_ENTITY;
ENTITY Male
SUBTYPE of (Person);
END_ENTITY;
END_SCHEMA;
डेटा मॉडल एक्सप्रेस स्कीमा परिवार के अन्दर संलग्न है। इसमें दो उपप्रकार पुरुष और महिला के साथ सुपरटाइप इकाई व्यक्ति सम्मिलित है। चूँकि व्यक्ति को अमूर्त घोषित किया गया है, केवल (वनऑफ़) उपप्रकार पुरुष या महिला उपस्थित हो सकते हैं। किसी व्यक्ति की प्रत्येक घटना में अनिवार्य नाम विशेषता होती है और वैकल्पिक रूप से माता और पिता का गुण होता है। कुछ इकाई प्रकार की विशेषताओं के लिए पढ़ने की निश्चित शैली होती है:
- महिला व्यक्ति के लिए माँ की भूमिका निभा सकती है
- पुरुष व्यक्ति के लिए पिता की भूमिका निभा सकता है
एक्सप्रेस निर्माण ब्लॉक्स
डेटा प्रकार
एक्सप्रेस एक्सप्रेस-जी टिप्पणी के विशिष्ट डेटा प्रकार प्रतीकों के साथ, समुच्चयप्रकारों की श्रृंखला प्रदान करता है:[2]
- इकाई डेटा प्रकार: यह एक्सप्रेस में सबसे महत्वपूर्ण डेटा प्रकार है। इसे और अधिक विस्तार से नीचे समाविष्ट किया गया है। उप-सुपरटाइप पेड़ और/या विशेषताओं द्वारा इकाई डेटाटाइप दो विधियों से संबंधित हो सकते हैं।
- गणना डेटा प्रकार: गणना मान आरजीबी-गणना के लिए लाल, हरा और नीला जैसे सरल तार होते हैं। इस मामले में कि गणना प्रकार को विस्तरणीय घोषित किया जाता है, इसे अन्य स्कीमाओं में बढ़ाया जा सकता है।
- परिभाषित डेटा प्रकार: यह आगे अन्य समुच्चयप्रकारों को माहिर करता है - उदाहरण के लिए, डेटाटाइप सकारात्मक को परिभाषित करता है जो मान> 0 के साथ पूर्णांक प्रकार का होता है।
- डेटा प्रकार का चयन करें: चयन विभिन्न विकल्पों के बीच विकल्प या विकल्प को परिभाषित करता है। विभिन्न वास्तविकता प्रकारों के बीच सबसे अधिक उपयोग किए जाने वाले चयन हैं। अधिक दुर्लभ ऐसे चयन हैं जिनमें परिभाषित प्रकार सम्मिलित हैं। इस मामले में कि गणना प्रकार को विस्तरणीय घोषित किया जाता है, इसे अन्य स्कीमाओं में बढ़ाया जा सकता है।
- सरल डेटा प्रकार
- स्ट्रिंग: यह सबसे अधिक इस्तेमाल किया जाने वाला सरल प्रकार है। एक्सप्रेस तार किसी भी लम्बाई के हो सकते हैं और इसमें कोई भी वर्ण (आईएसओ 10646 / यूनिकोड) हो सकता है।
- बाइनरी: यह डेटा प्रकार केवल बहुत ही कम उपयोग किया जाता है। इसमें कई बिट्स (बाइट्स नहीं) सम्मिलित हैं। कुछ कार्यान्वयनों के लिए आकार 32 बिट तक सीमित है।
- लॉजिकल: बूलियन डेटाटाइप के समान लॉजिकल में सत्य और असत्य के संभावित मान और इसके अलावा अज्ञात भी होते हैं।
- बूलियन: बूलियन मान सत्य और असत्य के साथ।
- संख्या: संख्या डेटा प्रकार पूर्णांक और वास्तविक दोनों का सुपरटाइप है। अधिकांश कार्यान्वयन वास्तविक प्रकार का प्रतिनिधित्व करने के लिए दोहरे प्रकार का उपयोग करता है, चाहे वास्तविक मान पूर्णांक हो।
- पूर्णांक: एक्सप्रेस पूर्णांक सिद्धांत रूप में किसी भी लम्बाई के हो सकते हैं, लेकिन अधिकांश कार्यान्वयनों ने उन्हें हस्ताक्षरित 32 बिट मान तक सीमित कर दिया।
- वास्तविक: आदर्श रूप से एक्सप्रेस वास्तविक मूल्य सटीकता और आकार में असीमित है। लेकिन व्यवहार में वास्तविक मूल्य को टाइप डबल के फ्लोटिंग पॉइंट मान द्वारा दर्शाया जाता है।
- एकत्रीकरण डेटा प्रकार: एकत्रीकरण_ प्रकार के संभावित प्रकार समुच्चय, बैग, सूची और शृंखला समूह हैं। जबकि सेट और बैग अनियंत्रित हैं, सूची और शृंखला समूह का आदेश दिया गया है। बैग में से अधिक बार विशेष मान हो सकता है, एसईटी के लिए इसकी अनुमति नहीं है। शृंखला समूह एकमात्र समग्र है जिसमें अनसेट सदस्य हो सकते हैं। यह सेट, सूची, बैग के लिए संभव नहीं है। समुच्चय के सदस्य किसी अन्य डेटा प्रकार के हो सकते हैं।
समुच्चयप्रकारों के लिए कुछ सामान्य बातों का उल्लेख किया जाना है।
- निर्मित समुच्चयप्रकारों को एक्सप्रेस स्कीमा के अन्दर परिभाषित किया जा सकता है। वे मुख्य रूप से संस्थाओं को परिभाषित करने और इकाई विशेषताओं और कुल सदस्यों के प्रकार को निर्दिष्ट करने के लिए उपयोग किए जाते हैं।
- डेटा प्रकार का उपयोग पुनरावर्ती विधि से अधिक से अधिक जटिल डेटा प्रकार बनाने के लिए किया जा सकता है। उदा. कुछ संस्थाओं या अन्य समुच्चयप्रकारों के चयन की सरणी की सूची को परिभाषित करना संभव है। यदि इस तरह के डेटाटाइप को परिभाषित करना समझ में आता है तो यह अलग सवाल है।
- एक्सप्रेस कुछ नियमों को परिभाषित करता है कि कैसे डेटाटाइप को और अधिक विशिष्ट बनाया जा सकता है। यह संस्थाओं की फिर से घोषित विशेषताओं के लिए महत्वपूर्ण है।
- सामान्य डेटा प्रकारों का उपयोग प्रक्रियाओं, कार्यों और अमूर्त संस्थाओं के लिए किया जा सकता है।
इकाई-विशेषता
Entity विशेषताएँ संस्थाओं में गुण जोड़ने और इकाई को विशिष्ट भूमिका में दूसरे के साथ जोड़ने की अनुमति देती हैं। विशेषता का नाम भूमिका निर्दिष्ट करता है। अधिकांश डेटा प्रकार सीधे विशेषता के प्रकार के रूप में कार्य कर सकते हैं। इसमें एकत्रीकरण भी सम्मिलित है।
गुण तीन प्रकार के होते हैं, स्पष्ट, व्युत्पन्न और प्रतिलोम गुण। और इन सभी को उपप्रकार में पुनः घोषित किया जा सकता है। इसके अलावा उपप्रकार में व्युत्पन्न के रूप में स्पष्ट विशेषता को फिर से घोषित किया जा सकता है। इस प्रकार के गुणों में कोई अन्य परिवर्तन संभव नहीं है।
- स्पष्ट विशेषताएँ वे हैं जिनका सीधा मान स्टेप-फ़ाइल में दिखाई देता है।
- व्युत्पन्न विशेषताएँ अभिव्यक्ति से अपना मान प्राप्त करती हैं। ज्यादातर मामलों में अभिव्यक्ति इस उदाहरण के अन्य गुणों को संदर्भित करती है। अभिव्यक्ति एक्सप्रेस कार्यों का भी उपयोग कर सकती है।
- व्युत्क्रम विशेषताएँ किसी इकाई में जानकारी नहीं जोड़ती हैं, लेकिन केवल दूसरे छोर से इकाई के लिए स्पष्ट विशेषता का नाम और विवश करती हैं।
एक्सप्रेस-जी संकेतन के विशिष्ट विशेषता प्रतीक:[2]
सुपरटाइप्स और सबटाइप्स
इकाई को या कई अन्य संस्थाओं के उपप्रकार के रूप में परिभाषित किया जा सकता है (एकाधिक वंशानुक्रम की अनुमति है!) सुपरटाइप में कई उपप्रकार हो सकते हैं। बहुत जटिल उप-सुपरटाइप ग्राफ बनाने के लिए स्टेप में यह बहुत ही सामान्य अभ्यास है। कुछ ग्राफ़ 100 और अधिक संस्थाओं को दूसरे से संबंधित करते हैं।
इकाई उदाहरण या तो इकाई (यदि सार नहीं है) या ऐसे उप-सुपरटाइप ग्राफ में संस्थाओं के जटिल संयोजन के लिए बनाया जा सकता है। बड़े रेखांकन के लिए संभावित संयोजनों की संख्या खगोलीय श्रेणियों में बढ़ने की संभावना है। संभावित संयोजनों को प्रतिबंधित करने के लिए विशेष सुपरटेप बाधाओं को पेश किया गया जैसे वनओफ और टोटालोवर। इसके अलावा, इकाई को लागू करने के लिए अमूर्त घोषित किया जा सकता है कि केवल इस इकाई का कोई उदाहरण नहीं बनाया जा सकता है, लेकिन केवल तभी जब इसमें गैर-अमूर्त उप प्रकार हो।
एल्गोरिदमिक बाधाएं
संस्थाओं और परिभाषित डेटा प्रकारों को जहां नियमों के साथ और विवश किया जा सकता है। जहां नियम भी वैश्विक नियमों का हिस्सा हैं। जहां नियम एक अभिव्यक्ति है, जिसका मूल्यांकन सत्य होना चाहिए, अन्यथा एक एक्सप्रेस स्कीमा की जनसंख्या मान्य नहीं है। व्युत्पन्न विशेषताओं की तरह ये अभिव्यक्ति एक्सप्रेस कार्यों को लागू कर सकती हैं, जो आगे एक्सप्रेस प्रक्रियाओं को लागू कर सकती हैं। कार्य और प्रक्रियाएं स्थानीय चर, पैरामीटर और स्थिरांक के साथ जटिल बयान तैयार करने की अनुमति देती हैं - एक प्रोग्रामिंग भाषा के समान ही।
एक्सप्रेस भाषा स्थानीय और वैश्विक नियमों का वर्णन कर सकती है।
उदाहरण के लिए:
ENTITY area_unit
SUBTYPE OF (named_unit);
WHERE
WR1: (SELF\named_unit.dimensions.length_exponent = 2) AND
(SELF\named_unit.dimensions.mass_exponent = 0) AND
(SELF\named_unit.dimensions.time_exponent = 0) AND
(SELF\named_unit.dimensions.electric_current_exponent = 0) AND
(SELF\named_unit.dimensions.
thermodynamic_temperature_exponent = 0) AND
(SELF\named_unit.dimensions.amount_of_substance_exponent = 0) AND
(SELF\named_unit.dimensions.luminous_intensity_exponent = 0);
END_ENTITY; -- area_unit
यह उदाहरण बताता है कि क्षेत्र इकाई की लंबाई का वर्ग मान होना चाहिए
इसके लिए विशेषता आयाम लम्बाई_प्रतिनिधि 2 के बराबर होना चाहिए और बुनियादी एसआई इकाइयों के अन्य सभी प्रतिनिधि 0 होने चाहिए।
और उदाहरण:
TYPE day_in_week_number = INTEGER;
WHERE
WR1: (1 <= SELF) AND (SELF <= 7);
END_TYPE; -- day_in_week_number
अर्थात, इसका अर्थ है कि सप्ताह का मान 7 से अधिक नहीं हो सकता।
और इसलिए, आप अपनी संस्थाओं को कुछ नियमों का वर्णन कर सकते हैं। दिए गए उदाहरणों पर अधिक विवरण आईएसओ 10303-41 में पाया जा सकता है
यह भी देखें
आईएसओ संबंधित विषय
- आईएसओ 10303: कंप्यूटर-व्याख्यात्मक प्रतिनिधित्व और औद्योगिक उत्पाद डेटा के आदान-प्रदान के लिए आईएसओ मानक।
- आईएसओ 10303-21: एएससीआईआई संरचना के साथ स्टेप का डेटा विनिमय रूप
- आईएसओ 10303-22: मानक डेटा एक्सेस इंटरफ़ेस, स्टेप के कार्यान्वयन के विधियों का हिस्सा
- आईएसओ 10303-28: एसटीईपी-एक्सएमएल एक्सप्रेस स्कीमा का प्रतिनिधित्व करने के लिए विस्तरणीय मार्कअप लैंग्वेज (एक्सएमएल) के उपयोग को निर्दिष्ट करता है
- आईएसओ 13584-24: पीएलआईबी का तार्किक मॉडल एक्सप्रेस में निर्दिष्ट है
- आईएसओ 13399: कटिंग टूल डेटा प्रतिनिधित्व और विनिमय के लिए आईएसओ मानक
- इंडस्ट्री फाउंडेशन क्लासेस|आईएसओ/पीएएस 16739: इंडस्ट्री फाउंडेशन क्लासेस एक्सप्रेस में निर्दिष्ट है
- स्टेप (आईएसओ 10303) भागों की सूची
अन्य संबंधित विषय
- सीएडी डेटा एक्सचेंज
- इमारत: इलेक्ट्रॉनिक डिजाइन इंटरचेंज फॉर्मेट
- आरेख
- सामान्य प्रयोजन मॉडलिंग
- मॉडलिंग भाषा
- सिंटैक्स टिप्पणी के साथ
- डीओटी (ग्राफ विवरण भाषा)
संदर्भ
This article incorporates public domain material from the National Institute of Standards and Technology.
- ↑ ISO 10303-11:2004 Industrial automation systems and integration -- Product data representation and exchange -- Part 11: Description methods: The EXPRESS language reference manual
- ↑ 2.0 2.1 2.2 2.3 Michael R. McCaleb (1999). "A Conceptual Data Model of Datum Systems". National Institute of Standards and Technology. August 1999.
- ↑ ISO International Standard 10303-11:1994, Industrial automation systems and integration — Product data representation andexchange — Part 11: Description methods: The EXPRESS language reference manual, International Organization for Standardization, Geneva, Switzerland (1994).
- ↑ 4 EXPRESS-G Language Overview Archived 2008-11-09 at the Wayback Machine. Accessed 9 Nov 2008.
- ↑ For information on the EXPRESS-G notation, consult Annex B of the EXPRESS Language Reference Manual (ISO 10303-11)
अग्रिम पठन
- आईएसओ 10303, the main page for स्टेप, the Standard for the Exchange of Product model data
- Douglas A. Schenck and Peter R. Wilson, Information Modeling the EXPRESS Way, Oxford University Press, 1993, ISBN 978-0-19-508714-7