Introduction
Introduction
When I was a child, I remember sometimes I would actually flip through the dictionary when I was sufficiently bored. I sometimes got to thinking, ok so words are defined in terms of other words which are defined in terms of other words, what if there were a smallest set of words that one could define all the other words in terms of?
So I was pretty happy when I later in life learned about semantic primes, which are supposed to be about 60 words that one should be able to define all other words in terms of. I was even more excited when I found a website called Learn these Words First where someone actually attempted to define about 2,000 words in layers down to the primes, which was enough to be a bridge to a specific learners dictionary which only used those 2000 words to define a further 70,000 or so words.
However, the one downside of that dictionary was that the words are all defined in English, which makes them somewhat imprecise, and I thought it would be fun to try and make the definitions more precise. While I was at it, I thought maybe some of the primes could be defined in terms of an even smaller set of words (well, in the end maybe one could break everything down to just predicate logic or something, which was also an inspiration). This is really just a project that I’ve been working on for years when I had some free time and was kind of bored, and it’s in quite a rough state right now and far from perfect.
This roughly follows the outline of the Learn these Words First website, the “Semantic Molecules” section is meant to cover much of the 2000 word “bridge”, though it is not quite 100% complete with that. “Semantic Proteins” are chosen somewhat haphazardly, and were guided partly by me wanting to have certain words defined for another project where I was trying to compile part of a story or two down to primes.
Some words I haven’t even bothered to break down into primes or further, like “triangle” could clearly be defined in terms of math and then down to predicate logic if one wanted, but I haven’t bothered to do so for that word, triangle is currently just undefined as are a good number of other words. Another minor thing to note is that some words have multiple parameters in their definitions, but I only use maybe one of the parameters. In such cases one should assume that there “exists” a symbol that fills the other parameters, even though what that symbol is might not be stated.
I plan to update this more as I go along, in the future. One other future thing I’d like to do is to maybe write something using the Wolfram Language’s FullDefinition function so that one can see the whole chain of words that goes into defining one specific word. Anyway here’s what I have as of now:
So I was pretty happy when I later in life learned about semantic primes, which are supposed to be about 60 words that one should be able to define all other words in terms of. I was even more excited when I found a website called Learn these Words First where someone actually attempted to define about 2,000 words in layers down to the primes, which was enough to be a bridge to a specific learners dictionary which only used those 2000 words to define a further 70,000 or so words.
However, the one downside of that dictionary was that the words are all defined in English, which makes them somewhat imprecise, and I thought it would be fun to try and make the definitions more precise. While I was at it, I thought maybe some of the primes could be defined in terms of an even smaller set of words (well, in the end maybe one could break everything down to just predicate logic or something, which was also an inspiration). This is really just a project that I’ve been working on for years when I had some free time and was kind of bored, and it’s in quite a rough state right now and far from perfect.
This roughly follows the outline of the Learn these Words First website, the “Semantic Molecules” section is meant to cover much of the 2000 word “bridge”, though it is not quite 100% complete with that. “Semantic Proteins” are chosen somewhat haphazardly, and were guided partly by me wanting to have certain words defined for another project where I was trying to compile part of a story or two down to primes.
Some words I haven’t even bothered to break down into primes or further, like “triangle” could clearly be defined in terms of math and then down to predicate logic if one wanted, but I haven’t bothered to do so for that word, triangle is currently just undefined as are a good number of other words. Another minor thing to note is that some words have multiple parameters in their definitions, but I only use maybe one of the parameters. In such cases one should assume that there “exists” a symbol that fills the other parameters, even though what that symbol is might not be stated.
I plan to update this more as I go along, in the future. One other future thing I’d like to do is to maybe write something using the Wolfram Language’s FullDefinition function so that one can see the whole chain of words that goes into defining one specific word. Anyway here’s what I have as of now:
Semantic Primes
Semantic Primes
In[]:=
(*Wordstobedefined:at,before,some,distance,light,conscious,centerOfGravity,wave,setOf,integral,credence*)
In[]:=
iff=Equivalent;
In[]:=
possible[x_,underConditions_]:=iff[underConditions,x]
In[]:=
inside[a_,b_,underConditions_]:=Exists[{outside,surface},!possible[before[at[a,outside],at[a,surface]],underConditions]]
In[]:=
after[eventA_,eventB_]:=before[eventB,eventA]
In[]:=
when[eventA_,eventB_]:=!after[eventA,eventB]&&!before[eventA,eventB]
In[]:=
caused[agent_,action_,method_]:=iff[method[agent],action]&&after[method[agent],action]
In[]:=
becauseOf=caused;
In[]:=
because[cause_,result_,method_]:=becauseOf[result,cause,method]
In[]:=
capableOf[x_,y_,underConditions_List]:=Implies[underConditions,y[x]]
In[]:=
did[agent_,action_,object_,method_]:=caused[agent,action[object],method]
In[]:=
moved[object_,destination_,origin_]:=after[inside[object,origin],inside[object,destination]]
In[]:=
increased[thing_,increasing_,amount_]:=Exists[{amountA,amountB},amountB-amountAamount&&after[amountA[thing],amountB[thing]]]
In[]:=
fractionalQ[expr_]:=MemberQ[expr,Reals]&&0≤expr≤1
In[]:=
believed[believer_,belief_,credenceLevel_?fractionalQ,sharee_,population_List]:=Implies[shareConditions,told[believer,sharee,believed[agent,belief,credenceLevel]&&Implies[broadShareConditions,told[believer,#,believed[agent,belief,credenceLevel]]&/@population]]]
In[]:=
increasedBelief[person_,event_]:=increased[person,believed[person,event,#]&]
In[]:=
touched[objectA_,objectB_]:=inside[x,objectA]&&inside[y,objectB]
In[]:=
required[x_,requirement_]:=Implies[!requirement,!x]
In[]:=
attachedTo[objectA_,objectB_,force_]:=required[!touched[objectA,objectB],force]
In[]:=
part[part_,whole_,attachmentLevel_]:=inside[part,whole]||attachedTo[part,whole,attachmentLevel]
In[]:=
wouldChoose[chooser_,choice_,underConditions_]:=Implies[capableOf[caused[chooser,choice],underConditions],caused[chooser[choice]]]
In[]:=
thatIs[descriptionA_,descriptionB_]:=Exists[x,descriptionA[x]&&descriptionB[x]]
In[]:=
wanted[wanter_,desire_,underConditions_]:=thatIs[part[#,wanter]&,wouldChoose[#,desire,underConditions]&]
In[]:=
persuaded[persuader_,persuadee_,belief_,credenceIncrease_?fractionalQ]:=Exists[{oldCredence,newCredence},newCredence-oldCredence=credenceIncrease&&caused[persuader,believed[persuadee[belief,newCredence]]]]
In[]:=
hoped[hoper_,hope_,hopeLevel_]:=wanted[hoper,hope]&&possible[hope,hopeLevel]
In[]:=
recorded[agent_,recording_,event_,info_,location_,beneficiary_,persuasionAmount_]:=becauseOf[event,hoped[caused[agent,inside[location,recording]],persuaded[agent,beneficiary,event,persuasionAmount]]]
In[]:=
percieved[perciever_,percieved_,medium_,receptor_]:=inside[receptor,perciever]&&caused[moved[medium,percieved,receptor],recorded[perciever,inside[receptor,medium]]]
In[]:=
visionSaw[looker_,object_]:=thatIs[light,percieved[perciever,object,#]&]
In[]:=
tried[agent_,action_,target_,intendedResult_,confidenceInResult_]:=because[wanted[agent,intendedResult],action[target]]&&believed[agent,caused[action[target],intendedResult],confidenceInResult]
In[]:=
used[agent_,object_,action_,method_,result_,hopeLevel_]:=becauseOf[caused[agent,action[object]],hoped[agent,after[caused[agent,action[object]],result],hopeLevel]]
In[]:=
replaceMe[expr_]:=ReplaceAll[expr,methatIs[Identity,caused[#,expr]&]]
In[]:=
replaceYou[expr_]:=ReplaceAll[expr,youthatIs[Identity,caused[#,told[me,expr,#]]&]]
In[]:=
replaceNow[expr_]:=ReplaceAll[expr,now[occurence_]when[occurence,made[me[expr]]]]
In[]:=
told[informer_,informee_,information_,method_,medium_]:=used[informer,medium,method,hoped[#,replaceNow[replaceYou[replaceMe[caused[increased[informee,believed[informee,information,#]&]]]]]]&]
In[]:=
askedIs[asker_,statement_,asked_]:=told[asker,asked,wanted[asker,Xor[toldish[asked,#]&/@{statement,!statement}]]]
In[]:=
person=conscious;
In[]:=
part[part_,whole_]:=inside[part,whole]
In[]:=
similar[thingA_,thingB_,similarity_]:=similarity[thingA]&&similarity[thingB]
In[]:=
different[x_,y_,comparison_]:=!similar[x,y,comparison]
In[]:=
repairedComplete[repairer_,before_,repaired_,change_,method_]:=thatIs[different[repaired,before,change],becauseOf[did[repairer,method,before],!different[method[before],repaired],#]&]
In[]:=
alive[organism_,underConditions_]:=Exists[information,when[inside[information,organism],capableOf[caused[information,repairedComplete[organism,organism],underConditions]]]]
In[]:=
selectByGrav[points_,object_,centerOfGravity_,comparison_]:=setOf[points,inside[points,object]&&comparison[points,centerOfGravity,distance]]
In[]:=
maximal[x_,inTermsOf_]:=!Exists[y,inTermsOf[y]>inTermsOf[x]]
In[]:=
minimal[x_,inTermsOf_]:=maximal[x,-inTermsOf[#]&]
In[]:=
bottom[points_,object_,centerOfGravity_]:=selectByGrav[points,object,minimal]
In[]:=
top[points_,object_,gravitationalMasses_]:=selectByGrav[points,object,maximal]
In[]:=
relativeGravDist[objectA_,objectB_,otherMasses_,comparison_]:=Exists[gravCen,centerOfGravity[gravCen,Join[otherMasses,{objectA,objectB}]]&&Exists[{topA,bottomB},top[topA,objectA,gravCen]&&bottom[bottomB,objectB,gravCen]&&comparison[topA,bottomB,gravCen]]]
In[]:=
distanceCompare[x_,y_,reference_,amount_?MemberQ[Reals],comparison:(GreaterThan|LessThan)]:=comparison[distance[x,reference],distance[y,reference]]
In[]:=
closer[x_,y_,reference_,amount_?MemberQ[Reals]]:=distanceCompare[x,y,reference,LessThan]
In[]:=
farther[x_,y_,reference_,amount_?MemberQ[Reals]]:=distanceCompare[x,y,reference,GreaterThan]
In[]:=
above[objectA_,objectB_,gravitationalMasses_]:=relativeGravDist[objectA,objectB,gravitationalMasses,farther]
In[]:=
sound=wave;
In[]:=
heard[perciever_,percievedA_]:=percieved[perciever,percievedA,sound]
In[]:=
said[speaker_,information_,listener_]:=Exists[method,told[speaker,listener,information,method,sound]]
In[]:=
acknowledged[listener_,talker_,statement_]:=because[#,told[listener,talker,#]]&[believed[listener,wanted[talker,believed[talker,told[talker,listeners,statement]]]]]
In[]:=
communicated[talker_,listeners_List,statement_]:=becauseOf[told[talker,listeners,statement],acknowledged[#,talker,statement]&/@listeners]
In[]:=
agree[people_List,agreement_]:=communicated[people,believed[agreement,#]&/@people]
In[]:=
meaning[phrase_,meaning_,community_List,underConditions_]:=GreaterThan@@(LeafCount/@{phrase,meaning})&&iff[underConditions,agree[community,phrasemeaning]]
In[]:=
word[phrase_,meaning_,community_List,underConditions_]:=minimal[meaning[phrase,meaning,community,underConditions],LeafCount]
In[]:=
consequences[consequences_,consequencor_]:=setOf[consequencesA,Implies[consequencor,consequencesA]]
In[]:=
choiceUtility[x_,persons_,timePeriod_]:=ForAll[consequencesA,consequences[consequencesA,x]&&integral[timePeriod,Total[setof[amount,wouldChoose[#,consequencesA]&/@persons]]]]
utilitarianGoodOrBad[x_,utilityFunction_,type:"good"|"bad"]:=ForAll[situation,Replace[type,{"good"->Greater,"bad"->Less}][when[x,utilityFunction[situation]],when[!x,utilityFunction[situation]]]]
utilitarianGood[x_,utilityFunction_]:=utilitarianGoodOrBad[x,UtilityFunction,"good"]
In[]:=
utilitarianTheGood[x_,utilityFunction_]:=ForAll[z,utilityFunction[x]>utilityFunction[z]]
choiceUtilitarianGood[x_,people_,timePeriod_]:=choiceUtilitarianGood[x,people,choiceUtility[#,timePeriod]&]
In[]:=
should=good;
In[]:=
prevented[person_,outcome_,method_]:=becauseOf[method[person],!outcome]
In[]:=
agentAllowed[person_,outcome_]:=!prevented[person,outcome]
In[]:=
eachOther[f_,l_]:=f[##]&/@DeleteCases[Tuples[l,l],_?(SameQ[##]&)]
In[]:=
eachIsGreaterFor[f_,l_List,amount_?MemberQ[Reals]]:=Exists[amountA,MemberQ[amountA,Reals]&&f[##,amount]&&amountA≥amount]&/@l
In[]:=
property[owned_,owner_,society_List,beliefAmount_?fractionalQ]:=eachIsGreaterFor[believed[#,eachOther[should[agentAllowed[#1,used[owned,owner]],#2]&,society]]&,society,beliefAmount]
In[]:=
posessed[owner_,owned_,society_List,beliefAmount_?fractionalQ]:=property[owned,owner,society,beliefAmount]
In[]:=
possesiveCase[posessor_][posessionType_]:=setOf[objects,posessionType[object]&&posessed[posessor,object]]
In[]:=
belonged[owned_,owner_,society_List,beliefAmount_?fractionalQ]:=posessed[owner,owned,society,beliefAmount]
In[]:=
thoughtAbout[thinker_,oldBelief_,newBelief_]:=caused@@(Exists[beliefAmount,beliefAmount>0&&believed[thinker,#,beliefAmount]]&/@{oldBelief,newBelief})
utilitarianGood[x_,utilityFunction_]:=utilitarianGoodOrBad[x,UtilityFunction,"bad"]
In[]:=
touchFelt[perciever_,percievedA_]:=iff[touched[perciever,percievedA],percieved[perciever,percievedA]]
In[]:=
timeBetween[timeA_,timeB_]:=setOf[timePeriod,when[after[timeA,timePeriod]&&before[timeB,timePeriod]]]
In[]:=
emotion[feeling_]:=Exists[{feeler,newDesire},Implies[event,feeling[feeler]]&&Implies[feeling,wanted[feeler,newDesire]]]
In[]:=
feeling[feelingA_,feeler_]:=emotion[feeling]&&feelingA[feeler]
madeOf[whole_,parts:List]:=setOf[x,part[x,whole]]===parts
In[]:=
became[something_,description_]:=after[description[something],!description[something]]
In[]:=
made[agent_,product_,parts:List,method_]:=becauseOf[did[agent,method],became[parts,product]&&madeOf[product,parts]]
In[]:=
body[x_,aliveThing_,similarityToAlive_]:=alive[aliveThing]&&similar[x,aliveThing,similarityToAlive]
In[]:=
died[organism_]:=became[organism,!alive]
In[]:=
below[objectA_,objectB_,gravitationalMasses_]:=relativeGravDist[objectA,objectB,gravitationalMasses,closer]
Semantic Molecules
Semantic Molecules
In[]:=
andDescription[objects:List,predictate_]:=predicate/@objects;
In[]:=
it:=First[mentioned]
In[]:=
them:=SelectFirst[mentioned,questionIs[plural,#]&&(questionIs[person,#]&)/@#&]
In[]:=
push[x_,y_,z_]:=becauseOf[touched[x,y]&&accelerated[y],accelerated[z]]
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
A non-circular dictionary in code
by Eric Parfitt
Wolfram Community, STAFF PICKS, April 27, 2024
https://community.wolfram.com/groups/-/m/t/3165237
by Eric Parfitt
Wolfram Community, STAFF PICKS, April 27, 2024
https://community.wolfram.com/groups/-/m/t/3165237