aboutsummaryrefslogtreecommitdiff
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/components')
-rw-r--r--src/components/HelpModal.vue281
-rw-r--r--src/components/SettingsModal.vue2
-rw-r--r--src/components/TileInfoModal.vue2
3 files changed, 135 insertions, 150 deletions
diff --git a/src/components/HelpModal.vue b/src/components/HelpModal.vue
index 5764f3e..7375584 100644
--- a/src/components/HelpModal.vue
+++ b/src/components/HelpModal.vue
@@ -47,11 +47,15 @@
<template #summary="slotProps">
<div :class="scSummaryClasses">
<down-icon :class="slotProps.open ? downIconExpandedClasses : downIconClasses"/>
- Visualising the Tree
+ Using Tilo
</div>
</template>
<template #content>
<div :class="contentClasses">
+ <p class="text-xs md:text-sm text-center text-stone-500 pb-2">
+ (More info can be found in the tutorial)
+ </p>
+ <h1 class="text-lg font-bold">Visualising the Tree</h1>
<p>
Tilo displays the Tree of Life by representing nodes with tiles,
and placing tiles within other tiles to show structure.
@@ -69,24 +73,20 @@
and <span style="color: crimson">red</span> means 100+.
</li>
<li>
- An asterisk indicates that the node's placement lack evidence, or is disputed.
+ An asterisk indicates uncertain placement.
<span class="text-xs md:text-sm text-stone-500">
- (In the Open Tree of Life, each node has zero or more associated hypothetical
- trees that either support or conflict with it. The asterisk is added if
- there are no supporting trees, or if there is a single conflicting tree.)
+ (In the Open Tree of Life, a node can have supporting or conflicting
+ hypothesized trees. The asterisk means no supporting trees,
+ or at least one conflicting tree.)
</span>
</li>
</ul>
</p>
<br/>
<p>
- There are many other methods of visualisation, which can enable viewing
- many more nodes as text, or for exploring a more natural tree-like diagram.
- Examples include
- <a href="https://itol.embl.de/" :style="anchorStyles">iTOL</a>
- <external-link-icon :class="linkIconClasses"/>
- and <a href="https://www.onezoom.org/" :style="anchorStyles">OneZoom</a>
- <external-link-icon :class="linkIconClasses"/>.
+ There are many other methods of visualisation.
+ Examples include <a href="https://itol.embl.de/" :style="aStyles">iTOL</a>
+ and <a href="https://www.onezoom.org/" :style="aStyles">OneZoom</a>
<div class="flex gap-2 mt-1 md:mt-2">
<div class="flex flex-col items-center">
<img src="/itol.jpg" alt="iTOL screenshot"
@@ -104,30 +104,15 @@
</div>
</div>
</p>
- </div>
- </template>
- </s-collapsible>
- <s-collapsible :class="scClasses">
- <template #summary="slotProps">
- <div :class="scSummaryClasses">
- <down-icon :class="slotProps.open ? downIconExpandedClasses : downIconClasses"/>
- Using Tilo
- </div>
- </template>
- <template #content>
- <div :class="contentClasses">
- <p>
- This section provides some details not included in the tutorial.
- </p>
<br/>
<h1 class="text-lg font-bold">Settings</h1>
<ul class="list-disc pl-4">
<li>
<h2 class="font-bold">Sweep leaves left</h2>
<p>
- If disabled, an expanded tile's children are simply laid out in order,
- fromleft to right, then top to bottom.
- This can leave a lot of empty space when large children are next to small ones.
+ If disabled, an expanded tile's children are simply laid out left to right,
+ top to bottom.
+ This can leave a lot of empty space when large children are near small ones.
Moving the unexpanded children (the 'leaves') to the left helps avoid this.
<img src="/sweepCmp.jpg" alt="Sweep-leaves on/off comparison"
class="border border-stone-300 mx-auto my-1"/>
@@ -136,8 +121,8 @@
<li>
<h2 class="font-bold">Sweep into parent</h2>
<p>
- If enabled, leaves being swept left can be moved beyond the tile's
- rectangle, into leftover space in the parent.
+ Allows leaves being swept left to be moved beyond the tile's
+ rectangle, into empty space in the parent.
<img src="/sweepPCmp.jpg" alt="Sweep-into-parent on/off comparison"
class="border border-stone-300 mx-auto my-1"/>
</p>
@@ -145,35 +130,34 @@
<li>
<h2 class="font-bold">Trees to use</h2>
<p>
- Three choices are available, and all are simplified versions of
- the tree from the Open Tree of Life.
+ These are simplified versions of the tree from the Open Tree of Life.
<span class="text-xs md:text-sm text-stone-500">
- (Without this, some nodes would have over 10,000 children, and
- significantly slow the browser down during rendering)
+ (In the original, some nodes have over 10k children,
+ which can be quite slow to render)
</span>
</p>
<ul class="list-[circle] pl-4">
<li>
<span class="font-bold">Complex:</span>
- The least simplified choice. In short, it only includes
- nodes that have an image or description, with a soft limit of 600 children.
+ The least simplified. In short, only keeps nodes with an
+ image or description, with a soft limit of 600 children.
<span class="text-xs md:text-sm text-stone-500">
- (Has about 450,000 nodes)
+ (Has about 450k nodes)
</span>
</li>
<li>
<span class="font-bold">Visual:</span>
Only keeps nodes with images, with a soft limit of 300 children.
<span class="text-xs md:text-sm text-stone-500">
- (Has about 140,000 nodes)
+ (About 140k)
</span>
</li>
<li>
<span class="font-bold">Minimal:</span>
- Created using a rough list of 'well known'
- taxons, and adding a few more at random.
+ Created using a rough list of 'well known' taxons,
+ and adding a few more at random.
<span class="text-xs md:text-sm text-stone-500">
- (Has about 3,300 nodes)
+ (About 3k)
</span>
</li>
</ul>
@@ -183,15 +167,14 @@
<p>
Normally, if there isn't enough space to expand a tile,
an ancestor is hidden, and expansion is tried again.
- With this setting disabled, no such attempt is made.
- This makes tile movements more predictable.
+ Disabling this can make tile movements more predictable.
</p>
</li>
<li>
<h2 class="font-bold">Slider resets</h2>
<p>
- You can {{touchDevice ? 'tap' : 'click'}} on
- a slider's label to reset it to the default value.
+ {{touchDevice ? 'Tapping' : 'Clicking'}} on
+ a slider's label resets it to the default value.
</p>
</li>
</ul>
@@ -209,8 +192,7 @@
<h2 class="font-bold">Disambiguation Nodes</h2>
<p>
These have names like 'Iris [2]'. When multiple nodes are found to
- have the same name, all but one gets an '[N]' appended, where N
- is 2 or higher.
+ have the same name, numbers are added to disambiguate.
</p>
</li>
<li>
@@ -234,44 +216,65 @@
</template>
<template #content>
<div :class="contentClasses">
- <h1 class="text-lg font-bold">Sources</h1>
<ul class="list-disc pl-4">
<li>
- The tree structure was obtained from the Open Tree of Life
- <a href="https://tree.opentreeoflife.org/about/synthesis-release"
- :style="anchorStyles">synthesis release</a>
- <external-link-icon :class="linkIconClasses"/>
- version 13.4, accessed 23/04/2022.
+ The tree structure was obtained from the
+ <a href="https://tree.opentreeoflife.org" :style="aStyles">Open Tree of Life</a>,
+ in <a href="https://tree.opentreeoflife.org/about/synthesis-release"
+ :style="aStyles">synthesis release</a>
+ version 13.4, accessed 23/04/2022. The data is licensed under
+ <a href="https://creativecommons.org/publicdomain/zero/1.0/" :style="aStyles">CC0</a>.
</li>
<li>
The images and alternative-names data was partly obtained from the
- Encyclopedia of Life. Name data was obtained from
- <a href="https://opendata.eol.org/dataset/vernacular-names" :style="anchorStyles"
- >here</a><external-link-icon :class="linkIconClasses"/>,
+ <a href="https://eol.org" :style="aStyles">Encyclopedia of Life</a>.
+ Name data was obtained from
+ <a href="https://opendata.eol.org/dataset/vernacular-names" :style="aStyles">here</a>,
and image metadata from
- <a href="https://opendata.eol.org/dataset/images-list" :style="anchorStyles"
- >here</a><external-link-icon :class="linkIconClasses"/>,
+ <a href="https://opendata.eol.org/dataset/images-list" :style="aStyles">here</a>,
accessed 24/04/2022.
+ <br/>
+ For the source of a specific tile's image, look in it's info pane.
</li>
<li>
- The short descriptions, along with the remaining images and name data,
- were obtained from Wikipedia. Descriptions were extracted from the
- <a href="https://dumps.wikimedia.org/enwiki/" :style="anchorStyles">Wikipedia dump</a>
- <external-link-icon :class="linkIconClasses"/> for 01/05/22,
- and also obtained from the
+ The short descriptions, along with most of the remaining images and name data,
+ were obtained from <a href="https://wikipedia.org" :style="aStyles">Wikipedia</a>.
+ <br/>
+ Descriptions were extracted from the
+ <a href="https://dumps.wikimedia.org/enwiki/" :style="aStyles">Wikipedia dump</a>
+ for 01/05/22, and also obtained from the
<a href="https://databus.dbpedia.org/dbpedia/collections/latest-core"
- :style="anchorStyles">DBpedia knowledge base</a>
- <external-link-icon :class="linkIconClasses"/>
- for 01/03/22. Images were downloaded from Wikipedia during Jun 2022.
+ :style="aStyles">DBpedia knowledge base</a>
+ for 01/03/22. The page content is available under
+ <a href="https://creativecommons.org/licenses/by-sa/3.0/" :style="aStyles"
+ >CC BY-SA 3.0</a>.
+ Images were downloaded during June 2022.
</li>
</ul>
+ </div>
+ </template>
+ </s-collapsible>
+ <s-collapsible :class="scClasses">
+ <template #summary="slotProps">
+ <div :class="scSummaryClasses">
+ <down-icon :class="slotProps.open ? downIconExpandedClasses : downIconClasses"/>
+ FAQs
+ </div>
+ </template>
+ <template #content>
+ <div :class="contentClasses">
+ <h1 class="text-lg font-bold">How Accurate is the Information?</h1>
+ <p>
+ This is hard to answer precisely. The datasets are from large projects with
+ many contributors, trying to track a constantly changing field of knowledge.
+ And the process of merging them was inherently imprecise. Significant effort
+ has been expended to minimise errors, but, inevitably, there are always more of them.
+ </p>
<br/>
- <h1 class="text-lg font-bold">Data Inconsistencies</h1>
<p>
- When handling datasets this large, these are almost unavoidable. Significant effort
- was expended to minimise them, but, inevitably, there are always more. The most prominent
- types are listed below. If you find a major error, feel free to let me know at
- <a href="mailto:terry06890@gmail.com" :style="anchorStyles">terry06890@gmail.com</a>.
+ Here's a list of the most common kinds. If you find any major errors,
+ feel free to let me know at
+ <a href="mailto:terry06890@gmail.com" :style="aStyles">terry06890@gmail.com</a>.
</p>
<ul class="list-disc pl-4">
<li>
@@ -285,12 +288,11 @@
</p>
</li>
<li>
- <h2 class="font-bold">Errors Within the Datasets</h2>
+ <h2 class="font-bold">Errors within the Datasets</h2>
<p>
Some issues are internal to the datasets themselves. For example, an image from
- EOL might display a plant that is in the wrong taxon. As most of the datasets are
- large projects distributed over many people over a long period of time, these
- errors are difficult to avoid, and may require specialised knowledge to resolve.
+ EOL might display a plant that is in the wrong taxon. Some of these can be
+ quite difficult to recognise, or may require specialised knowledge.
</p>
</li>
<li>
@@ -302,35 +304,48 @@
</li>
</ul>
<br/>
- <h1 class="text-lg font-bold">Possible Points of Confusion</h1>
- <ul class="list-disc pl-4">
- <li>
- <h2 class="font-bold">Unexpected Images</h2>
- <p>
- Not all the images are well-suited for display. For example, many
- birds have their heads cropped out. And some fish are shown in a
- preserved form that is hard to recognise. And some moths are shown
- alongside a more prominent plant, and are hard to see.
- </p>
- </li>
- <li>
- <h2 class="font-bold">Unexpected Search Results</h2>
- <ul class="list-[circle] pl-4">
- <li>
- Some search results might not include what you're looking for.
- An example is 'dinosaur', which doesn't correspond to a single node,
- but to multiple nodes within Sauria.
- And dog breeds are absent because they aren't considered
- separate species, but as variant descendants of Canis familiaris.
- </li>
- <li>
- In the Complex tree, searching for 'orange', then pressing enter, brings up
- a kind of butterfly, instead of a citrus plant. This is because suggestions
- are not yet ordered by how well known the taxon is.
- </li>
- </ul>
- </li>
- </ul>
+ <h1 class="text-lg font-bold">Where are the Dogs?</h1>
+ <p>
+ Generally, the nodes in the tree don't go below the species level.
+ And dog breeds aren't considered separate species, but as variant
+ descendants of Canis familiaris.
+ </p>
+ <br/>
+ <h1 class="text-lg font-bold">Why is there no Tile for the Dinosaurs?</h1>
+ <p>
+ Some names don't correspond to a single node, but to multiple nodes
+ from different ancestors. Many dinosaurs are under Sauria, but share
+ that parent with non-dinosaurs, such as turtles.
+ </p>
+ <br/>
+ <h1 class="text-lg font-bold">Shouldn't there be more Bacteria?</h1>
+ <p>
+ Many of the bacteria don't have images, and were excluded from the default
+ Visual tree.
+ </p>
+ <br/>
+ <h1 class="text-lg font-bold">Why do some Tiles share the same Description?</h1>
+ <p>
+ Nodes are largely matched with Wikipedia descriptions using wiki page names.
+ So, if there are two names for which Wikipedia redirects to a shared page that
+ provides a generic description, they will both get the same description.
+ </p>
+ <br/>
+ <h1 class="text-lg font-bold">Some Search Suggestions are Unusual</h1>
+ <p>
+ As an example, in the Complex tree, searching for 'orange', then pressing enter,
+ brings up a kind of butterfly, instead of a citrus plant. This is because, currently,
+ suggestions are not ordered by how well-known the taxons are.
+ </p>
+ <br/>
+ <h1 class="text-lg font-bold">Some of the Images are Weird</h1>
+ <p>
+ Selection and extraction of the images was done semi-automatically, and sometimes
+ this hasn't worked well. For example, many birds have their heads cropped out.
+ And some images were selected despite being non-ideal. Some fish are shown in a
+ preserved form that is hard to recognise. And some moths are shown alongside
+ a more prominent plant, and are hard to see.
+ </p>
</div>
</template>
</s-collapsible>
@@ -343,66 +358,36 @@
</template>
<template #content>
<div :class="contentClasses">
+ <li>Tilo's code is licensed under the MIT license.</li>
+ <br/>
<h1 class="text-lg font-bold">Other Credits</h1>
<ul class="list-disc pl-4">
<li>
The UI was largely coded in
- <a href="https://www.typescriptlang.org/" :style="anchorStyles">Typescript</a>
- <external-link-icon :class="linkIconClasses"/>,
- and built using the
- <a href="https://vuejs.org/" :style="anchorStyles">Vue framework</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://www.typescriptlang.org/" :style="aStyles">Typescript</a>,
+ and built using the <a href="https://vuejs.org/" :style="aStyles">Vue framework</a>
</li>
<li>
Tree data was processed using
- <a href="https://www.python.org/" :style="anchorStyles">Python</a>
- <external-link-icon :class="linkIconClasses"/>,
+ <a href="https://www.python.org/" :style="aStyles">Python</a>,
and stored using
- <a href="https://www.sqlite.org/index.html" :style="anchorStyles">Sqlite</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://www.sqlite.org/index.html" :style="aStyles">Sqlite</a>
</li>
<li>
Styling was enhanced using
- <a href="https://tailwindcss.com/" :style="anchorStyles">Tailwind</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://tailwindcss.com/" :style="aStyles">Tailwind</a>
</li>
<li>
The font is called
- <a href="https://design.ubuntu.com/font/" :style="anchorStyles">Ubuntu Font</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://design.ubuntu.com/font/" :style="aStyles">Ubuntu Font</a>
</li>
<li>Icons were obtained from
- <a href="https://feathericons.com/" :style="anchorStyles">Feathericons</a>
- <external-link-icon :class="linkIconClasses"/>
- and <a href="https://ionic.io/ionicons" :style="anchorStyles">Ionicons</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://feathericons.com/" :style="aStyles">Feathericons</a>
+ and <a href="https://ionic.io/ionicons" :style="aStyles">Ionicons</a>
</li>
<li>
Images were cropped using
- <a href="https://github.com/jwagner/smartcrop.js" :style="anchorStyles">Smartcrop</a>
- <external-link-icon :class="linkIconClasses"/>
- </li>
- </ul>
- <br/>
- <h1 class="text-lg font-bold">Licensing</h1>
- <ul class="list-disc pl-4">
- <li>The project's code is licensed under the MIT license</li>
- <li>
- Tree data from the Open Tree of Life is licensed under the
- <a href="https://raw.githubusercontent.com/OpenTreeOfLife/opentree/master/LICENSE.txt"
- :style="anchorStyles">BSD 2-Clause License</a>
- <external-link-icon :class="linkIconClasses"/>
- </li>
- <li>
- Image licensing information is available from a tile's info pane,
- under 'Source information'
- </li>
- <li>
- The short descriptions are extracted from Wikipedia's page content,
- which is available under the
- <a href="https://creativecommons.org/licenses/by-sa/3.0/" :style="anchorStyles"
- >CC BY-SA 3.0 license</a>
- <external-link-icon :class="linkIconClasses"/>
+ <a href="https://github.com/jwagner/smartcrop.js" :style="aStyles">Smartcrop</a>
</li>
</ul>
</div>
@@ -454,7 +439,7 @@ export default defineComponent({
contentClasses(): string {
return 'py-2 px-2 text-sm md:text-base';
},
- anchorStyles(): Record<string,string> {
+ aStyles(): Record<string,string> {
return {
color: this.uiOpts.altColorDark,
};
diff --git a/src/components/SettingsModal.vue b/src/components/SettingsModal.vue
index 28db9ab..a298230 100644
--- a/src/components/SettingsModal.vue
+++ b/src/components/SettingsModal.vue
@@ -19,7 +19,7 @@
<label for="autoDelayInput" @click="onReset('UI', 'autoActionDelay')" :class="rLabelClasses">
Auto-mode Delay
</label>
- <input type="range" min="0" max="1000" v-model.number="uiOpts.autoActionDelay"
+ <input type="range" min="100" max="1000" v-model.number="uiOpts.autoActionDelay"
@change="onSettingChg('UI', 'autoActionDelay')" class="my-auto" name="autoDelayInput"/>
<div class="my-auto text-right">{{uiOpts.autoActionDelay}} ms</div>
</div>
diff --git a/src/components/TileInfoModal.vue b/src/components/TileInfoModal.vue
index 556846a..0461de6 100644
--- a/src/components/TileInfoModal.vue
+++ b/src/components/TileInfoModal.vue
@@ -47,7 +47,7 @@
<template v-slot:summary="slotProps">
<div class="py-1 hover:underline">
<down-icon class="inline-block w-4 h-4 mr-1 transition-transform duration-300"
- :class="{'-rotate-90': slotProps.open}"/>Source Information
+ :class="{'-rotate-90': slotProps.open}"/>Image Source
</div>
</template>
<template v-slot:content>