(* ::Package:: *) addParan[g_]:=Module[{e}, e=EdgeList@g; e=DeleteDuplicates[(Flatten@Table[{e[[i]][[1]]\[DirectedEdge]e[[i]][[2]], e[[i]][[2]]\[DirectedEdge]e[[i]][[1]]},{i,1,Length@e}])~Join~EdgeList[g, _\[DirectedEdge]_]]; Table["("<>StringReplace[ToString@e[[i]],{"\[DirectedEdge]"->","}]<>")",{i, 1, Length@e}] ]; notRelation[]:=Module[{list}, list=RandomSample[Tuples[Range@10,2],5]~Join~RandomSample[Tuples[Range@10,3],RandomInteger[{1,2}]]~Join~RandomSample[Tuples[Range@10,1],RandomInteger[{1,2}]]; list=RandomSample[list,Length@list]; <| "tuples"->Table[StringReplace[ToString[list[[i]]],{"{"->"(","}"->")"}],{i,1,Length@list}] |> ]; makeRelation[]:=Module[{mod,suffixQ,g,stringLIST,size=300}, stringLIST={{"d","cd","bcd","abcd"},{"AA","BAACGF","A","AB","AC","CGF"},{"draw","drawing","drawn","drew"}}; <| "symmetricNOT"->RandomChoice@{ <| g=RelationGraph[Less,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a , <| g=RelationGraph[Greater,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a>b ", TraditionalForm] |> }, "symmetric"->RandomChoice@{ <| g=RelationGraph[Unequal,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[NotEqual]b ", TraditionalForm] |> , <| mod[s1_,s2_]:=Mod[s1-s2,2]===0; g=RelationGraph[mod,Range[RandomInteger[{4,5}]],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[Congruent]b (mod 2)", TraditionalForm] |> }, "reflexiveNOT"->RandomChoice@{ <| g=RelationGraph[Less,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a , <| g=RelationGraph[Greater,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a>b ", TraditionalForm] |> , <| g=RelationGraph[Unequal,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[NotEqual]b ", TraditionalForm] |> }, "reflexive"->RandomChoice@{ <| g=RelationGraph[StringContainsQ,RandomChoice@stringLIST ,DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] b sub-string in a", TraditionalForm] |>, <| g=RelationGraph[LessEqual,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[LessSlantEqual]b ", TraditionalForm] |> , <| mod[s1_,s2_]:=Mod[s1-s2,2]===0; g=RelationGraph[mod,Range[RandomInteger[{4,5}]],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[Congruent]b (mod 2)", TraditionalForm] |> }, "equivalenceNOT"->RandomChoice@{ <| g=RelationGraph[StringContainsQ,RandomChoice@stringLIST ,DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] b sub-string in a", TraditionalForm] |>, <| g=RelationGraph[Unequal,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[NotEqual]b ", TraditionalForm] |> , <| g=RelationGraph[Less,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a } , "equivalence"->RandomChoice@{ <| g=RelationGraph[LessEqual,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[LessSlantEqual]b ", TraditionalForm] |> , <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a identical to be b", TraditionalForm] |>, <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a same age as b", TraditionalForm] |>, <| mod[s1_,s2_]:=Mod[s1-s2,2]===0; g=RelationGraph[mod,Range[RandomInteger[{4,5}]],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[Congruent]b (mod 2)", TraditionalForm] |>, <| g=RelationGraph[Equal,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a=b ", TraditionalForm] |> }, "transitiveNOT"->RandomChoice@{ <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a daughter of b", TraditionalForm] |> , <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a sister of b", TraditionalForm] |> , <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a feeds on b", TraditionalForm] |> , <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a likes b", TraditionalForm] |> , <| "graph"->Nothing, "relation"->Nothing, "tuples"->Nothing, "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a hates b", TraditionalForm] |> }, "transitive"->RandomChoice@{ <| g=RelationGraph[StringContainsQ,RandomChoice@stringLIST,DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] b sub-string in a", TraditionalForm] |>, <| g=RelationGraph[Unequal,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[NotEqual]b ", TraditionalForm] |> , <| mod[s1_,s2_]:=Mod[s1-s2,2]===0; g=RelationGraph[mod,Range[RandomInteger[{4,5}]],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}], "tuples"->addParan[g], "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[Congruent]b (mod 2)", TraditionalForm] |> , <| g=RelationGraph[LessEqual,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a\[LessSlantEqual]b ", TraditionalForm] |> , <| g=RelationGraph[Less,RandomSample[Range[-9,9],4],DirectedEdges->True,VertexLabels->"Name",ImageSize->size]; "graph"->g, "relation"->Nothing(*StringReplace[ToString[EdgeList@g,TraditionalForm],{"\[DirectedEdge]"->"\[ScriptCapitalR]", "\[UndirectedEdge]"->"\[ScriptCapitalR]"}]*), "tuples"->Nothing(*addParan[g]*), "definition"->ToString["a\[ScriptCapitalR]b \[DoubleLongLeftRightArrow] a } |> ];