% This sort hierarchy for linguistic objects is very closely based on % that of Pollard & Sag, Head-Driven Phrase-Structure Grammar, 1994. % (HPSG for short). The top-level sort is called SIGN. % The two predicates ATTRIBUTE and SUBSORT have the interpretations % given below. They are designed for use by a compiler which takes % the set of ATTRIBUTE facts and SUBSORT facts and returns a set of % selectors/constructors for each sort, a set of pretty-printing % predicates for each sort, etc. % Interpretation of ATTRIBUTE: attribute(S1,A1,S2) % means that every AVM of sort S1 has an attribute A1 % with values of sort S2. If S2 appears in brackets, then the % value of attribute A1 is a *list* of AVMs each of sort S2. % Interpretation of SUBSORT: subsort(Super,Sub) % means that the sort Sub is a subsort of the sort Super % The current compiler supports the use of brackets to stand for lists, % It does not support set-valued attributes (except to the extent % that the sets can be represented as lists). % Some attributes that are part of HPSG but are not currently % implemented have been commented out to save space % Cooccurrence restrictions are not currently enforced. Multiple % inheritance is not supported. % Other sort-related predicates are in the file TESTSORT.P :- op(950,xfy,':'). attribute(sign,phon,[morpheme]). %this is a list! attribute(sign,licensed,licensedsort). % For convenience only--not part of HPSG attribute(sign,synsem,synsemsort). % attribute(sign,qstore,[qsort]). subsort(sign,phrasal). subsort(sign,lexical). subsort(phrasal,head_struc). % All signs assumed to have these dtrs so that valence principle % can be stated even for hspec structures. attribute(sign,head_dtr,sign). attribute(sign,subj_dtrs,[sign]). attribute(sign,comp_dtrs,[sign]). attribute(sign,spr_dtrs,[sign]). attribute(hadj_struc,adj_dtrs,[sign]). % also COMP_DTRS is empty subsort(phrasal,non_head_struc). % subsort(non_head_struc,paratactic). %relative/correlative (Marathi) % subsort(non_head_struc,coord_struc). subsort(head_struc,hsubj_struc). subsort(head_struc,hcomp_struc). subsort(head_struc,hspr_struc). % revised Schema 4 subsort(head_struc,hfill_struc). % Schema 6 subsort(head_struc,hadj_struc). % Schema 5 attribute(synsemsort,locall,localsort). %trace & filler share % attribute(synsemsort,nonlocal,nonlocalsort). attribute(localsort,category,catsort). attribute(catsort,head,headsort). attribute(catsort,subj,[synsemsort]). % a list of length <=1 in English attribute(catsort,complements,[synsemsort]). attribute(catsort,spr,[synsemsort]). % For convenience only--not part of HPSG attribute(headsort,pos,namesort). attribute(headsort,specifies,intornsort). % should really be a sortal distinction subsort(markingsort,markedsort). subsort(markingsort,unmarkedsort). subsort(markedsort,complementizersort). %any others?? attribute(localsort,content,contentsort). attribute(localsort,context,contextsort). attribute(nonlocalsort,inher,inhersort). attribute(nonlocalsort,tobind,inhersort). % Handels are not described in the HPSG text attribute(contentsort,handel,handelsort). attribute(contentsort,spr_handel,handelsort). attribute(contentsort,liszt,[relsort]). attribute(contentsort,restindex,indexsort). % not right place for this attr? subsort(contentsort,psoa). subsort(contentsort,nom_obj). subsort(nom_obj,prosort). subsort(nom_obj,nprosort). attribute(psoa,event,eventsort). % difference from STATE? attribute(relsort,handel,handelsort). subsort(contentsort,quant). attribute(quant,det,semdetsort). subsort(relsort,numsort). subsort(relsort,nomrelsort). subsort(relsort,eventrelsort). subsort(relsort,namingsort). attribute(namingsort,inst,indexsort). attribute(namingsort,thename,namesort). attribute(eventrelsort,relation,namesort). attribute(nomrelsort,indexx,indexsort). attribute(nomrelsort,nomrestr,namesort). subsort(numsort,quantsort). attribute(quantsort,bv,indexsort). attribute(quantsort,restr,namesort). subsort(quantsort,thesort). subsort(quantsort,cardinalsort). attribute(cardinalsort,value,intsort). subsort(numsort,constsort). attribute(constsort,value,intsort). subsort(numsort,plussort). attribute(plussort,term1,handlesort). attribute(plussort,term2,handlesort). subsort(numsort,timessort). attribute(timessort,factor1,handlesort). attribute(timessort,factor2,handlesort). % attribute(nom_obj,indexx,indexsort). %% what has indices in MRS?? attribute(indexsort,pers,personsort). attribute(indexsort,num,numbersort). attribute(indexsort,gend,gendersort). subsort(indexsort,refsort). subsort(indexsort,itsort). % need FCR to get 3d person sing?? subsort(indexsort,theresort). % need FCR to get 3d person?? subsort(prosort,pprosort). subsort(prosort,anasort). subsort(anasort,reflsort). subsort(anasort,recipsort). attribute(contextsort,backgr,[psoa]). attribute(contextsort,cinds,cindsort). %set or list?? anchor params % attribute(cindsort,speaker,speakersort). % attribute(cindsort,hearer,hearersort). %?? same as speakersort?? % attribute(cindsort,event_time,event_timesort). % attribute(cindsort,utterance_time,utterance_timesort). % attribute(nom_obj,relation,namesort). attribute(psoa,relation,namesort). attribute(eventrelsort,event,eventsort). attribute(eventrelsort,role1,indexsort). attribute(eventrelsort,role2,indexsort). attribute(eventrelsort,role3,indexsort). attribute(eventrelsort,role4,indexsort). attribute(inhersort,que,[quesort]). attribute(inhersort,rel,[parasort]). attribute(inhersort,slash,[localsort]). subsort(headsort,substsort). subsort(headsort,functionalsort). subsort(substsort,nounsort). attribute(nounsort,ccase,casesort). % also for adjs?? subsort(substsort,verbsort). attribute(verbsort,vform,vformsort). attribute(verbsort,tense,tensesort). % presumably?? attribute(verbsort,aux,polar). subsort(verbsort,mainvsort). % are -AUX subsort(verbsort,auxsort). % are +AUX attribute(auxsort,iolar). subsort(auxsort,tosort). % SUBCAT: subsort(auxsort,modalsort). % "; better -INV subsort(auxsort,perfsort). % subsort(auxsort,copulasort). % ; aren't +INV subsort(auxsort,dosort). % subsort(substsort,adjsort). attribute(adjsort,prd,polar). attribute(adjsort,modd,synsemsort). %enables adj to select head subsort(substsort,prepsort). attribute(prepsort,pform,pformsort). attribute(prepsort,modd,synsemsort). attribute(functionalsort,spec,synsem). subsort(functionalsort,detsort). subsort(detsort,intsort). attribute(intsort,comp_only,polar). subsort(intsort,digit9sort). subsort(digit9sort,digit6sort). subsort(digit6sort,digit3sort). subsort(digit3sort, digit2sort). subsort(digit2sort,digitsort). % attribute(qsort,det,detsort). % attribute(qsort,restpar,ref_obj). % we don't have REF_OBJs now!