78 lines
2.7 KiB
Mathematica
78 lines
2.7 KiB
Mathematica
LEXDFSI ; ISL Default Filter - Include Semantics ; 09-23-96
|
|
;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
|
|
;
|
|
;
|
|
; Called from LEXDFSB (set the INCLUDE/EXCLUDE string)
|
|
;
|
|
; LEXC Counter
|
|
; LEXCC Semantic Class Mnemonic
|
|
; LEXCCN Semantic Class Counter
|
|
; LEXCCOK Semantic Class OK (Y/N)
|
|
; LEXCCR Semantic Class Pointer in #757.11
|
|
; LEXF Flag for user input
|
|
; LEXS Semantic Type Sources from #757.03
|
|
; LEXX String returned to LEXDSTS
|
|
;
|
|
EN(LEXX) ; Semantic Type string INCLUDE/EXCLUDE
|
|
K LEXA N LEXF S LEXX="",LEXF=1
|
|
D CLASS Q LEXX
|
|
;
|
|
CLASS ; Semantic Classes
|
|
N LEXCCOK,LEXCC,LEXCCR,LEXCCN S (LEXCCOK,LEXCC)=""
|
|
F S LEXCC=$O(^LEX(757.11,"B",LEXCC)) Q:LEXCC=""!(LEXCCOK[U) D
|
|
. S LEXCCOK=0 I LEXCC'="UNK" D Q:LEXCCOK[U
|
|
. . S LEXCCR=$$IEN(LEXCC),LEXCCN=+($G(LEXCCN))+1
|
|
. . W !!,$J(LEXCCN,2),": ",$$CC(LEXCCR)," ",$$NAME(LEXCCR),!
|
|
. . D SY(LEXCCR),CAT(LEXCCR)
|
|
. . D:+($G(LEXF)) INCLUDE I LEXCCOK D SAVE(LEXCCR)
|
|
. Q:LEXCCOK["^" I LEXCCOK D EXCLUDE
|
|
I +($G(LEXF))>0 S LEXX=LEXCCOK
|
|
Q
|
|
;
|
|
SY(LEXX) ; List Classification Systems
|
|
N LEXS,LEXC Q:'$D(^LEX(757.11,LEXX,2,"B")) S LEXS="",LEXC=0
|
|
W !!,?4,"This Semantic Class contains terms from, or mapped to,"
|
|
W !,?4,"the following classification systems: ",!
|
|
F S LEXS=$O(^LEX(757.11,LEXX,2,"B",LEXS)) Q:LEXS="" D
|
|
. S LEXC=LEXC+1 W:LEXC=1 ! W:LEXC=1 ?8,LEXS
|
|
. W:LEXC=2 ?32,LEXS W:LEXC=3 ?56,LEXS S:LEXC=3 LEXC=0
|
|
W ! Q
|
|
CAT(LEXX) ; List semantic types
|
|
N LEXC S LEXC=0 Q:'$D(^LEX(757.11,LEXX,1,0))
|
|
W !!,?4,"Semantic Types: ",!
|
|
F S LEXC=$O(^LEX(757.11,LEXX,1,LEXC)) Q:+LEXC=0 D
|
|
. W !,?4,^LEX(757.11,LEXX,1,LEXC,0)
|
|
Q
|
|
CC(LEXX) ; Semantic Class Mnemonic
|
|
Q $P(^LEX(757.11,LEXX,0),U,1)
|
|
NAME(LEXX) ; Semantic Class Name
|
|
Q $P(^LEX(757.11,LEXX,0),U,2)
|
|
IEN(LEXX) ; Internal Entry number based on Semantic Class
|
|
S LEXX=$O(^LEX(757.11,"B",LEXX,0)) Q LEXX
|
|
;
|
|
INCLUDE ; Include a Semantic Classes
|
|
W ! N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
|
S DIR("A")="Include this class: "
|
|
S (DIR("??"),DIR("?"))="^D INH^LEXDFSI"
|
|
S DIR("B")="YES",DIR(0)="YAO"
|
|
D ^DIR K DIR S LEXCCOK=Y Q
|
|
;
|
|
INH ; Include help
|
|
W !!," Semantic Class: "
|
|
W $$CC(LEXCCR)," - ",$$NAME(LEXCCR) Q
|
|
;
|
|
EXCLUDE ; Exclude Semantic Types
|
|
W ! N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
|
|
S DIR("A",1)="Do you want to ""exclude"" any of"
|
|
S DIR("A")="the semantic types listed above: "
|
|
S DIR("B")="NO",(DIR("?"),DIR("??"))="^D EXH^LEXDFSI",DIR(0)="YAO"
|
|
D ^DIR K DIR S LEXCCOK=0 S:Y["^^" LEXCCOK=Y D:+Y>0 EN^LEXDFSE(LEXCCR) Q
|
|
EXH ; Exclude help
|
|
W !!,"By including the semantical class ",$$CC(LEXCCR)
|
|
W " you will also be including"
|
|
W !,"all of the semantical types contained within the class." Q
|
|
;
|
|
SAVE(LEXX) ; Save Semantic Class
|
|
Q:LEXCCOK[U N LEXC S LEXCCOK=1,LEXC=$G(LEXA(0))+1
|
|
S LEXA(0)=LEXC,LEXA(LEXC,0)=$$CC(LEXX),LEXA(LEXC,1,0)=0,LEXA(LEXC,2,0)=0 Q
|