Autor Thema: Daten des Linyphenschlüssels einfügen  (Gelesen 2480 mal)

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Daten des Linyphenschlüssels einfügen
« am: 2015-05-14 07:07:19 »
Ich habe eine Anleitung verfasst: Workflow für strukturierte Ergänzungen von Artmerkmalen der Linyphiidae im Spinnenwiki.

Ich denke, wenn wir, dem Linyphenschlüssel entnehmen, klappt es auch besser, mit diesem Schlüssel zu arbeiten. Mitmachen kann da jeder, der des vernünftig strukturierten Schreibens mächtig ist.

Wenn Fragen offen sind, ...

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #1 am: 2015-05-20 03:25:50 »
Moin Martin,

lässt sich das nicht automatisieren? Ich kann mir da gern mal Gedanken drüber machen, falls da Interesse bestehen sollte.

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #2 am: 2015-05-20 06:14:18 »
lässt sich das nicht automatisieren?

Was automatisieren? Die Konvertierung des Textes? Dass Zusammenfassen gleichlautender Textpassagen?

Theoretisch ist es das, weil die Sätze monoton dem selben Schema folgen. Probiere das gern aus.

Werkzeug:
a) html + php ... oder
b) html + javaScript

Das Einfügen ins Wiki ohne visuelle Kontrolle würde ich nicht empfehlen. Also ist ein Hilfstool gefragt und kein genereller Konverter.

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #3 am: 2015-05-21 20:50:57 »
Dann werde ich mal meine rudimentären php-Kenntnisse zusammenkramen, sollte ja nicht allzu kompliziert sein.

Wie soll das am Ende aussehen bzw. im Wiki eingebunden werden? Ein Fließtext für beide Geschlechter? Getrennte Texte pro Geschlecht? Eine tabellarische, nur etwas modifizierte Tabelle/Liste? ...

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #4 am: 2015-05-22 05:29:57 »
Ich würde vorschlagen, ein Tool zu entwickeln, das folgendes tut:

1. Durchgang
Gemeinsame Textpassagen separiert (Weibchen, Männchen) => Weibchen, Männchen, Allgemein (also gemeinsame Eigenschaften)

Ich schlage vor, die beiden Passagen dafür jeweils in ein Array zu laden:
Bsp. (Textpassagen werden im html-Formular über die beiden Textareas text_fem und text_male mit der Methode 'post' übergeben:

$females=array();
...
$females=explode(';', $_POST['text_fem']);

...
foreach($females as $fem)
  if (in_array($fem, $males))
    $allgemein[]=$fem;

...
$fem=array_diff($fem, $allgemein);

2. Durchgang
Für jeden der 3 Abschnitte ($allgemein, $females, $males) gleichlautende Eigenschaften zusammenfassen. Z. B.

Prolaterale Borsten auf Femur I: keine
Prolaterale Borsten auf Tibia I: keine


=> Femur {{I}} und Tibia {{I}} ohne prolaterale Borsten.

Dieser Analysepart ist der umfangreichste, weil es sehr viele verschiedene Kombinationsmöglichkeiten gibt. Man könnte den Präprozessor aber auf Durchlauf 1 beschränken, bzw. Durchlauf 2 auf die Sortierung und Gruppierung der Antworten begrenzen.

Prosoma: unauffällig
Fovea deutlich als Einkerbung erkennbar ja
Opisthosoma: einfarbig, unauffällig
Dorsale Borsten auf Femur I: keine
Hintere Augenreihe: gerade
Abstand HMA: gleich d
Kopfregion des Männchens: unauffällig
Augen: normal
Vordere Mittelaugen: deutlich kleiner als SA
Prolaterale Borsten auf Femur I: keine
Prolaterale Borsten auf Tibia I: keine
Zähne auf dem vorderen Falzrand der Cheliceren: nicht auffallend gross
auffällige Strukturen auf dem Chelicerengrundglied: keine
Gnathocoxen: unauffällig
Sternum: glatt
Sternum: nach hinten verlängert
Breite des Sternums zwischen Coxae IV: gleich d
Lage des TMI in Klassen: 0.30-0.39
0.40-0.49
Metatarsus IV dorsal: ohne Trichobothrium
Dorsale Borsten auf Metatarsus I: keine


=>
'''Prosoma'''
Prosoma: : unauffällig
Fovea deutlich als Einkerbung erkennbar ja

'''Augen'''
Hintere Augenreihe: gerade
Abstand {{begriff|HMA|hintere Mittelaugen}} gleich ihrem Durchmesser
Augen: normal
Vordere Mittelaugen: deutlich kleiner als Seitenaugen

'''Sternum'''
Sternum: glatt
Sternum: nach hinten verlängert
Breite des Sternums zwischen Coxae {{IV}}: gleich dem Durchmesser

'''Chelizeren'''
Zähne auf dem vorderen Falzrand der Chelizeren: nicht auffallend groß
auffällige Strukturen auf dem Chelizerengrundglied: keine
Gnathocoxen: unauffällig

'''Beine'''
Dorsale Borsten auf Femur {{I}}: keine
Prolaterale Borsten auf Femur {{I}}: keine
Prolaterale Borsten auf Tibia {{I}}: keine
Lage des TM{{I}} in Klassen: 0,30–0,39 mm,
0,40–0,49 mm
Metatarsus {{IV}} dorsal: ohne Trichobothrium
Dorsale Borsten auf Metatarsus {{I}}: keine

'''Opisthosoma'''
Opisthosoma: einfarbig, unauffällig


Das wäre schon eine Hilfe. Das Zusammenfassen der Sätze macht man besser im Kopf.

Das Endresultat soll mit copy & paste ins Wiki zu übernehmen sein.

Ich bin ja eigentlich ein Freund solcher Präprozessoren, aber in diesem Fall bin ich skeptisch, ob der Aufwand lohnt. Na, ja. Die 'abgespeckte' Version wäre schon eine gute Hilfe.

Martin
« Letzte Änderung: 2015-05-22 06:25:12 von Martin Lemke »
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #5 am: 2015-05-22 22:19:29 »
Hier ein erster Versuch. Es haben sich noch ein paar weitere kleinere Schwierigkeiten aufgetan, die das ganze etwas erschwert haben. Die Übergabe des Artnamens erfolgt via GET (z.B. ?taxon=Erigonoplus_justus).

Die Merkmale 'Gesamteindruck', 'Kopfregion des Männchens', 'Tibia IV', 'Anzahl dorsaler Borsten auf Tibia I, II, III, IV', 'Männlicher Pedipalpus', 'Weiblicher Palpus' und 'Epigyne' habe ich nicht beachtet. Das lässt sich aber sicher noch ändern, falls notwendig.

Ich habe noch nicht ganz verstanden, wie die Trennung der Geschlechter funktionieren soll, daher werden hier erst mal zwei verschiedene Listen erzeugt. Sollte ein Hinweis auf die Unterschiede direkt im Merkmal (also z.B. "Fovea deutlich als Einkerbung erkennbar: Männchen ja, Weibchen nein") stehen oder sollte das ganze als separate Liste am Ende (o.ä.) stehen?

Wahrscheinlich ließe sich auch das Zusammenfassen der Sätze  noch irgendwie realisieren.

Ich bin ab morgen ein paar Tage weg. Die Woche nach Pfingsten habe ich aber frei.

Tobias

PS: Warum kann man eigentlich den Dateityp '.php' nicht als Anhang hochladen?

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #6 am: 2015-05-23 08:34:32 »
Du verfolgst anscheinen einen ganz anderen Ansatz, den Du erst mal erläutern solltest.

Willst Du einen Präprozessor bauen, der die Aufbereitung der Daten vereinfacht, so wie ich es vorschlug, oder willst Du eine Komponente fürs Wiki bauen, die ungeprüft alle Angaben des Schlüssels automatisch ins Wiki integriert?

Letzteres würde ich nicht befürworten. Wie Rainer bereits erwähnte, sind nicht alle Angaben dort präzise (z. B. Augenkonstellationen).

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #7 am: 2015-05-23 09:36:28 »
Nach 1h Bastelei meine Lösung für den von mir vorgeschlagenen 1. Durchlauf: http://media.spinnen-forum.de/tools/LinKey.php

Was fehlt, ist nun de Gruppierung der Daten. Den Rest macht man lieber im Kopf. Inklusive der Frage, ob man etwas weg lässt und wenn ja, was. So bleibt das Ergebnis jederzeit transparent.

Martin



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Lang" content="de">
<meta name="description" content="">
<meta name="keywords" content="">
<title>Integration Linkey</title>
</head>
<body>
<h1>Integration Linkey</h1>
<h3>Version 1.0a</h3>
<div style='width:600px; font-family: sans-serif;'><p>Taxonomische Merkmale des Linyphenschlüssels fürs Wiki aufarbeiten</p></div>
<form method='Post'>
<p><legend>Männchen</legend><br/>
   <textarea cols="80" rows="4" name="text_mal"></textarea>
</p>   
<p><legend>Weibchen</legend><br/>
   <textarea cols="80" rows="4" name="text_fem"></textarea>
</p>   
<input type='submit' name='run' value='Run'>
</form>
<?php

    if (isset($_POST['text_mal']) && isset($_POST['text_fem']))
    {
        $fem=array();
        $mal=array();
        $uni=array();
        $fem=explode(';', $_POST['text_fem']);
        $mal=explode(';', $_POST['text_mal']);
       
        foreach($fem as $f)
        if (in_array($f, $mal))
            $uni[]=$f;
        $fem=array_diff($fem, $uni);
        $mal=array_diff($mal, $uni);
       
        //Ausgabe
        print "<h2>Erfasste Daten</h2>
        <h3>Unisex-Merkmale</h3>
        <ul>";
        foreach($uni as $u)
            print "<li>$u</li>";
        print "</ul>
        <h3>Merkmale Weibchen</h3>
        <ul>";
        foreach($fem as $f)
            print "<li>$f</li>";
        print "</ul>
        <h3>Merkmale Männchen</h3>
        <ul>";
        foreach($mal as $m)
            print "<li>$m</li>";
        print "</ul>";
    }
    print "<ul>";
?>
<hr/><p></p>Zurück zu <a href='index.php'>Wiki-Tools</a></p>
</body>
</html>
</html>
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #8 am: 2015-05-27 10:55:39 »
Du verfolgst anscheinend einen ganz anderen Ansatz, den Du erst mal erläutern solltest.

Ich sehe den Unterschied unserer Ansätze nicht. Deine "Version 2.51" macht nichts anderes als meine (Ich habe einen Fehler gefunden: Bei Linyphia triangularis wird die Prosomalänge nicht ausgegeben. Könnte vielleicht daran liegen, dass beim Weibchen zwei Größenklassen angegeben werden?).

Etwas umständlich finde ich, dass man stets die Seite der SpiEU per Hand aufrufen muss, um die Beschreibung zu kopieren.

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #9 am: 2015-05-27 13:48:14 »
Ich sehe den Unterschied unserer Ansätze nicht. Deine "Version 2.51" macht nichts anderes als meine

Du hast bislang nichts über Deinen Entwurf berichtet. Ich weiß nicht, was für einen Ansatz Du verfolgst.

Zitat
(Ich habe einen Fehler gefunden: Bei Linyphia triangularis wird die Prosomalänge nicht ausgegeben. Könnte vielleicht daran liegen, dass beim Weibchen zwei Größenklassen angegeben werden?).

Erledigt.

Zitat
Etwas umständlich finde ich, dass man stets die Seite der SpiEU per Hand aufrufen muss, um die Beschreibung zu kopieren.

Die Seite muss man sowieso aufrufen, weil man sonst nicht lesen kann, was dort steht.

Was macht denn Deine Lösung?

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #10 am: 2015-05-28 01:12:00 »
Ich habe mich an deinem Vorschlag der Unterteilung in 2 Durchgänge orientiert.
Folgendes ist unterschiedlich: Als Argument wird nur der Artname übergeben, die Daten werden automatisch gelesen.
Nachher stehen alle (gesetzten) Merkmale in einem entsprechenden 2- dimensionalen Array (als Schlüssel der Name des Merkmals, der Inhaltsarray beinhaltet alle Ausprägungen und ist i.d.R. 1D). Das erleichtert eine mögliche spätere Verwendung/Vergleichbarkeit (möglicherweise hast du das in deiner neuen Version aber auch so oder so ähnlich gelöst)

Der 2. Durchgang nutzt grob deinen Formatierungsvorschlag aus Post #5 und ist sicherlich noch optimierbar (möglicherweise über ein Formular, das eine flexible Festlegung der auszugebenden Merkmale ermöglicht, falls notwendig...)

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #11 am: 2015-05-28 05:07:08 »
Ich hatte ein Objekt für die Merkmale gebastelt (Class) aber irgend wie wollte der Zugriff auf die mehrdimensionalen Array nicht funktionieren – wahrscheinlich fehlte nur irgendwo der Aufruf der trim()-Funktion bevor eine Variable als Schlüssel benutzt wird. Ich hatte lange nicht mehr programmiert. Jedenfalls warf ich irgend wann entnervt hin und realisierte die Eigenschaften in separaten einfachen Arrays für $prosoma, $augen, $kopfregion u.s.w. folgender Art:

$kopfregion=array(
'Kopfregion des Männchens: mit Sulci'=>'mit Sulci',
'Kopfregion des Männchens: mit Erhöhung'=>'mit Erhöhung',
'Kopfregion des Männchens: unauffällig'=>'unauffällig',
'Kopfregion des Männchens: komplex'=>'komplex',
'Kopfregion des Männchens: mit Hörnern/Haarbüscheln'=>'mit Hörnern/Haarbüscheln');


Vorher sah das im Prinzip so aus:
$merkmale=array(
  'Kopfregion des Männchens: mit Erhöhung'=>array('Kopfregion', 'mit Erhöhung'),
  'Kopfregion des Männchens: mit Sulci'=>array('Kopfregion','mit Sulci'),
...
'Epigyne: mit Atrium/Grube'=>array('Epigyne','mit Atrium/Grube'),

... u.s.w.

Das ist jetzt zwar weniger elegant, aber funktioniert letztlich auch.

Vereinfachungspotential sehe ich bei meiner Lösung nur darin, anstatt die Eigenschaften für Männchen und Weibchen separiert in ein Forumular zu übertragen, dafür nur ein Formular für beide zu benutzen. Dann müssen die Inhalte intern separiert werden.

Dein Ansatz, den Artnamen einzugeben hätte mich viel zu viel Reverse engeneering gekostet, herauszufinden, wie man damit zu den gewünschten Texten kommt. Du sprachst das Problem der Trennung von Weibchen/Männchen an. Das Problem hätte ich auch, wenn ich mit nur einem Eingabefeld arbeite.

Ungeprüft fällt mir als Lösungsmöglichkeit folgender Ansatz ein: (der Gesamttext sei hier in $text vorhanden)

list($male, $female)=explode('Weibchen', $text);

Die meiste Arbeit bereitete mir der Merkmalskatalog. Da habe ich anfangs einige Merkmale oder Antworten übersehen. Zum Zeitpunkt Deiner Fehlermeldung war der noch nicht komplett. Danke für den Hinweis.

Das Array $sektions=array('Prosoma','Kopfregion','Augen','Chelizeren','Pedipalpen','Sternum','Beine','Epigyne','Opisthosoma'); legt die Reihenfolge der Merkmalsnennungen fest. 'Gesamteindruck' habe ich absichtlich weg gelassen.

Wenn man damit arbeitet, muss man im Blick haben, was an Daten auf der Bestimmungsseite der Uni Bern steht. Viele der lückenhaften Artikel des Wikis sind seit langem nicht mehr bearbeitet worden. Im einen oder anderen Fall sind inzwischen Daten vorhanden (z. B. Körperlänge), die nun ergänzt werden können. Bei der Gelegenheit sollte auch der Platnick-Link durch einen vom WSC ausgetauscht werden – auch hier bedeutet dies, dass man die Seite aufrufen muss, um nachusehen, ob sich etwas geändert hat. Im Einzelfall ist es sinnvoll über den WSC eine Publikation zu öffnen und dort Daten zu entnehmen. Absolut lässt sich der Wokflow also nicht automatisieren, aber einen Präprozessor zu basteln, der die Eigenschaften automatisch separiert und wikigerecht formatiert, das war eine gute Idee von Dir!

Möglicherweise liegt mir meine Lösung einfach nur deshalb mehr, weil sie in jeder Hinsicht meiner Arbeitsweise entspricht.

Hast Du die Möglichkeit Deine Lösung laufen zu lassen oder soll die mit auf den spinnen-forum-Server? Du willst ja hoffentlich damit arbeiten.

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #12 am: 2015-06-01 00:29:14 »
Meine Lösung kann ich hier lokal laufen lassen. Aber ich denke, es ist sinnvoller, ein einheitliches Tool zu nutzen.

Ich habe noch einen Fehler entdeckt: Wenn in der Merkmalsliste zu einem Merkmal mehrere Angaben angegeben sind (konkretes Beispiel: Oedothorax retusus, Kopfregion des Mänchens: mit Sulci; mit Erhöhung;) wird immer nur die erste genannt.
Ich habe das gelöst, indem die Merkmalsbezeichnungen (hier: 'Kopfregion des Männchens') von den Merkmalsausprägungen (also 'mit Sulci' bzw. 'mit Erhöhung') getrennt wird und dann alles schrittweise nacheinander in ein entsprechendes Array eingelesen wird. Das dürfte aber der Struktur deines Programmes widersprechen, wenn ich das richtig verstanden habe.

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #13 am: 2015-06-01 08:54:09 »
Aber ich denke, es ist sinnvoller, ein einheitliches Tool zu nutzen.

Ich sehe dafür keinen Grund. Es ist wie die Frage, ob ich meine Notizen lieber mit Kuli, Gelroller oder Bleistift mache; am Ende ist das Resultat wichtig. Der Weg dahin ist beliebig.

Wichtig ist, dass vermerkt wird, wenn die Art oder ein Geschlecht davon nicht im Linyphiidenschlüssel enthalten ist: {{Fehlt_im_Staeubli-Schluessel|Juni 2015}}

Zitat
Ich habe noch einen Fehler entdeckt ...

In wessen Lösung?

Gib mir mal Deinen aktuellen Source, dann lade ich den hoch.

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.

Tobias Töpfer

  • ****
  • Beiträge: 1344
  • Leverkusen (MTB 4908)
Re: Daten des Linyphenschlüssels einfügen
« Antwort #14 am: 2015-06-10 04:23:20 »
Der Fehler war in deiner Version.

ich komme leider momentan nicht dazu, mich weiter damit zu beschäftigen und habe daher auch keinen ausreichend gut funktionierenden Code anzubieten. Vielleicht finde ich irgendwann demnächst noch mal Zeit dazu.

Tobias

Martin Lemke

  • Administrator
  • *****
  • Beiträge: 14782
  • TK 2130 Lübeck, Schleswig-Holstein, Germany
    • Spinnenerfassung in SH
Re: Daten des Linyphenschlüssels einfügen
« Antwort #15 am: 2015-06-10 06:59:00 »
Erledigt.

Martin
Profil bei Researchgate.net

DAS waren noch Zeiten: Nowegen 2011.