{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we use the R package \"SPARQL\" to query the [Nomisma](http://nomisma.org/sparql) sparql endpoint. We pass the endpoint URL to a variable called 'endpoint', and we pass the FULL sparql query to a variable called 'query'.\n", "\n", "To run the query, we just run `SPARQL(endpoint,query)`. These results are then passed to a dataframe (which you can think of as the table of the data)." ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [], "source": [ "# based on https://www.r-bloggers.com/sparql-with-r-in-less-than-5-minutes/\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Loading required package: XML\n", "Loading required package: RCurl\n", "Loading required package: bitops\n" ] } ], "source": [ "library(SPARQL) # SPARQL querying package\n", "library(ggplot2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 1 - Set up preliminaries and define query" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "# Define the endpoint\n", "endpoint <- \"http://nomisma.org/query\"" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [], "source": [ "# create query statement\n", "# Here we are retrieving coins of RIC Augustus 1A and 1B\n", "# Do you see where that part is specified?\n", "\n", "query <- \"PREFIX rdf:\t\t\n", "PREFIX dcterms:\t\t\n", "PREFIX nm:\t\t\n", "PREFIX nmo:\t\t\n", "PREFIX foaf:\t\t\n", "PREFIX skos:\t\n", "\n", "SELECT ?object ?type ?diameter ?weight ?axis ?type ?collection \n", "WHERE {\n", "\t{?object nmo:hasTypeSeriesItem }\n", "\tUNION { ?object nmo:hasTypeSeriesItem }\n", "\t?object rdf:type nmo:NumismaticObject .\n", "\tOPTIONAL { ?object nmo:hasWeight ?weight }\n", "\tOPTIONAL { ?object nmo:hasDiameter ?diameter }\n", "\tOPTIONAL { ?object nmo:hasAxis ?axis }\n", "\tOPTIONAL { ?object dcterms:identifier ?identifier }\n", "\tOPTIONAL { ?object nmo:hasCollection ?colUri .\n", "\t\t?colUri skos:prefLabel ?collection FILTER(langMatches(lang(?collection), 'EN'))}\n", "\t\n", "}\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 2 - Use SPARQL package to submit query and save results to a data frame" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [], "source": [ "qd <- SPARQL(endpoint,query)\n", "df <- qd$results" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\t\n", "\n", "
objecttypediameterweightaxiscollection
<http://collection.britishmuseum.org/id/object/CGR219967> NA NA 1.51 2 \"British Museum\"@en
<http://collection.britishmuseum.org/id/object/CGR219966> NA NA 1.71 8 \"British Museum\"@en
<http://collection.britishmuseum.org/id/object/CGR90067> NA NA 1.55 4 \"British Museum\"@en
<http://collection.britishmuseum.org/id/object/CGR90066> NA NA 1.81 7 \"British Museum\"@en
<http://data.fitzmuseum.cam.ac.uk/id/object/103909> NA NA 1.55 12 \"Fitzwilliam Museum\"@en
<http://numismatics.org/collection/1944.100.39025> NA 14.5 1.75 2 \"American Numismatic Society\"@en
\n" ], "text/latex": [ "\\begin{tabular}{r|llllll}\n", " object & type & diameter & weight & axis & collection\\\\\n", "\\hline\n", "\t & NA & NA & 1.51 & 2 & \"British Museum\"@en \\\\\n", "\t & NA & NA & 1.71 & 8 & \"British Museum\"@en \\\\\n", "\t & NA & NA & 1.55 & 4 & \"British Museum\"@en \\\\\n", "\t & NA & NA & 1.81 & 7 & \"British Museum\"@en \\\\\n", "\t & NA & NA & 1.55 & 12 & \"Fitzwilliam Museum\"@en \\\\\n", "\t & NA & 14.5 & 1.75 & 2 & \"American Numismatic Society\"@en \\\\\n", "\\end{tabular}\n" ], "text/markdown": [ "\n", "object | type | diameter | weight | axis | collection | \n", "|---|---|---|---|---|---|\n", "| | NA | NA | 1.51 | 2 | \"British Museum\"@en | \n", "| | NA | NA | 1.71 | 8 | \"British Museum\"@en | \n", "| | NA | NA | 1.55 | 4 | \"British Museum\"@en | \n", "| | NA | NA | 1.81 | 7 | \"British Museum\"@en | \n", "| | NA | NA | 1.55 | 12 | \"Fitzwilliam Museum\"@en | \n", "| | NA | 14.5 | 1.75 | 2 | \"American Numismatic Society\"@en | \n", "\n", "\n" ], "text/plain": [ " object type diameter\n", "1 NA NA \n", "2 NA NA \n", "3 NA NA \n", "4 NA NA \n", "5 NA NA \n", "6 NA 14.5 \n", " weight axis collection \n", "1 1.51 2 \"British Museum\"@en \n", "2 1.71 8 \"British Museum\"@en \n", "3 1.55 4 \"British Museum\"@en \n", "4 1.81 7 \"British Museum\"@en \n", "5 1.55 12 \"Fitzwilliam Museum\"@en \n", "6 1.75 2 \"American Numismatic Society\"@en" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# check the first few rows to see what we've got\n", "head(df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 3 - Fix data class if necessary" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data.frame':\t28 obs. of 6 variables:\n", " $ object : chr \"\" \"\" \"\" \"\" ...\n", " $ type : logi NA NA NA NA NA NA ...\n", " $ diameter : num NA NA NA NA NA 14.5 13.5 13.5 14.5 14 ...\n", " $ weight : num 1.51 1.71 1.55 1.81 1.55 1.75 1.63 1.48 1.73 1.66 ...\n", " $ axis : int 2 8 4 7 12 2 9 5 5 2 ...\n", " $ collection: chr \"\\\"British Museum\\\"@en\" \"\\\"British Museum\\\"@en\" \"\\\"British Museum\\\"@en\" \"\\\"British Museum\\\"@en\" ...\n" ] } ], "source": [ "# Numbers are sometimes returned as characters\n", "#check to see if a column is character (chr) or numeric\n", "str(df)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "# if any of the columns were coded as characters, but we needed them as numeric, we\n", "# could select the relevant column with the $ and convert it like so:\n", "# eg, if 'weight' was chr, we select the weight column and we copy it, turn it into numeric, and paste it back in place\n", "\n", "#df$weight <- as.numeric(as.character(df$weight))\n", "#str(df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step 4 See what we've got" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/html": [ "1.65639285714286" ], "text/latex": [ "1.65639285714286" ], "text/markdown": [ "1.65639285714286" ], "text/plain": [ "[1] 1.656393" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "7.28571428571429" ], "text/latex": [ "7.28571428571429" ], "text/markdown": [ "7.28571428571429" ], "text/plain": [ "[1] 7.285714" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "13.755625" ], "text/latex": [ "13.755625" ], "text/markdown": [ "13.755625" ], "text/plain": [ "[1] 13.75563" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# so now we could do some statistics. Incidentally, there were empty cells that now have in them; we need to ignore them when we calculate the mean\n", "mean(df$weight, na.rm = TRUE)\n", "mean(df$axis, na.rm = TRUE)\n", "mean(df$diameter, na.rm = TRUE)" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ " \n", " 12 13 13.09 13.5 14 14.5 15\n", " \"American Numismatic Society\"@en 0 0 0 2 1 4 1\n", " \"British Museum\"@en 0 0 0 0 0 0 0\n", " \"Fitzwilliam Museum\"@en 0 0 0 0 0 0 0\n", " \"Münzkabinett Berlin\"@en 1 3 0 0 3 0 0\n", " \"Münzkabinett der Universität Göttingen\"@en 0 0 1 0 0 0 0\n", " \"University of Graz\"@en 0 0 0 0 0 0 0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# how many examples do we have from each collection, with how many at what diameter?\n", "summary_table <- table(df$collection, df$diameter)\n", "summary_table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Step 5 - Visualize some aspects of the data" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "`geom_smooth()` using method = 'loess'\n" ] }, { "data": {}, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n448/vpPjLO1oCKHq+i6vORSILgYGwS5ODz/88Jw5c37wgx8cc8wxXb/V8uXLKysr/cZUqDp5\nfocNG/bGG2+0Tr7xxhu9evVyEn1I3nzzzY8//nhH50R3SEMIWNd3ec0heF0PDMXTpk3LSkm0\nN2vWrMcff/yKK64YMGDAxo0bN27cuHnz5paP6YsXL54+ffrxxx9fWloaRdH06dM3b968devW\njz766JFHHnnhhRcuvPDCYcOGxf0I6BmdPL/tXgn77rvv/Pnza2pq9tlnnzfffPMXv/jFmWee\n2faMafLdfffdV1paeskll7SdqSGEraGhYd26dRs3bnz55Zf32GOPgQMHtp4w18kurzmEp5NX\nQrcCgw95sXnhhReampruvffe1jn77bffz372syiKPv300+XLl7ceWykrK5s3b96nn35aVlY2\ncODA66+/fsyYMfEUTQZ08vy2eyUMHTr0hhtuePDBB59++um99trr7LPPvuiii+IrnB72ySef\nvP766y1XrGhLQwjb+vXrr7nmmpa/P/zww1dffbWoqOjxxx+POt3lNYfwdPJK6FZgSKTT6awX\nDwBAz3OOHQBAIAQ7AIBACHYAAIEQ7AAAAiHYAQAEQrADAAiEYAcAEAjBDiCKomjhwoWJROI/\n//M/4y4kinKsGCCPCHZACBoaGmbNmjV+/Ph99tmnrKysqqpq3LhxM2fO3Lp1a1z17LPPPolE\n4qabboqlAKAw+eUJIO+tX7/+jDPOWLp06ZAhQyZMmNC/f//a2trXXnvtxRdfPOmkk5599tmu\n/JPm5uaGhobS0tLi4uLdL2nevHkXXHDBwQcf3NjYuHr16qKi7n2K7tligMLht2KB/NbY2NiS\n6m6++eZ//Md/bBuh3nnnnRkzZnTx/xQVFfXq1aunqpo1a9bQoUNvueWWc845Z+HChSeffHK3\nbt6zxQCFw6FYIL/94he/WLp06cUXXzx16tR2A2OHHnroPffc0zr5+eefX3fdddXV1eXl5V/6\n0pcuvvjilStXti5td1rbo48+mkgkHnvssVtvvfXLX/5yeXn5X/zFX/zoRz/qylGONWvWPPfc\nc5dddtnpp5++zz77zJ49u+3SpqamE088sVevXm+88UbrzGeeeaa4uPiss87qsJhUKnXbbbcN\nHz68oqKioqJiyJAhX//61zdt2tSd7QQUBCN2QH575JFHoiiaMmVK56vV1dWdcMIJb7311sUX\nX3zccce9//77995774IFC1599dWhQ4fu6Fbf+973vvzlL999992VlZWzZ8/+/ve/v/fee//t\n3/5t5/c1e/bsoqKiyZMnl5aWXnzxxTNmzPjkk0/22WeflqXFxcVz584dNWrU+eef/8Ybb1RU\nVHz88ceTJk0aNGjQnDlzOvyHU6dOvf322y+66KJvf/vbRUVF69ate/LJJ2traysqKjqvBCg4\naYB8NmDAgEQi0djY2Plq//qv/xpFUcuQW4unn346iqJTTjmlZfKZZ56JomjOnDktky158aij\njmpubm6Z09TUNGTIkGHDhnV+R6lUasCAAaeeemrL5O9///soim6//fZ2q/3ud79LJBLnn39+\nU1PTSSedVFpa+tprr7UubVdMdXX1SSed1Pn9AqTTaYdigfxWW1ubTCZLSnZy/OGxxx7r06fP\ntdde2zrn5JNPPvbYY5955pna2tod3Wry5MmJRKLl76KioqOOOmrVqlXNzc2d3NFTTz310Ucf\nXXbZZS2TI0aMGD169H333ddutVNOOeWf/umf5s2bd+KJJz7//PO33HLLX/7lX+7of1ZWVi5f\nvvy///u/O3+MAIIdkN/23HPP+vr6VCrV+WqrV68+6KCD2n0jYfjw4c3NzWvXrt3RrQYNGtTu\nvhoaGjo/uW3WrFm9e/ceMWLE2j+bOHHi8uXLFy1a1G7Nm266afTo0YsWLZowYULbxLm922+/\nvbGx8eijjx48ePDFF188Z86c+vr6TtYHCpZgB+S34cOHp9Pptl9E6FA6nW4de+u6Dm+S3vH3\nJz788MMFCxbU1dUNHTq0+s9+9KMfRVHU7isUURStWLHi3XffjaJo5cqVmzdv7qSMsWPHrlmz\n5pe//OVpp522dOnSb3zjG4cccsiHH37Y3YcDBE+wA/LbueeeG0VR22+/duiggw5auXJlu+sV\nv/3220VFRQcccEBPFTNnzpympqbp06f/6otOOeWURx55pKampnXNLVu2nHfeeSUlJXfdddfK\nlSuvuuqqzv9zRUXFueeeO2PGjGXLls2dO/eDDz64++67e6psIBiCHZDfJk+ePGrUqAceeKDl\nCwptF61YseKaa65p+fucc87ZvHnznXfe2bp04cKFr7zyyrhx4/bcc88eqSSdTt9///3V1dXf\n+ta3zvqiq666qr6+/qGHHmpd+e///u+XLVs2e/bsb3/729dee+3cuXNnzZq1o//82WeftZ08\n5phjtp8JELncCZDvysrKfvOb35x++unXX3/9/fffP3HixP3226+2tnbJkiXPPvvsV7/61ZbV\nvvvd7z766KNTp05dtmxZ6+VO+vbte9ddd/VUJQsXLlyzZs3111+//aIJEyb07t179uzZV199\ndRRFDz300P333/+tb32rZbjx3/7t3xYtWvQP//APxx577OGHH779zQcMGHD66acfeeSRAwcO\n3LBhw+zZs4uLiydPntxTlQPBEOyAvLf//vsvWbLk5z//+bx5837+85/X1NRUVFSMHDny7rvv\n/sY3vtGyTu/evV9++eUbb7xx/vz58+bNq6ysPPvss2+88caDDz64p8poGXL7m7/5m+0X7bHH\nHqeeeuojjzzy5ptv9unT56qrrho1atSPf/zjlqWlpaXz5s074ogjzjvvvNdffz2ZTLa7+XXX\nXffCCy/8+Mc/rqmp2Xfffb/yla/MmTPn2GOP7anKgWD4rVgAgEA4xw4AIBCCHQBAIAQ7AIBA\nCHYAAIEQ7AAAAiHYAQAEQrADAAiEYAcAEIj/B2aaZbEvg06pAAAAAElFTkSuQmCC", "text/plain": [ "plot without title" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Let's imagine that it is meaningful to compare the weight of the coins against the axis\n", "ggplot(df, aes(x=df$axis, y=df$weight)) +\n", "geom_point() +\n", "stat_smooth() +\n", "xlab(\"Coin Axis\") +\n", "ylab(\"Coin Weight\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "R", "language": "R", "name": "ir" }, "language_info": { "codemirror_mode": "r", "file_extension": ".r", "mimetype": "text/x-r-source", "name": "R", "pygments_lexer": "r", "version": "3.4.4" } }, "nbformat": 4, "nbformat_minor": 2 }