健康と知識のためのヨガ
Wolfram Knowledgebaseには,ヨガのポーズについてのデータを要約した,精選データ集合が含まれている.このため,ポーズ,難易度,使われる筋肉,持続時間,その他の多くの特徴を,簡単,強力,かつ詳細に,しかも完全にプログラム可能な方法で調べ学ぶことができるようになっている.
サソリのポーズから始め,"PreparatoryPoses"の関係に基づいたヨガのポーズの関係を形にして可視化する.
In[1]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_89.png)
poseGraph =
NestGraph[Cases[EntityValue[#, "PreparatoryPoses"], _Entity] &,
Entity["YogaPose", "ScorpionPose"], 4, VertexLabels -> "Name",
VertexLabelStyle -> LightGray]
Out[1]=
![](assets.ja/yoga-for-health-and-knowledge/O_68.png)
さまざまなポーズの簡単な画像を表示する.
In[2]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_90.png)
With[{v = Take[VertexList[poseGraph], 5]},
schm = Rule @@@ Transpose[{v, EntityValue[v, "Schematic"]}]
] // Column
Out[2]=
![](assets.ja/yoga-for-health-and-knowledge/O_69.png)
インターリンケージを共有する「コミュニティ」ごとにポーズをグループ化してプロットする.
In[3]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_91.png)
CommunityGraphPlot[EdgeList[poseGraph] /. e_DirectedEdge :> Reverse@e,
VertexLabels -> Placed["Name", Tooltip]]
Out[3]=
![](assets.ja/yoga-for-health-and-knowledge/O_70.png)
アシュタンヨガの基本シーケンスにおける一連のポーズで収縮する筋肉を数え,使用される筋肉数とともにプロットする.
完全なWolfram言語入力を表示する
Out[5]=
![](assets.ja/yoga-for-health-and-knowledge/O_71.png)
太陽礼拝Aの一連のポーズで伸ばされる筋肉を求め,最も品番に伸ばされる筋肉を可視化する.
In[6]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_94.png)
muscles = (SortBy[
Tally[DeleteMissing[
Flatten[EntityValue[
Cases[Entity["YogaSequence", "SunSalutationA"][
"PrimaryPoseSequence"], _Entity, Infinity],
"StretchedMuscles"]]]], Last] // Reverse) // Take[#, 20] &
Out[6]=
![](assets.ja/yoga-for-health-and-knowledge/O_72.png)
最も頻繁に伸ばされる筋肉を可視化する.
In[7]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_95.png)
EntityValue[muscles[[1, 1]], "RegionalLocationImage"]
Out[7]=
![](assets.ja/yoga-for-health-and-knowledge/O_73.png)
隠的に定義された実体クラスを使って,脚の筋肉を伸ばし体幹(コア)の筋肉を鍛える,初心者用の中等度強度のヨガポーズを求め,可視化する.
In[8]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_96.png)
EntityList[
Entity["YogaPose", {"ExperienceLevel" -> "Beginner",
"IntensityLevel" -> "Medium",
"SitesOfImprovedMobility" -> Entity["AnatomicalStructure", "Leg"],
"SitesOfImprovedStrength" ->
Entity["AnatomicalStructure", "Abdomen"]}]]
Out[8]=
![](assets.ja/yoga-for-health-and-knowledge/O_74.png)
これらのポーズの簡単な画像を実体の連想として見る.
In[9]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_97.png)
EntityList[
Entity["YogaPose", {"ExperienceLevel" -> "Beginner",
"IntensityLevel" -> "Medium",
"SitesOfImprovedMobility" -> Entity["AnatomicalStructure", "Leg"],
"SitesOfImprovedStrength" ->
Entity["AnatomicalStructure", "Abdomen"]}]];
EntityValue[Take[%, 5], "Schematic", "EntityAssociation"]
Out[9]=
![](assets.ja/yoga-for-health-and-knowledge/O_75.png)
腸腰筋を鍛え膝腱を伸ばす,上級者用のヨガのポーズを表示する.
In[10]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_98.png)
EntityValue[
Entity["YogaPose", {"ExperienceLevel" -> "Advanced",
"PrimaryContractedMuscles" ->
Entity["AnatomicalStructure", "Iliopsoas"],
"StretchedMuscles" ->
Entity["AnatomicalStructure",
"SetOfHamstringMuscles"]}], "Schematic", "EntityAssociation"]
Out[10]=
![](assets.ja/yoga-for-health-and-knowledge/O_76.png)
持続時間が30分から60分の間になるヨガのシーケンスを求める.
In[11]:=
![Click for copyable input](assets.ja/yoga-for-health-and-knowledge/In_99.png)
EntityList@
Entity["YogaSequence", {"EstimatedDuration" ->
Quantity[ Interval[{30, 60}], "Minutes"]}]
Out[11]=
![](assets.ja/yoga-for-health-and-knowledge/O_77.png)