diff --git a/TAPoRCheck.ipynb b/TAPoRCheck.ipynb new file mode 100644 index 0000000..5bbb3cf --- /dev/null +++ b/TAPoRCheck.ipynb @@ -0,0 +1,3408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Review of data ingested from TAPoR (draft)\n", + "\n", + "This is document cheks the TAPoR dataset using the python library Pandas.\n", + "\n", + "Reference to ticket: https://gitlab.gwdg.de/sshoc/data-ingestion/-/issues/7\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Preamble" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [], + "source": [ + "import ast\n", + "import sys\n", + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from bokeh.io import output_notebook, show\n", + "from bokeh.plotting import figure\n", + "\n", + "from im_tutorials.data import *\n", + "from im_tutorials.utilities import flatten_lists\n", + "from im_tutorials.features.text_preprocessing import *\n", + "from im_tutorials.features.document_vectors import document_vector\n", + "from im_tutorials.features.dim_reduction import WrapTSNE, GaussianMixtureEval\n", + "# for db\n", + "import sqlalchemy as db\n", + "from sqlalchemy import *" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [], + "source": [ + "engine = create_engine(\n", + " \"connection_string\")\n", + "connection = engine.connect()\n", + "metadata = db.MetaData()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Import data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Query the DB to get TAPoR data\n", + "\n", + "The TAPoR dataset used in this document is the sql dump published by Education and Research Archive (ERA) University of Alberta: \n", + "\n", + "https://era.library.ualberta.ca/items/f2da0666-f523-44d4-a83c-fa06351a1e94 \n", + "\n", + "(creation date: 2020-01-01).\n", + "The table *tool* contains 1504 records, each one describing a tool. \n", + "Records have been filtered according the value of the field *tool.is_approved*, there are 1363 *approved* records.\n", + "In this document this dataset will be called the **TAPoR dataset**.\n", + "\n", + "*Note that the TAPoR dataset reviewed here is not the same that has been used for the MP ingestion, this document will be update when we'll have it*\n" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "RangeIndex(start=0, stop=1363, step=1)" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_db_tools=pd.read_sql_query('SELECT * FROM TaPOR.tools where is_approved=1 order by last_updated', connection)\n", + "df_db_tools.index" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### An example of TAPoR item\n", + "Let's take a look at a random TAPoR dataset entry.\n", + "(The database schema of the TAPoR dataset is described here: https://era.library.ualberta.ca/items/f2da0666-f523-44d4-a83c-fa06351a1e94/download/8057eae2-3fae-4afa-bc8e-6dcc2a257b6f.)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "id 254\n", + "user_id NaN\n", + "name TextQuest\n", + "detail
TextQuest is a text analysis program availa...\n", + "url http://www.textquest.de/pages/en/general-infor...\n", + "is_approved 1\n", + "creators_name Social Science Consulting\n", + "creators_email info@textquest.de\n", + "creators_url http://www.textquest.de/\n", + "image_url images/tools/0/254.png\n", + "star_average 0\n", + "is_hidden 0\n", + "last_updated 2013-05-13\n", + "documentation_url http://www.textquest.de/pages/en/analysis-of-t...\n", + "code None\n", + "repository \n", + "language NaN\n", + "nature 0\n", + "created_at 2013-05-13 18:57:27\n", + "updated_at 2017-10-31 14:25:28\n", + "recipes \n", + "Name: 500, dtype: object" + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#df_db_tools.dtypes\n", + "df_db_tools.iloc[500]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following table shows 5 records of the TAPoR dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " | id | \n", + "user_id | \n", + "name | \n", + "detail | \n", + "url | \n", + "is_approved | \n", + "creators_name | \n", + "creators_email | \n", + "creators_url | \n", + "image_url | \n", + "... | \n", + "is_hidden | \n", + "last_updated | \n", + "documentation_url | \n", + "code | \n", + "repository | \n", + "language | \n", + "nature | \n", + "created_at | \n", + "updated_at | \n", + "recipes | \n", + "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
906 | \n", + "937 | \n", + "1.0 | \n", + "140kit | \n", + "<p>140kit provides a management layer for twee... | \n", + "https://github.com/WebEcologyProject/140kit | \n", + "1 | \n", + "Ian Pearce, Devin Gaffney | \n", + "None | \n", + "None | \n", + "images/tools/1/937.png | \n", + "... | \n", + "0 | \n", + "2018-10-05 | \n", + "None | \n", + "None | \n", + "None | \n", + "NaN | \n", + "0 | \n", + "2015-05-24 00:00:00 | \n", + "2018-10-05 04:43:34 | \n", + "\n", + " |
334 | \n", + "1229 | \n", + "1.0 | \n", + "3DVIA Virtools | \n", + "<p>A software tool for the creation of 3D inte... | \n", + "None | \n", + "1 | \n", + "Dassault Systemes | \n", + "None | \n", + "None | \n", + "None | \n", + "... | \n", + "0 | \n", + "None | \n", + "None | \n", + "None | \n", + "None | \n", + "NaN | \n", + "0 | \n", + "2014-12-29 00:00:00 | \n", + "2014-12-29 00:00:00 | \n", + "\n", + " |
688 | \n", + "783 | \n", + "1.0 | \n", + "4th Dimension | \n", + "4th Dimension is a graphic environment for dev... | \n", + "http://www.4d.com/products/4d2004/4dstandarded... | \n", + "1 | \n", + "4D | \n", + "None | \n", + "http://www.4d.com/ | \n", + "images/tools/1/783.png | \n", + "... | \n", + "0 | \n", + "2018-09-18 | \n", + "None | \n", + "None | \n", + "None | \n", + "NaN | \n", + "0 | \n", + "2015-05-24 00:00:00 | \n", + "2018-09-18 20:39:31 | \n", + "\n", + " |
1156 | \n", + "648 | \n", + "937.0 | \n", + "80legs | \n", + "80legs is a web crawling service. You need to ... | \n", + "http://80legs.com/ | \n", + "1 | \n", + "80legs | \n", + "\n", + " | \n", + " | images/tools/1/648.png | \n", + "... | \n", + "0 | \n", + "2018-10-30 | \n", + "None | \n", + "None | \n", + "\n", + " | NaN | \n", + "0 | \n", + "2017-10-15 23:04:46 | \n", + "2018-10-30 16:03:45 | \n", + "\n", + " |
770 | \n", + "1454 | \n", + "1.0 | \n", + "960 Grid System | \n", + "<p>960 Grid System is a CSS template that come... | \n", + "https://960.gs/ | \n", + "1 | \n", + "Nathan Smith | \n", + "None | \n", + "http://sonspring.com/ | \n", + "images/tools/2/1454.png | \n", + "... | \n", + "0 | \n", + "2018-09-27 | \n", + "None | \n", + "None | \n", + "https://github.com/nathansmith/960-Grid-System | \n", + "NaN | \n", + "0 | \n", + "2014-12-29 00:00:00 | \n", + "2018-09-27 22:29:43 | \n", + "\n", + " |
5 rows × 21 columns
\n", + "140kit provides a management layer for twee... \n", + "334
A software tool for the creation of 3D inte... \n", + "688 4th Dimension is a graphic environment for dev... \n", + "1156 80legs is a web crawling service. You need to ... \n", + "770
960 Grid System is a CSS template that come... \n", + "\n", + " url is_approved \\\n", + "906 https://github.com/WebEcologyProject/140kit 1 \n", + "334 None 1 \n", + "688 http://www.4d.com/products/4d2004/4dstandarded... 1 \n", + "1156 http://80legs.com/ 1 \n", + "770 https://960.gs/ 1 \n", + "\n", + " creators_name creators_email creators_url \\\n", + "906 Ian Pearce, Devin Gaffney None None \n", + "334 Dassault Systemes None None \n", + "688 4D None http://www.4d.com/ \n", + "1156 80legs \n", + "770 Nathan Smith None http://sonspring.com/ \n", + "\n", + " image_url ... is_hidden last_updated documentation_url \\\n", + "906 images/tools/1/937.png ... 0 2018-10-05 None \n", + "334 None ... 0 None None \n", + "688 images/tools/1/783.png ... 0 2018-09-18 None \n", + "1156 images/tools/1/648.png ... 0 2018-10-30 None \n", + "770 images/tools/2/1454.png ... 0 2018-09-27 None \n", + "\n", + " code repository language nature \\\n", + "906 None None NaN 0 \n", + "334 None None NaN 0 \n", + "688 None None NaN 0 \n", + "1156 None NaN 0 \n", + "770 None https://github.com/nathansmith/960-Grid-System NaN 0 \n", + "\n", + " created_at updated_at recipes \n", + "906 2015-05-24 00:00:00 2018-10-05 04:43:34 \n", + "334 2014-12-29 00:00:00 2014-12-29 00:00:00 \n", + "688 2015-05-24 00:00:00 2018-09-18 20:39:31 \n", + "1156 2017-10-15 23:04:46 2018-10-30 16:03:45 \n", + "770 2014-12-29 00:00:00 2018-09-27 22:29:43 \n", + "\n", + "[5 rows x 21 columns]" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_db_tools.sort_values('name').head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Check for duplicates in TAPoR dataset\n", + "Considering the values for 'name' and 'url', it appears that in the TAPoR dataset there are 4 duplicated descriptions" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " | id | \n", + "user_id | \n", + "name | \n", + "detail | \n", + "url | \n", + "is_approved | \n", + "creators_name | \n", + "creators_email | \n", + "creators_url | \n", + "image_url | \n", + "... | \n", + "is_hidden | \n", + "last_updated | \n", + "documentation_url | \n", + "code | \n", + "repository | \n", + "language | \n", + "nature | \n", + "created_at | \n", + "updated_at | \n", + "recipes | \n", + "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1358 | \n", + "148 | \n", + "NaN | \n", + "AntConc | \n", + "AntConc is free concordance software. It is mu... | \n", + "http://www.laurenceanthony.net/software/antconc/ | \n", + "1 | \n", + "Laurence Anthony | \n", + "anthony@waseda.jp | \n", + "http://www.antlab.sci.waseda.ac.jp/index.html | \n", + "images/tools/0/148.png | \n", + "... | \n", + "0 | \n", + "2019-08-19 | \n", + "http://www.laurenceanthony.net/software/antcon... | \n", + "None | \n", + "\n", + " | NaN | \n", + "0 | \n", + "2012-07-30 18:25:44 | \n", + "2019-08-19 00:37:45 | \n", + "\n", + " |
1362 | \n", + "1565 | \n", + "1201.0 | \n", + "SentiStrength | \n", + "SentiStrength is a sentiment analysis (opinion... | \n", + "http://sentistrength.wlv.ac.uk/ | \n", + "1 | \n", + "Mike Thelwall | \n", + "m.thelwall@wlv.ac.uk | \n", + "http://sentistrength.wlv.ac.uk | \n", + "images/tools/3/1565.png | \n", + "... | \n", + "0 | \n", + "2019-09-27 | \n", + "None | \n", + "None | \n", + "\n", + " | NaN | \n", + "0 | \n", + "2019-09-20 05:03:47 | \n", + "2019-09-27 10:03:35 | \n", + "\n", + " |
652 | \n", + "580 | \n", + "937.0 | \n", + "Voyant 2.0: Knots | \n", + "Voyant Knots is a visualization where a line i... | \n", + "http://voyant-tools.org/?view=knots | \n", + "1 | \n", + "Stéfan Sinclair and Geoffrey Rockwell | \n", + "stefan.sinclair@mcgill.ca | \n", + "http://stefansinclair.name/ | \n", + "images/tools/1/580.png | \n", + "... | \n", + "1 | \n", + "2016-04-29 | \n", + "None | \n", + "None | \n", + "\n", + " | NaN | \n", + "0 | \n", + "2016-04-29 16:08:28 | \n", + "2017-10-31 14:26:36 | \n", + "\n", + " |
653 | \n", + "581 | \n", + "937.0 | \n", + "Voyant 2.0: Knots | \n", + "Voyant Knots is a visualization where a line i... | \n", + "http://voyant-tools.org/?view=knots | \n", + "1 | \n", + "Stéfan Sinclair and Geoffrey Rockwell | \n", + "stefan.sinclair@mcgill.ca | \n", + "http://stefansinclair.name/ | \n", + "images/tools/1/581.png | \n", + "... | \n", + "0 | \n", + "2016-04-29 | \n", + "None | \n", + "None | \n", + "\n", + " | NaN | \n", + "0 | \n", + "2016-04-29 16:11:55 | \n", + "2017-10-31 14:26:36 | \n", + "\n", + " |
4 rows × 21 columns
\n", + "\n", + " | id | \n", + "category | \n", + "label | \n", + "version | \n", + "description | \n", + "licenses | \n", + "contributors | \n", + "properties | \n", + "accessibleAt | \n", + "sourceItemId | \n", + "... | \n", + "status | \n", + "comments | \n", + "olderVersions | \n", + "newerVersions | \n", + "repository | \n", + "source.id | \n", + "source.label | \n", + "source.url | \n", + "source.urlTemplate | \n", + "source | \n", + "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
326 | \n", + "335 | \n", + "tool | \n", + "EVI-LINHD | \n", + "None | \n", + "EVI-LINHD is a free and open-source cloud plat... | \n", + "[] | \n", + "[{'actor': {'id': 275, 'name': 'Elena González... | \n", + "[{'id': 2702, 'type': {'code': 'thumbnail', 'l... | \n", + "http://www.evilinhd.com/ | \n", + "594 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
532 | \n", + "776 | \n", + "tool | \n", + "JSAN | \n", + "None | \n", + "The Integrated JStylo and Anonymouth Package. ... | \n", + "[] | \n", + "[{'actor': {'id': 493, 'name': '18th Connect',... | \n", + "[{'id': 7310, 'type': {'code': 'thumbnail', 'l... | \n", + "https://github.com/psal/jstylo | \n", + "1559 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
533 | \n", + "451 | \n", + "tool | \n", + "JSAN | \n", + "None | \n", + "The Integrated JStylo and Anonymouth Package. ... | \n", + "[] | \n", + "[{'actor': {'id': 493, 'name': '18th Connect',... | \n", + "[{'id': 4037, 'type': {'code': 'keyword', 'lab... | \n", + "https://github.com/psal/jstylo | \n", + "1557 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
697 | \n", + "1186 | \n", + "tool | \n", + "NodeXL | \n", + "None | \n", + "NodeXL is a free, open source tool for generat... | \n", + "[] | \n", + "[{'actor': {'id': 832, 'name': 'M. Smith, N. M... | \n", + "[{'id': 11766, 'type': {'code': 'license-type'... | \n", + "http://nodexl.codeplex.com/ | \n", + "482 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
854 | \n", + "560 | \n", + "tool | \n", + "Python Tools for Text-Analysis | \n", + "None | \n", + "This is a set of simple, free tools for analyz... | \n", + "[] | \n", + "[{'actor': {'id': 424, 'name': 'David L. Hoove... | \n", + "[{'id': 5060, 'type': {'code': 'thumbnail', 'l... | \n", + "https://wp.nyu.edu/exceltextanalysis/python_to... | \n", + "1507 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
947 | \n", + "1136 | \n", + "tool | \n", + "SentiStrength | \n", + "None | \n", + "SentiStrength is a tool for sentiment analysis... | \n", + "[] | \n", + "[{'actor': {'id': 799, 'name': 'Thelwall, M., ... | \n", + "[{'id': 11290, 'type': {'code': 'keyword', 'la... | \n", + "http://sentistrength.wlv.ac.uk/ | \n", + "453 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
948 | \n", + "378 | \n", + "tool | \n", + "SentiStrength | \n", + "None | \n", + "It is a sentiment analysis program. Automatic ... | \n", + "[] | \n", + "[{'actor': {'id': 493, 'name': '18th Connect',... | \n", + "[{'id': 3210, 'type': {'code': 'thumbnail', 'l... | \n", + "http://sentistrength.wlv.ac.uk/ | \n", + "1564 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
1187 | \n", + "607 | \n", + "tool | \n", + "UCINET | \n", + "None | \n", + "UCINET is a social media analysis set for soft... | \n", + "[] | \n", + "[{'actor': {'id': 459, 'name': 'Borgatti, S.P.... | \n", + "[{'id': 5501, 'type': {'code': 'tadirah-method... | \n", + "https://sites.google.com/site/ucinetsoftware/home | \n", + "576 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
476 | \n", + "165 | \n", + "tool | \n", + "igraph | \n", + "None | \n", + "igraph is an open source collection of network... | \n", + "[] | \n", + "[{'actor': {'id': 147, 'name': 'Gábor Csárdi, ... | \n", + "[{'id': 771, 'type': {'code': 'tadirah-methods... | \n", + "http://igraph.org/ | \n", + "623 | \n", + "... | \n", + "ingested | \n", + "[] | \n", + "[] | \n", + "[] | \n", + "None | \n", + "1.0 | \n", + "TAPoR | \n", + "http://tapor.ca | \n", + "http://tapor.ca/tools/{source-item-id} | \n", + "NaN | \n", + "
9 rows × 23 columns
\n", + "\n", + " | name | \n", + "url | \n", + "_merge | \n", + "
---|---|---|---|
0 | \n", + "140kit | \n", + "https://github.com/WebEcologyProject/140kit | \n", + "both | \n", + "
1 | \n", + "3DVIA Virtools | \n", + "\n", + " | both | \n", + "
2 | \n", + "4th Dimension | \n", + "http://www.4d.com/products/4d2004/4dstandarded... | \n", + "both | \n", + "
3 | \n", + "80legs | \n", + "http://80legs.com/ | \n", + "both | \n", + "
4 | \n", + "960 Grid System | \n", + "https://960.gs/ | \n", + "both | \n", + "
\n", + " | name | \n", + "url | \n", + "_merge | \n", + "
---|---|---|---|
142 | \n", + "CONDOR | \n", + "http://www.ickn.org/ckntools.html | \n", + "left_only | \n", + "
144 | \n", + "CQPweb | \n", + "https://cqpweb.lancs.ac.uk/ | \n", + "left_only | \n", + "
146 | \n", + "CSV Sort | \n", + "https://bitbucket.org/richardpenman/csvsort | \n", + "left_only | \n", + "
156 | \n", + "CasualConc | \n", + "https://sites.google.com/site/casualconc/ | \n", + "left_only | \n", + "
161 | \n", + "Chartle | \n", + "\n", + " | left_only | \n", + "
163 | \n", + "Chorus | \n", + "http://chorusanalytics.co.uk/ | \n", + "left_only | \n", + "
165 | \n", + "Chronos Timeline | \n", + "http://hyperstudio.mit.edu/software/chronos-ti... | \n", + "left_only | \n", + "
180 | \n", + "Code Bubbles | \n", + "http://cs.brown.edu/~spr/codebubbles/ | \n", + "left_only | \n", + "
184 | \n", + "Colaboratory | \n", + "https://colab.research.google.com/notebooks/we... | \n", + "left_only | \n", + "
214 | \n", + "ContaWords | \n", + "http://contawords.iula.upf.edu/ | \n", + "left_only | \n", + "
215 | \n", + "Contropedia | \n", + "http://contropedia.net/ | \n", + "left_only | \n", + "
220 | \n", + "Cowo | \n", + "https://github.com/seinecle/Cowo/blob/master/R... | \n", + "left_only | \n", + "
223 | \n", + "Critic Markup | \n", + "http://criticmarkup.com/ | \n", + "left_only | \n", + "
228 | \n", + "Cytoscape | \n", + "http://www.cytoscape.org/ | \n", + "left_only | \n", + "
254 | \n", + "Density Design - Knot | \n", + "http://www.densitydesign.org/research/knot/ | \n", + "left_only | \n", + "
255 | \n", + "DfR Browser | \n", + "https://agoldst.github.io/dfr-browser/ | \n", + "left_only | \n", + "
300 | \n", + "EVI-LINHD | \n", + "http://www.evilinhd.com/ | \n", + "left_only | \n", + "
307 | \n", + "EgoWeb 2.0 | \n", + "http://www.rand.org/methods/egoweb.html | \n", + "left_only | \n", + "
332 | \n", + "Facepager | \n", + "https://github.com/strohne/Facepager | \n", + "left_only | \n", + "
342 | \n", + "Find Locations from A Text (Named-Entity Recog... | \n", + "\n", + " | left_only | \n", + "
\n", + " | name | \n", + "url | \n", + "_merge | \n", + "
---|---|---|---|
1343 | \n", + "ANNIS | \n", + "\n", + " | right_only | \n", + "
1344 | \n", + "Adobe Flash | \n", + "\n", + " | right_only | \n", + "
1345 | \n", + "Ainm.ie | \n", + "\n", + " | right_only | \n", + "
1346 | \n", + "Alpheios | \n", + "\n", + " | right_only | \n", + "
1347 | \n", + "Anastasia | \n", + "\n", + " | right_only | \n", + "
1348 | \n", + "ArcExplorer | \n", + "\n", + " | right_only | \n", + "
1349 | \n", + "AroniSmartIntelligence™ | \n", + "\n", + " | right_only | \n", + "
1350 | \n", + "Aruspix | \n", + "\n", + " | right_only | \n", + "
1351 | \n", + "BASE | \n", + "\n", + " | right_only | \n", + "
1352 | \n", + "Basement Waterproofing: Tips and Instructions | \n", + "\n", + " | right_only | \n", + "
1353 | \n", + "Berkeley Parser | \n", + "\n", + " | right_only | \n", + "
1354 | \n", + "CATMA (Computer Aided Textual Markup and Analy... | \n", + "http://www.catma.de/ | \n", + "right_only | \n", + "
1355 | \n", + "Canva \"The Amazingly Simple Graphic Design Sof... | \n", + "\n", + " | right_only | \n", + "
1356 | \n", + "Chicken | \n", + "\n", + " | right_only | \n", + "
1357 | \n", + "CloudConvert | \n", + "\n", + " | right_only | \n", + "
1358 | \n", + "Collocate | \n", + "http:// | \n", + "right_only | \n", + "
1359 | \n", + "Commentpress | \n", + "\n", + " | right_only | \n", + "
1360 | \n", + "CoolTool NeuroLab | \n", + "\n", + " | right_only | \n", + "
1361 | \n", + "Datapress | \n", + "\n", + " | right_only | \n", + "
1362 | \n", + "Delicious | \n", + "\n", + " | right_only | \n", + "
\n", + " | name | \n", + "url | \n", + "last_updated | \n", + "
---|---|---|---|
423 | \n", + "List Words - HTML (TAPoRware) | \n", + "http://taporware.ualberta.ca/~taporware/htmlTo... | \n", + "2011-11-27 | \n", + "
424 | \n", + "List Words - XML (TAPoRware) | \n", + "http://taporware.ualberta.ca/~taporware/xmlToo... | \n", + "2011-11-27 | \n", + "
425 | \n", + "List Words - Plain Text (TAPoRware) | \n", + "http://taporware.ualberta.ca/~taporware/textTo... | \n", + "2011-11-28 | \n", + "
426 | \n", + "List Tags - HTML (TAPoRware) | \n", + "http://taporware.ualberta.ca/~taporware/htmlTo... | \n", + "2011-11-28 | \n", + "
427 | \n", + "List XML Elements (TAPoRware) | \n", + "http://taporware.ualberta.ca/~taporware/xmlToo... | \n", + "2011-11-28 | \n", + "
\n", + " | url | \n", + "status | \n", + "
---|---|---|
0 | \n", + "test | \n", + "1.0 | \n", + "
1 | \n", + "http://taporware.ualberta.ca/~taporware/htmlTo... | \n", + "404.0 | \n", + "
2 | \n", + "http://taporware.ualberta.ca/~taporware/textTo... | \n", + "404.0 | \n", + "
3 | \n", + "http://taporware.ualberta.ca/~taporware/htmlTo... | \n", + "404.0 | \n", + "
4 | \n", + "http://taporware.ualberta.ca/~taporware/textTo... | \n", + "404.0 | \n", + "
\n", + " | name | \n", + "
---|---|
0 | \n", + "Type of analysis | \n", + "
1 | \n", + "Type of license | \n", + "
2 | \n", + "Background Processing | \n", + "
3 | \n", + "Web Usable | \n", + "
4 | \n", + "Ease of Use | \n", + "
5 | \n", + "Warning | \n", + "
6 | \n", + "Usage | \n", + "
7 | \n", + "Tool Family | \n", + "
8 | \n", + "Historic Tool (developed before 2005) | \n", + "
9 | \n", + "Compute Canada | \n", + "
10 | \n", + "Link to Recipe | \n", + "
11 | \n", + "TaDiRAH Goals | \n", + "
12 | \n", + "TaDiRAH Methods | \n", + "
\n", + " | id | \n", + "name | \n", + "creators_name | \n", + "url | \n", + "
---|---|---|---|---|
0 | \n", + "579 | \n", + "Voyant 2.0: Knots | \n", + "Stéfan Sinclair and Geoffrey Rockwell | \n", + "http://voyant-tools.org/?view=knots | \n", + "
1 | \n", + "591 | \n", + "Warc Extractor | \n", + "Ryan Chartier & Internet Archive | \n", + "https://github.com/recrm/ArchiveTools/blob/mas... | \n", + "
2 | \n", + "754 | \n", + "TAGS https://t.co/T007ezdZoA | \n", + "\n", + " | None | \n", + "
3 | \n", + "755 | \n", + "Multiple enhancements to DiRT Directory (tools... | \n", + "\n", + " | None | \n", + "
4 | \n", + "758 | \n", + "RT : Today's \"dirt\": DiRT now uses TaDiRAH ter... | \n", + "\n", + " | None | \n", + "
5 | \n", + "823 | \n", + "Basement Waterproofing: Tips and Instructions | \n", + "\n", + " | None | \n", + "
6 | \n", + "1017 | \n", + "Datapress | \n", + "MIT CSAIL | \n", + "None | \n", + "
7 | \n", + "1063 | \n", + "WordVenture | \n", + "WordNet | \n", + "None | \n", + "
8 | \n", + "1174 | \n", + "VoiceThread | \n", + "VoiceThread LLC | \n", + "None | \n", + "
9 | \n", + "1183 | \n", + "Purdue OWL | \n", + "Purdue University Writing Lab, Purdue Universi... | \n", + "None | \n", + "
10 | \n", + "1352 | \n", + "Aruspix | \n", + "\n", + " | None | \n", + "
11 | \n", + "1369 | \n", + "MMax2 | \n", + "\n", + " | None | \n", + "
12 | \n", + "1377 | \n", + "Lextek | \n", + "\n", + " | None | \n", + "
\n", + " | id | \n", + "name | \n", + "detail | \n", + "creators_name | \n", + "last_updated | \n", + "attributetype | \n", + "attribute | \n", + "
---|---|---|---|---|---|---|---|
43724 | \n", + "1499 | \n", + "iPhoto | \n", + "<p>iPhoto is a digital photograph manipulation... | \n", + "Apple | \n", + "2018-10-12 | \n", + "Type of analysis | \n", + "Organizing | \n", + "
43726 | \n", + "1499 | \n", + "iPhoto | \n", + "<p>iPhoto is a digital photograph manipulation... | \n", + "Apple | \n", + "2018-10-12 | \n", + "Type of analysis | \n", + "Storage | \n", + "
43748 | \n", + "1500 | \n", + "Google 3D Warehouse | \n", + "<p>A collection of free-to-download 3D models ... | \n", + "2018-11-06 | \n", + "Type of analysis | \n", + "Collaboration | \n", + "|
43749 | \n", + "1500 | \n", + "Google 3D Warehouse | \n", + "<p>A collection of free-to-download 3D models ... | \n", + "2018-11-06 | \n", + "Type of analysis | \n", + "Dissemination | \n", + "|
43750 | \n", + "1500 | \n", + "Google 3D Warehouse | \n", + "<p>A collection of free-to-download 3D models ... | \n", + "2018-11-06 | \n", + "Type of analysis | \n", + "Modeling | \n", + "|
43759 | \n", + "1501 | \n", + "SketchUp (Formerly Google SketchUp) | \n", + "<p>Google SketchUp is easy-to-use free 3D mode... | \n", + "2018-10-26 | \n", + "Type of analysis | \n", + "Creation | \n", + "|
43760 | \n", + "1501 | \n", + "SketchUp (Formerly Google SketchUp) | \n", + "<p>Google SketchUp is easy-to-use free 3D mode... | \n", + "2018-10-26 | \n", + "Type of analysis | \n", + "Interpretation | \n", + "|
43761 | \n", + "1501 | \n", + "SketchUp (Formerly Google SketchUp) | \n", + "<p>Google SketchUp is easy-to-use free 3D mode... | \n", + "2018-10-26 | \n", + "Type of analysis | \n", + "Modeling | \n", + "|
43790 | \n", + "1502 | \n", + "GIMP (GNU Image Manipulation Program) | \n", + "<p>GIMP is image editing software, much like P... | \n", + "GIMP Team | \n", + "None | \n", + "Type of analysis | \n", + "Creation | \n", + "
43818 | \n", + "1556 | \n", + "Reaper | \n", + "REAPER is a complete digital audio production ... | \n", + "Cockos | \n", + "2019-03-24 | \n", + "Type of analysis | \n", + "Creation | \n", + "
iPhoto is a digital photograph manipulation... Apple \n", + "43726
iPhoto is a digital photograph manipulation... Apple \n", + "43748
A collection of free-to-download 3D models ... Google \n", + "43749
A collection of free-to-download 3D models ... Google \n", + "43750
A collection of free-to-download 3D models ... Google \n", + "43759
Google SketchUp is easy-to-use free 3D mode... Google \n", + "43760
Google SketchUp is easy-to-use free 3D mode... Google \n", + "43761
Google SketchUp is easy-to-use free 3D mode... Google \n", + "43790
GIMP is image editing software, much like P... GIMP Team \n",
+ "43818 REAPER is a complete digital audio production ... Cockos \n",
+ "\n",
+ " last_updated attributetype attribute \n",
+ "43724 2018-10-12 Type of analysis Organizing \n",
+ "43726 2018-10-12 Type of analysis Storage \n",
+ "43748 2018-11-06 Type of analysis Collaboration \n",
+ "43749 2018-11-06 Type of analysis Dissemination \n",
+ "43750 2018-11-06 Type of analysis Modeling \n",
+ "43759 2018-10-26 Type of analysis Creation \n",
+ "43760 2018-10-26 Type of analysis Interpretation \n",
+ "43761 2018-10-26 Type of analysis Modeling \n",
+ "43790 None Type of analysis Creation \n",
+ "43818 2019-03-24 Type of analysis Creation "
+ ]
+ },
+ "execution_count": 119,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_to_ta=df_db_sub[df_db_sub['attributetype'] == 'Type of analysis'].drop_duplicates()\n",
+ "df_to_ta.tail(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Analysis 434\n",
+ "Visualization 236\n",
+ "Content Analysis 185\n",
+ "Search 139\n",
+ "Natural Language Processing 125\n",
+ "Discovering 124\n",
+ "Capture 113\n",
+ "Gathering 97\n",
+ "Publishing 92\n",
+ "Dissemination 91\n",
+ "Enrichment 90\n",
+ "Annotating 83\n",
+ "Collaboration 80\n",
+ "Organizing 71\n",
+ "Creation 52\n",
+ "Uncategorized 49\n",
+ "Storage 40\n",
+ "Web development 39\n",
+ "Modeling 25\n",
+ "Programming 22\n",
+ "Interpretation 18\n",
+ "RDF 12\n",
+ "Name: attribute, dtype: int64"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df_db_a = df_to_ta['attribute'].value_counts()\n",
+ "df_db_a.head(25)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "