|
|
1.1 root 1: %\documentstyle [11pt,ucl-rn-pic,tgrind,a4] {article}
2: \documentstyle [11pt,ucl-rn,tgrind] {article}
3: \author {S.E. Kille}
4: \date {June 1990}
5: \rnnumber{RN/90/29}
6: \title {Using the OSI Directory to achieve \\ User Friendly Naming}
7: \begin {document}
8: \maketitle
9: \begin {abstract}
10: The OSI Directory has user friendly naming as a goal. A simple minded usage
11: of the directory does not achieve this. Two aspects not achieved are:
12:
13: \begin{itemize}
14: \item A user oriented notation
15: \item Guessability
16: \end{itemize}
17:
18: This proposal sets out some conventions for representing names in a friendly
19: manner, and shows how this can be used to achieve really friendly naming.
20: \end {abstract}
21:
22: \tableofcontents
23: \listoffigures
24: \listoftables
25: \pagebreak
26:
27: \section {Why a notation is needed}
28:
29: Many OSI Applications make use of Distinguished Names (DN) as defined in the
30: OSI Directory \cite{CCITT.Directory}.
31: The main reason for having a notation for
32: is for interacting with a user
33: interface. This proposal is coming dangerously close to the sin of
34: standardising interfaces. However, there are aspects of presentation which
35: it is desirable to standardise.
36:
37: In very many cases, a user will be required to
38: input a name. This notation is designed to allow this to happen in a
39: uniform manner across many user interfaces. The intention is that
40: the name can just be typed in. There should not be any need to engage in
41: form filling or complex dialogue.
42:
43: A secondary goal, is to have a common
44: format to be able to unambiguously refer to names.
45: This notation should {\em not} be needed to write on business cards or in
46: the minutes of meetings. If this is the case, the directory has failed to a
47: large extent. It should be possible to take the ``human'' description given
48: at the meeting, and use it directly. The means in which this happens will
49: become clear later. In practice, it will often be useful to explicitly write
50: down directory names, even though it is not strictly needed.
51:
52: \section {A notation for Distinguished Name}
53:
54: \subsection {Goals}
55:
56: The following goals are laid out:
57:
58: \begin {itemize}
59: \item It should be intuitive for the majority of names encountered
60: \item It should be fully general
61: \item It should be possible to lay it out in a number of ways
62: \end {itemize}
63:
64: \subsection {Informal definition}
65:
66: This notation is designed to be convenient for common forms of name.
67: Some examples are given.
68: My directory (distinguished) name would be written:
69:
70: \begin{verbatim}
71: Steve Kille, Computer Science, University College London, GB
72: \end{verbatim}
73:
74: This may be folded, perhaps to display in multi-column format.
75: For example:
76:
77: \begin {verbatim}
78: Steve Kille,
79: Computer Science,
80: University College London,
81: GB
82: \end{verbatim}
83:
84: or
85:
86: \begin {verbatim}
87: Steve Kille
88: Computer Science
89: University College London, GB
90: \end{verbatim}
91:
92: Another name might be:
93:
94:
95: \begin {verbatim}
96: Christian Huitema, INRIA, FR
97: \end{verbatim}
98:
99: An example, showing how different attribute types are handled:
100:
101:
102: \begin {verbatim}
103: James Hacker
104: locality=Basingstoke
105: Widget Inc
106: GB
107: \end{verbatim}
108:
109: An example showing quoting of a comma in an Organisation name:
110:
111: \begin {verbatim}
112: L. Eagle, "Sue, Grabbit and Runn", GB
113: \end{verbatim}
114:
115:
116: \subsection {Formal definition}
117:
118:
119: The structure is specified in a BNF grammar in Figure~\ref{BNF}.
120:
121: \begin{figure}
122: \begin {verbatim}
123: <name> ::= <name-component>
124: | <name-component> <spaced-separator> <name>
125:
126: <spaced-separator> ::= <optional-space>
127: <separator>
128: <optional-space>
129:
130: <separator> ::= "," ( <CR> )
131: | <CR>
132:
133: <optional-space> ::= *( " " )
134:
135: <name-component> ::= <attribute>
136: | <attribute> <optional-space> "+" ( <CR> )
137: <optional-space> <name-component>
138:
139: <attribute> ::= <string>
140: | <key> <optional-space> "=" <optional-space> <string>
141:
142: <key> ::= 1*( <keychar> )
143: <keychar> ::= letters, numbers, and space
144:
145: <string> ::= *( <stringchar> | <pair> )
146: | '"' *( <stringchar> | "," | "+" | "=" | <CR> ) '"'
147:
148: <special> ::= "," | "=" | '"' | <CR> | "\" | "+"
149: <pair> ::= "\" <special>
150: <stringchar> ::= any char except <special>
151:
152: \end{verbatim}
153: \caption {BNF Grammar for Distinguished and Purported Name}
154: \label {BNF}
155: \end{figure}
156:
157:
158: The quoting mechanism is used for the following cases:
159:
160: \begin {itemize}
161: \item Strings containing ``,'', ``+'', ``=''or ``\verb|"|'' or \verb|<CR>|
162: \item Strings with leading or trailing spaces
163: \item Strings containing consecutive spaces
164: \end {itemize}
165:
166: A list of valid keywords for well known attribute types used in naming is
167: given in Table~\ref{keywords}. This is a list of keywords which must be
168: supported. These are chosen because they appear in common forms of name,
169: and can do so in a place which does not correspond to the default schema
170: used.
171: If other attributes are used for naming, this can always be
172: extended locally.
173:
174: \begin{table}
175: \begin{center}
176: \begin {tabular}{l l}
177: Key & Attribute (X.520 keys) \\
178: \hline
179: Locality & LocalityName \\
180: Area & LocalityName \\
181: Organisation & OrganizationName \\
182: Organization & OrganizationName \\
183: \end {tabular}
184: \end{center}
185: \caption {Standardised Keywords}
186: \label {keywords}
187: \end{table}
188:
189:
190: Only string type attributes are
191: considered, but other attribute syntaxes could be supported locally.
192: It is assumed that the interface will translate from the supplied string
193: into PrintableString or T.61.
194:
195: The \verb|"+"| notation is used to specify multi-component RDNs. In this
196: case, the types for attributes in the RDN must be explicit.
197:
198: The name is presented/input in a little-endian order. If no type are given,
199: a type hierarchy (schema) is assumed as:
200:
201: \begin {verbatim}
202: Common Name, (((Organisational Unit)*, Organisation,) Country)
203: \end{verbatim}
204:
205: Explicitly typed RDNs may be inserted into this hierarchy. Two types of
206: object are named. They are distinguished by context in the application:
207:
208: \begin{description}
209: \item[Common Name Object] Typically a leaf object and a person. In this
210: case, the LHS RDN is assumed to be common name, and other RDNs follow the
211: hierarchy.
212:
213: \item[Other Object] Typically a non-leaf object.
214: \end{description}
215:
216:
217: \section {Purported names}
218:
219:
220: A purported name is what a user supplies to an interface for resolution
221: into one or more distinguished names.
222: The same
223: notation is used as for distinguished name.
224: A purported name may differ from a distinguished name in a number of ways
225: which are itemised below.
226:
227: Typically, an
228: interface will display a distinguished name, using the distinguished name
229: notation. However, it may display a purported name, as this will be more
230: pleasing to the user. The most common example of this is where the higher
231: components of the distinguished name are not displayed (abbreviation).
232:
233: The ways in which a purported name may vary from a distinguished name are
234: now described:
235:
236: \begin {description}
237: \item[Abbreviation] Some of the more significant components of the DN will
238: be omitted, and then defaulted in some way (e.g., relative to a local
239: context). For example:
240:
241: \begin {verbatim}
242: Steve Kille
243: \end{verbatim}
244:
245: \item[Component Omission]
246: An intermediate component of the name may be omitted. Typically this will
247: be an organisational unit. For example:
248:
249: \begin {verbatim}
250: Steve Kille, University College London, GB
251: \end{verbatim}
252:
253:
254: In some cases, this can be combined with abbreviation. For example:
255:
256: \begin {verbatim}
257: Steve Kille, University College London
258: \end{verbatim}
259:
260: \item[Approximation] Approximate renditions or alternate values
261: of one or more of the components
262: will be supplied. For example:
263:
264: \begin {verbatim}
265: Stephen Kille, CS, UCL, GB
266: \end{verbatim}
267:
268: or
269:
270: \begin{verbatim}
271: Steve Keill, Comp Sci, Univarstiy College London, GB
272: \end{verbatim}
273:
274:
275: \item[Friendly Country] A ``friendly country name'' can be used instead of
276: the ISO 3166 two letter code. For example: UK; USA; France; Deutchland.
277:
278: \item[Type Changing] A type may be omitted, even where it does not follow
279: the hierarchy. Type variants can be explored.
280: The previous distinguished name:
281: \begin {verbatim}
282: James Hacker
283: locality=Basingstoke
284: Widget Inc
285: GB
286: \end{verbatim}
287:
288: Could be represented by the purported name:
289:
290: \begin {verbatim}
291: James Hacker
292: Basingstoke
293: Widget Inc
294: GB
295: \end{verbatim}
296:
297:
298: \end {description}
299:
300:
301: \section {Matching a purported name}
302:
303: The major utility of the purported name is to provide the important ``user
304: friendly'' characteristic of guessability. A user will supply a purported
305: name to a user interface, and this will be resolved onto a distinguished
306: name.
307: When a user supplies a purported name there is a need to derive the DN. In
308: most cases, it should be possible to derive a single name from the purported
309: name. In some cases, ambiguities will arise and the user will be prompted
310: to select from a multiple matches. This should also be the case where a
311: component of the name did not ``match very well''.
312:
313: There is an assumption that the user will simply enter the name correctly.
314: The purported name variants are designed to make this happen! There is no
315: need for fancy window based interfaces or form filling for many applications
316: of the directory. Note that the fancy interfaces still have a role for
317: browsing, and for more complex matching. This type of naming is to deal
318: with cases where information on a known user is desired and keyed on the
319: user's name.
320:
321: \subsection {Environment}
322:
323:
324:
325:
326: All matches occur in the context of a local environment.
327: The local environment defines a
328: sequence of name of a non-leaf objects in the DIT.
329: This environment effectively defines a list of acceptable name abbreviations
330: where the DUA is employed. It also defines an order in which to operate.
331:
332:
333: This list is defined in the context of the number of name components
334: supplied. This allows varying heuristics, depending on the environment, to
335: make the approach have the ``right'' behaviour.
336:
337:
338: In most cases, the environment will start at a local point in the DIT, and
339: move upwards. Examples are given in Tables~\ref{e1} and~\ref{e2}.
340: Table~\ref{e1} shows an example for a typical local DUA, which has the
341: following characteristics:
342:
343: \begin{description}
344: \item[One component] Assumed first to be a user in the department, then a
345: user or department within the university, the a national organisation, and
346: finally a country.
347: \item[Two components] Most significant component is first assumed to be a
348: national organisation, then a department (this might be reversed in some
349: organisations), and finally a country.
350: \item[Three or more components] The most significant component is first
351: assumed to be a country, then a national organisation, and finally a
352: department.
353: \end{description}
354:
355:
356:
357: \begin{table}
358: \begin{center}
359: \begin{tabular}{l l}
360: Number of & Environment \\
361: Components & \\
362: \hline
363: 1 & Physics, University College London, GB \\
364: & University College London, GB \\
365: & GB \\
366: & -- \\
367: \hline
368: 2 & GB \\
369: & University College London, GB \\
370: & -- \\
371: \hline
372: 3+ & -- \\
373: & GB \\
374: & University College London, GB \\
375:
376: \end{tabular}
377: \end{center}
378: \caption {Local environment for private DUA}
379: \label{e1}
380: \end{table}
381:
382: \begin{table}
383: \begin{center}
384: \begin{tabular}{l l}
385: Number of & Environment \\
386: Components & \\
387: \hline
388: 1,2 & US \\
389: & CS \\
390: & -- \\
391: \hline
392: 3+ & -- \\
393: & US \\
394: & CA \\
395: \end{tabular}
396: \end{center}
397: \caption {Local environment for US Public DUA}
398: \label{e2}
399: \end{table}
400:
401:
402: \subsection {Matching}
403:
404:
405: A purported name will be supplied, usually with a small number of components.
406: This will be matched in the context of an environment.
407:
408: Where there are multiple components to be matched, these should be matched
409: sequentially. If an unambiguous DN is determined, the match continues as if
410: the full DN had been supplied.
411: For example if
412:
413: \begin{quote}
414: \begin{verbatim}
415: Stephen Kille, UCL
416: \end{verbatim}
417: \end{quote}
418:
419: is being matched in the context of environment \verb|GB|, first \verb|UCL|
420: is resolved to the distinguished name:
421:
422: \begin{quote}
423: \begin{verbatim}
424: University College London, GB
425: \end{verbatim}
426: \end{quote}
427:
428: Then the next component of the purported name is taken to determine the
429: final name.
430: If there is an ambiguity (e.g., if \verb|UCL| had made two matches,
431: both paths are explored to see if the ambiguity can
432: be resolved. Eventually a set of names will be passed back to the user.
433:
434:
435: Each component of the environment is taken in turn.
436: If the purported name has more
437: components than the maximum depth, the environment element is skipped.
438: The advantage of this will be seen in the example given later.
439:
440:
441:
442:
443:
444:
445: A match of a name is considered to have three levels:
446:
447: \begin{description}
448: \item[Exact] A DN is specified exactly
449: \item[Good]
450: Initially, a match should be considered good if
451: it is unambiguous, and exactly matches an attribute value in the entry.
452: For human names, a looser metric is probably desirable (e.g., \verb|S Kille|
453: should be a good match of \verb|S. Kille|, \verb|S.E. Kille| or \verb|Steve
454: Kille| even if these are not explicit alternate values).
455: \item[Poor] Any other substring or approximate match
456: \end{description}
457:
458: Following a match, the reference can be followed, or the user prompted.
459: If there are multiple matches, more than one path may be followed.
460: There is also a shift/reduce type of choice: should any partial matches be
461: followed or should the next element of the environment be tried.
462: The following heuristics are suggested, which may be modified in the light
463: of experience. The overall aim is to resolve cleanly specified names with a
464: minimum of fuss, but give sufficient user control to prevent undue searching
465: and delay.
466:
467: \begin{enumerate}
468: \item Always follow an exact match.
469: \item Follow all good matches if there are no exact matches.
470: \item If there are only poor matches, prompt the user. If the user accepts
471: one or more match, they can be considered as good. If all are rejected,
472: this can be treated as no matches.
473: \item Automatically move to the next element of the environment if no
474: matches are found.
475: \end{enumerate}
476:
477: When the final component is matched, a set of names will be identified.
478: If none are identified, proceed to the next environment element.
479: If the user rejects all of the names, processing of the next environment
480: element should be confirmed.
481:
482: The exact approach to matching will depend on the level of the tree at which
483: matching is being done.
484: We can now consider how attributes are matched at various levels of the DIT.
485:
486:
487: There is an issue of approximate matching. Sometimes it helps, and
488: sometimes just returns many spurious matches. When a search is requested,
489: all relevant attributes should be returned, so that distinguished and
490: non-distinguished values can be looked at. This will allow a distinction to
491: be made between good and poor matches. It is important that where, for
492: example, an acronym exactly matches an organisation, that the user is not
493: prompted about other organisations where it matches as a substring.
494:
495: \subsection {Top Level}
496:
497: In this case, a match is being done at the root of the DIT.
498: Three approaches are suggested, dependent on the length of supplied name.
499: All lead to a single level search of the top level of the DIT.
500:
501: \begin{description}
502: \item[Exactly 2] This is assumed to be a 3166 two letter country code, or an exact
503: match on a friendly country or organisation (e.g., UK or UN).
504: Do exact match on country and friendly country.
505: \item[Greater than 2] Make
506: an approximate and substring match on friendly country and organisation.
507:
508: \end{description}
509:
510:
511:
512:
513:
514:
515: \subsection {Intermediate Level}
516:
517: Once the root level has been dealt with, intermediate levels will be looking
518: for organisational components (Organisation, Locality, Org Unit).
519: In some cases, private schema control will allow the system to determine
520: which is at the next level. In general this will not be possible.
521: In each case, make a substring and approximate match search of one level.
522: The choice depends on the base object used in the search.
523:
524: \begin {enumerate}
525: \item If DN has no Organisation or Locality, filter on Organisation and
526: Locality.
527: \item If DN has Org Unit, filter on Org Unit.
528: \item If DN has Organisation, filter on Locality and Org Unit.
529: \item If DN has Locality, filter on Organisation.
530: \end {enumerate}
531:
532: These allow some optimisation, based on legal choices of schema. Keeping
533: filters short is usually desirable to improve performance.
534:
535: A few examples of this, where a base object has been determined (either by
536: being the environment or by partial resolution of a purported name), and the
537: next element of a purported name is being considered. This will generate a
538: single level search. What varies is the types being filtered against.
539: If the DN is:
540:
541: \begin{verbatim}
542: University College London, GB
543: \end{verbatim}
544:
545: The search should be for Org Unit or Locality. If the DN is:
546:
547: \begin{verbatim}
548: Organisation=UN
549: \end{verbatim}
550:
551: the search should be for Org Unit or Locality.
552:
553: There may be some improvements with respect to very short keys. Not making
554: approximate or substring matches in these cases seems sensible\footnote{It
555: might be desirable to allow ``\verb|*|'' as a part of the purported name
556: notation}.
557:
558: \subsection {Bottom level}
559:
560: The ``Bottom Level'' is to deal with leaf entries in the DIT. This will
561: often be a person, but may also be a role, an application entity or
562: something else.
563:
564: The last component of a purported name may either reference a leaf or
565: non-leaf. For this reason, {\em both} should be tested for.
566: As a heuristic, if the base object for the search has two or more
567: components it should be tested first as a bottom level name and then
568: intermediate. Reverse this for shorter names. This optimises for the
569: (normal) case
570: of non-leaves high up the tree and leaves low down the tree.
571:
572: For bottom level names, make an
573: approximate and substring match against Common Name, Surname, and User ID.
574: Where common name is looked for,
575: A full subtree search will be used when at
576: the second level of the DIT or lower, otherwise a single level search.
577:
578: For example, if I have resolved a purported name to the distinguished name
579:
580: \begin{verbatim}
581: University College London, GB
582: \end{verbatim}
583:
584: and have a single component \verb|Bloggs|, this will generate a subtree
585: search.
586:
587: \section{Examples}
588:
589:
590: This is all somewhat confusing, and a few examples are given. These are all
591: in the context of the environment shown in Table~\ref{e1} on
592: Page~\pageref{e1}.
593:
594: If ``Joe Bloggs'' is supplied, a subtree search of
595:
596: \begin{verbatim}
597: Physics, University College London, GB
598: \end{verbatim}
599:
600: will be made, and the user prompted for ``Joseph Z. Bloggs'' as the only
601: possible match.
602:
603: If ``Computer Science'' is supplied, first
604:
605: \begin{verbatim}
606: Physics, University College London, GB
607: \end{verbatim}
608:
609: will be searched, and the user will reject the approximate match of ``Colin
610: Skin''. Then a subtree search of
611:
612: \begin{verbatim}
613: University College London, GB
614: \end{verbatim}
615:
616: will be made, looking for a person. Then a single level search will be made
617: looking for Org Unit, and
618:
619: \begin{verbatim}
620: Computer Science, University College London, GB
621: \end{verbatim}
622:
623: will be returned without prompting (exact match).
624:
625:
626: Supplying ``Steve Kille'' will lead to a failed subtree search of
627:
628: \begin{verbatim}
629: Physics, University College London, GB
630: \end{verbatim}
631:
632: and lead straight to a subtree search of
633:
634: \begin{verbatim}
635: University College London, GB
636: \end{verbatim}
637:
638: This will lead to an exact value match, and so a single entry returned
639: without prompting.
640:
641:
642: If ``Andrew Findlay, Brunel'' is supplied, the first element of the
643: environment will be skipped, single level search of ``Brunel'' under ``GB'
644: will find:
645:
646: \begin{verbatim}
647: Brunel University, GB
648: \end{verbatim}
649:
650: and a subtree search for ``A Findlay'' initiated. This will yield
651:
652: \begin{verbatim}
653: Andrew Findlay, Computing and Media Services, Brunel University, GB
654:
655: Dr A J Findlay, Manufacturing and Engineering Systems,
656: Brunel University, GB
657: \end{verbatim}
658:
659:
660: and the user will be prompted with a choice.
661:
662:
663: This approach shows how a simple format of this nature will ``do the right
664: thing'' in many cases.
665:
666: \section {Support required from the standard}
667:
668: Fortunately, all that is needed is there! It would be useful to have
669: ``friendly country name'' as a standard attribute.
670:
671:
672: \section{Support of OSI Services}
673:
674: The major focus of this work has been to provide a mechanism for identifying
675: Organisations and Users. A related function is to identify applications.
676: Where the Application is identified by an AET (Application Entity Title)
677: with an RDN of Common Name, this proposal leads to a natural usage.
678: For example, if a filestore in named ``gannet'', then this could easily be
679: identified by the name:
680:
681: \begin{verbatim}
682: Gannet, Computer Laboratory, Cambridge University, GB
683: \end{verbatim}
684:
685: In normal usage, this might lead to access (using a purported name) of:
686:
687: \begin{verbatim}
688: FTAM gannet,cambridge
689: \end{verbatim}
690:
691: A second type of access is where the user identifies an Organisation
692: (Organisational Unit), and expects to obtain a default service.
693: The service is implied by the application, and should not require any
694: additional naming as far as the user is concerned. It is proposed that this
695: is supported by User Friendly Naming in the following way.
696:
697: \begin{enumerate}
698: \item Determine that the purported name identifies a non-leaf object, which is
699: of object class Organisation or Organistaional Unit or Locality.
700:
701: \item Perform a {\em single level} search for Application Entities which
702: support the required application contexts. This assumes that all services
703: which are supporting default access for the organisation are registred at
704: one level below (possibly by the use of aliaes), and that other services
705: (specific machines or parts of the organisation) are represented further
706: down the tree. This seems to be a reasonable layout, and its utility can be
707: evaluated by experiment.
708:
709: \end{enumerate}
710:
711: \section {Experience}
712:
713: An experimental implementation of this has been written by Colin Robbins.
714: The example in Figure~\ref{usage} shows that it can be very effective at
715: locating known individuals with a minimum of effort.
716:
717: \begin{figure}
718: \begin{small}
719: \begin{verbatim}
720: -> t hales, csiro, australia
721: Found good match(es) for 'australia'
722: Found exact match(es) for 'csiro'
723: Please select from the following:
724: Trevor Hales, OC, HPCC, DIT, IICT, CSIRO, AU [y/n] ? y
725: The following were matched...
726: Trevor Hales, OC, HPCC, DIT, IICT, CSIRO, AU
727:
728: -> g michaelson, queensland, au
729: Found exact match(es) for 'au'
730: Please select from the following:
731: University of Queensland, AU [y/n] ? y
732: Axolotl, AU [y/n] ? n
733: Please select from the following:
734: George Michaelson, Prentice Computer Centre, University of Queensland, AU
735: [y/n] ? y
736: Manager, University of Queensland, AU [y/n] ? n
737: The following were matched...
738: George Michaelson, Prentice Computer Centre, University of Queensland, AU
739:
740: -> r needham, cambridge
741: Found good match(es) for 'cambridge'
742: Please select from the following:
743: Roger Needham, Computer Lab, Cambridge University [y/n] ? y
744: The following were matched...
745: Roger Needham, Computer Lab, Cambridge University
746:
747: -> kirstein
748: Found good match(es) for 'kirstein'
749: The following were matched...
750: Peter Kirstein
751:
752:
753: \end{verbatim}
754: \end{small}
755: \caption {Example usage of User Friendly Naming}
756: \label{usage}
757: \end{figure}
758:
759:
760: \section {Relationship to other work}
761:
762: Colin Robbin's work on the interface ``Tom'' and implementation of a
763: distribution list interface strongly influenced this proposal.
764:
765: Some of the ideas used here originally came from a UK Proposal to the
766: ISO/CCITT Directory Group on ``New Name Forms'' \cite{NNF}. This defined,
767: and showed how to implement, four different types of names:
768:
769: \begin{description}
770: \item[Typed and Ordered] The current Distinguished Name is a restricted
771: example of this type of name.
772:
773: \item[Untyped and Ordered] This is the type of name proposed here (with some
774: extensions to allow optional typing). It is seen as meeting the key user
775: requirement of disliking typed names, and is efficient to implement.
776:
777: \item[Typed and Unordered] This sort of name is proposed by others as the
778: key basis for user friendly naming. Neufeld shows how X.500 can be used to
779: provide this \cite{Neufeld.Descr}, and Peterson proposes the Profile system
780: to provide this \cite{Profile.2}. The author contends that whilst typed
781: naming is interesting for some types of searching (e.g., yellow page
782: searching), it is less desirable for
783: naming objects. This is born out by operational experience with OSI
784: Directories \cite{THORN.RARE.LSPX}.
785:
786: \item[Untyped and Unordered] Surprisingly this form of name can be supported
787: quite easily. However, a considerably gain in efficiency can be achieved by
788: requiring ordering. In practice, users can supply this easily. Therefore,
789: this type of name is not proposed.
790: \end{description}
791:
792:
793: \section {Proposal}
794:
795: This approach should be tested out experimentally, with the QUIPU
796: implementation. This will involve:
797:
798: \begin{itemize}
799: \item An interface to generate strings in this form from DNs, with control over
800: \begin{itemize}
801: \item Folding (line, column, or max width)
802: \item Presence of commas at EOL
803: \item A DN to be abbreviated against
804: \end{itemize}
805:
806: \item A routine to resolve a purported name in the context of an environment.
807: \end{itemize}
808:
809: The Distribution List interface seems to be an ideal system to experiment
810: with.
811:
812: A specification should then be progressed, and made widely available.
813: Perhaps as a RARE Document or RFC.
814:
815: \bibliographystyle{alpha}
816: \bibliography{../../bib/sek}
817:
818: \pagebreak
819: \appendix
820:
821: \section{Pseudo-code for the matching algorithm}
822:
823: The following pseudo-code is intended to clarify the matching algorithm.
824: The language uses ASN.1 data types, with flow control `C'-like, but with
825: keywords upper--cased.
826:
827: \tagrindfile{algo}{Matching Algorithm}{algo}
828:
829:
830:
831: \end {document}
832:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.