{ "metadata": { "name": "Day_26_OpenContext" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# A quick jump into the API of opencontext.org\n", "\n", "Let's use a specific project to focus on:\n", "\n", "* \n", "* \n", "\n", "\n", "The API documentation: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# using an example in the API documentation to confirm that we can get json representation from API\n", "\n", "import requests\n", "json_url = \"http://opencontext.org/sets/Palestinian+Authority/Tell+en-Nasbeh/.json?proj=Bade+Museum\"\n", "\n", "r = requests.get(json_url)\n", "\n", "# what are the top level keys of response?\n", "r.json().keys()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 1, "text": [ "[u'updated',\n", " u'sorting',\n", " u'numFound',\n", " u'facets',\n", " u'offset',\n", " u'results',\n", " u'summary',\n", " u'paging',\n", " u'qstring',\n", " u'published',\n", " u'paramCount',\n", " u'geoTileFacets']" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "# Now let's apply same logic to the Asian Stoneware Jars project\n", "\n", "json_url = \"http://opencontext.org/sets/.json?proj=Asian+Stoneware+Jars\"\n", "\n", "request = requests.get(json_url)\n", "request_json = request.json()\n", "\n", "results= request_json['results']\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "request_json.keys()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 3, "text": [ "[u'updated',\n", " u'sorting',\n", " u'numFound',\n", " u'facets',\n", " u'offset',\n", " u'results',\n", " u'summary',\n", " u'paging',\n", " u'qstring',\n", " u'published',\n", " u'paramCount',\n", " u'geoTileFacets']" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "# number of results matches what is on human UI\n", "request_json['numFound']" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 4, "text": [ "1007" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# we get back the first page of 10\n", "len(results)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "10" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "results[0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 6, "text": [ "{u'catIcon': u'http://opencontext.org/database/ui_images/med_oc_icons/ceramic_artifacts_50x50.jpg',\n", " u'category': u'Pottery',\n", " u'context': u'
\\nContext: Philippines / San Diego
\\n
',\n", " u'geoTime': {u'geoLat': 13.539201,\n", " u'geoLong': 121.168213,\n", " u'timeBegin': 1600,\n", " u'timeEnd': 1600},\n", " u'label': u'UNE 104',\n", " u'project': u'Asian Stoneware Jars',\n", " u'thumbIcon': u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/Copy%20(2)%20of%20une104%20copy.jpg',\n", " u'uri': u'http://opencontext.org/subjects/EAFD5A63-83C0-43A3-691C-08878757A66D',\n", " u'var_vals': {u'Artefact Type': u'intact jar',\n", " u'Compositional Group': u'1',\n", " u'Dataset Type': u'A Ship',\n", " u'Diameter (mm)': u'440',\n", " u'Donor Institution/sample Source': u'National Museum of the Philippines',\n", " u'Group (INAA)': u'1',\n", " u'Group (icp)': u'1',\n", " u'Height (mm)': u'530',\n", " u'ICP - Ba': u'475.54',\n", " u'ICP - Ca': u'1366.57',\n", " u'ICP - Ce': u'120.03',\n", " u'ICP - Cu': u'27.82',\n", " u'ICP - Fe': u'14855.69',\n", " u'ICP - Ga': u'27.29',\n", " u'ICP - Hf': u'4.82',\n", " u'ICP - K': u'21721.65',\n", " u'ICP - La': u'88.31',\n", " u'ICP - Li': u'25.39',\n", " u'ICP - Mg': u'5677.31',\n", " u'ICP - Na': u'2328.68',\n", " u'ICP - Ni': u'8.6',\n", " u'ICP - Sc': u'9.74',\n", " u'ICP - Sr': u'53.75',\n", " u'ICP - Ti': u'3030.14',\n", " u'ICP - V': u'39.88',\n", " u'ICP - Yb': u'3.83',\n", " u'ICP - Zn': u'88.53',\n", " u'Museum No.': u'706',\n", " u'NAA validation - As': u'6.9',\n", " u'NAA validation - Au': u'0',\n", " u'NAA validation - Ba': u'526',\n", " u'NAA validation - Br': u'0',\n", " u'NAA validation - Ca': u'0',\n", " u'NAA validation - Ce': u'128',\n", " u'NAA validation - Co': u'20.9',\n", " u'NAA validation - Cr': u'23.4',\n", " u'NAA validation - Cs': u'6.5',\n", " u'NAA validation - Eu': u'1.36',\n", " u'NAA validation - Fe': u'1.53',\n", " u'NAA validation - Hf': u'11',\n", " u'NAA validation - K': u'2.59',\n", " u'NAA validation - La': u'74.5',\n", " u'NAA validation - Lu': u'0.59',\n", " u'NAA validation - Na': u'0.244',\n", " u'NAA validation - Rb': u'154',\n", " u'NAA validation - Sb': u'0.49',\n", " u'NAA validation - Sc': u'11.4',\n", " u'NAA validation - Sm': u'7.8',\n", " u'NAA validation - Ta': u'2.74',\n", " u'NAA validation - Tb': u'1.2',\n", " u'NAA validation - Th': u'37.6',\n", " u'NAA validation - U': u'10.5',\n", " u'NAA validation - Yb': u'4',\n", " u'NAA validation - Zn': u'90.2',\n", " u'PIXE - Al(1014)': u'129585',\n", " u'PIXE - Ca': u'1601',\n", " u'PIXE - F(area)': u'183.9',\n", " u'PIXE - Fe': u'14970',\n", " u'PIXE - K': u'25205',\n", " u'PIXE - Li(478)': u'10.2',\n", " u'PIXE - Mg(585)': u'0.0001',\n", " u'PIXE - Mn': u'405',\n", " u'PIXE - Na(440)': u'2659.3',\n", " u'PIXE - Rb': u'153',\n", " u'PIXE - Si': u'434771',\n", " u'PIXE - Sr': u'44',\n", " u'PIXE - Ti': u'4227',\n", " u'PIXE - V': u'74',\n", " u'PIXE - Zr': u'312',\n", " u'Photograph No. - Located In Photographs Folder.': u'UNE 104',\n", " u'Rel: http://www.cidoc-crm.org/rdfs/cidoc-crm#P2.has_type': u'http://collection.britishmuseum.org/id/thesauri/x7402',\n", " u'Rel: http://www.cidoc-crm.org/rdfs/cidoc-crm#P45F.consists_of': u'http://collection.britishmuseum.org/id/thesauri/x10539',\n", " u'Sample Source Person': u'Eusebio Dizon',\n", " u'Sample Weight (g)': u'4.5',\n", " u'Vessel Part Sampled': u'base',\n", " u'Year': u'1600'}}" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "# list the URLs for the thumbnails\n", "[result.get('thumbIcon') for result in results]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 7, "text": [ "[u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/Copy%20(2)%20of%20une104%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/UNE373%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une343%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une342%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une338%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une233%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une375%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/une267%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/Edited%20Copies/UNE115%20copy.jpg',\n", " u'http://artiraq.org/static/opencontext/stoneware-media/thumbs/photographs/UNE149.JPG']" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "# do a quick display\n", "\n", "from IPython.display import HTML\n", "from jinja2 import Template\n", "\n", "\n", "IMAGES_TEMPLATE = \"\"\"\n", " {% for item in items %}\n", "\n", " {% endfor %}\n", "\"\"\"\n", " \n", "template = Template(IMAGES_TEMPLATE)\n", "HTML(template.render(items=results)) " ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " \n", "\n", " " ], "output_type": "pyout", "prompt_number": 8, "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 } ], "metadata": {} } ] }