Trailing-Edge
-
PDP-10 Archives
-
decuslib20-01
-
decus/20-0004/tell.tty
There are no other files named tell.tty in the archive.
This was done by Bob Boyer @ SRI
DUMPING MASTERSCOPE'S KNOWLEDGE
To obtain a file containing a complete dumping of all of Masterscope's
information about a selected set of atoms and a selected set of
Masterscope relations, one may use the function tellabout,
or the simpler tellabouteveryone, or the simple basistellabout.
tellabout[subjects; universe; omitquestions; dumpfile]
subjects is a list of atoms about which information is
desired. universe is a list of those atoms which
will be printed when related to a subject.
omitquestions is a list of positive integers, the numbers
of questions that are not to be asked. dumpfile is
the file to which output is to be directed. For each
subject in subjects (in alphbetical order) there will be
printed an entry that contains for every question produced
by ennumeratequestions excepting those on omitquestions
all of the members of the universe which make the question
true when subject is substituted for * in the question and
the member of the universe is substituted for Who or Whom.
tellabout assumes that Masterscope has previously been invoked
to ANALYZE those functions which are the source of
the desired information. At the end of the file,
tellabout prints the questions asked and the universe.
dumpfile is both opened and closed.
ennumeratequestions[]
prints to the terminal a list of questions, each prefixed
by an integer. The questions exhaust the list of simple
relations that Masterscope stores. Many of the questions
are overlapping. For example, the question Who smashes X?
is answered by the union of the answers to Who smashes
X locally, globally, and freely? The details of
overlapping may be gleaned from the manual section on RELATIONS
or precisely determined by inspection of the list
msdatabaselst.
Currently, ennumeratequestions prints:
1. Whom does * bind?
2. Whom does * bind locally?
3. Whom does * bind as an argument?
4. Whom does * call?
5. Whom does * use?
6. Whom does * use freely?
7. Whom does * use locally?
8. Whom does * use globally?
9. Whom does * use as a record?
10. Whom does * use as a field?
11. Whom does * use as a property?
12. Whom does * use as a Clisp I.S.operator?
13. Whom does * set?
14. Whom does * set freely?
15. Whom does * set locally?
16. Whom does * set globally?
17. Whom does * smash?
18. Whom does * smash freely?
19. Whom does * smash locally?
20. Whom does * smash globally?
21. Whom does * test?
22. Whom does * test freely?
23. Whom does * test locally?
24. Whom does * test globally?
25. Whom does * reference?
26. Whom does * reference freely?
27. Whom does * reference locally?
28. Whom does * reference globally?
29. Who binds *?
30. Who binds * locally?
31. Who binds * as an argument?
32. Who calls *?
33. Who uses *?
34. Who uses * freely?
35. Who uses * locally?
36. Who uses * globally?
37. Who uses * as a record?
38. Who uses * as a field?
39. Who uses * as a property?
40. Who uses * as a Clisp I.S.operator?
41. Who sets *?
42. Who sets * freely?
43. Who sets * locally?
44. Who sets * globally?
45. Who smashs *?
46. Who smashs * freely?
47. Who smashs * locally?
48. Who smashs * globally?
49. Who tests *?
50. Who tests * freely?
51. Who tests * locally?
52. Who tests * globally?
53. Who references *?
54. Who references * freely?
55. Who references * locally?
56. Who references * globally?
reasonableomissions
the variable reasonableomissions contains the numbers of
many questions whose answers are supersets of
simpler questions. The only information lost by omission of
these questions concerns the use of I.S.OPR's.
everyone[]
returns with a list of everything that Masterscope has seen
excepting system functions and I.S.OPRS. In particular,
it returns the result of appending the answers to the
Masterscope questions:
1. WHO IS KNOWN?
2. WHO IS USED?
3. WHO IS USED AS A PROPERTY?
4. WHO IS USED AS A FIELD?
5. WHO IS USED AS A RECORD?
tellabouteveryone[omitquestions, dumpfile]
calls tellabout[everyone[], everyone[], dumpfile].
basistellabout[dumpfile]
calls tellabouteveryone[reasonableomissions, dumpfile].
If you have analyzed the functions that you are interested
in, then basistellabout will produce an exhaustive
but not overly redundant dump of all the simple
relational information Masterscope has stored.
A scenario for obtaining the information that
Masterscope can extract from a system built from
the files (FILE1 FILE2 FILE3) would then be
MASTERSCOPE((ANALYZE ANY CONTAINED IN '(FILE1 FILE2 FILE3)))
BASISTELLABOUT(FILE1-FILE2-FILE3.DUMP)
If Masterscope has previously analyzed
functions from other files which one does not want
included in the dump, he should first call
MASTERSCOPE((ERASE)).