├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── ci.yml │ └── pypi.yml ├── .gitignore ├── .readthedocs.yml ├── AUTHORS.rst ├── CHANGES.rst ├── LICENSE.txt ├── MANIFEST.in ├── README.md ├── doc ├── api_reference │ ├── api.rst │ ├── api │ │ ├── get_author.rst │ │ └── get_paper.rst │ ├── db.rst │ ├── db │ │ ├── json_author.rst │ │ └── json_paper.rst │ ├── graph.rst │ ├── graph │ │ ├── active_development.txt │ │ ├── builder.rst │ │ ├── graph.rst │ │ ├── hopper.rst │ │ └── types.rst │ ├── models.rst │ ├── models │ │ ├── note_attributes.txt │ │ ├── s2author.rst │ │ └── s2paper.rst │ ├── store.rst │ └── store │ │ ├── base.rst │ │ └── json.rst ├── conf.py ├── genindex.rst ├── getting_started │ ├── examples.rst │ └── installation.rst ├── index.rst └── package_info │ └── change_log.rst ├── s2 ├── __init__.py ├── api.py ├── db │ ├── __init__.py │ └── json.py ├── graph │ ├── __init__.py │ ├── builder.py │ ├── graph.py │ └── hopper.py ├── models.py └── store │ ├── __init__.py │ ├── base.py │ └── json.py ├── setup.py └── tests ├── __init__.py ├── context.py ├── db ├── __init__.py └── test_json.py ├── fixtures ├── cassettes │ ├── author.json │ ├── author_404.json │ ├── author_429.json │ ├── paper.json │ ├── paper_404.json │ └── paper_429.json ├── db │ └── json │ │ ├── s2authors │ │ ├── 144794037.json │ │ ├── 2051526200.json │ │ └── 80806115.json │ │ └── s2papers │ │ ├── a04fc380c61040c7ffa21375bf2a0c9d30b674a4.json │ │ ├── bdfa1a62c964f19b5ce000d7812ba9f66456a4a4.json │ │ └── c656a68a2bf155fa1a8ef4dd38a0af2cac3911da.json ├── graph │ └── paper_ds │ │ ├── 01462647e8684744c0bbfba6f3a107990880361a.json │ │ ├── 094c2b04c7e26c4b4af01a51295ffc2f179b4d15.json │ │ ├── 094cd5f5aa82fcfc4545d86c3276b5f0fae87795.json │ │ ├── 0e62edcd98d783e95123efc33448682f9faf25e7.json │ │ ├── 12042253ecfe20d4e0ebe6374e959a1b027ec1a0.json │ │ ├── 12e894afd5737aebff30c1fb8775ffd1dcc4dc22.json │ │ ├── 13faeeaa42ca4f4e7fb558da0e1240c141ce6579.json │ │ ├── 18749a769485b4ed3597eeef8f88de516889ec81.json │ │ ├── 1999102c6b8739498ab5e1ceb6b2c5a519ba2238.json │ │ ├── 1cfdce0c20bc42beb060e29affe4a399e86b2df9.json │ │ ├── 25d756556e08aaa8b266f5d41a5cca0f6fc7f443.json │ │ ├── 26ee835c907893acc3c9fb0c699dee013c3c9d84.json │ │ ├── 306c7e3c6bc916cd4a7818ea8bfdd3ccd947f60c.json │ │ ├── 36620a6b88695457057659f3a615e5b2d5b6bba8.json │ │ ├── 3941a055bacb6077e34c6e07f45b2f860aba09c2.json │ │ ├── 396aeffaebf75e6fc6757b3a88595605951c0bbf.json │ │ ├── 39f1d90fbfb19061bad82c33fc27c9ddca83615d.json │ │ ├── 3d624a478d3e03de77f9fa1c1271b14ead0b2ae7.json │ │ ├── 4787a5ce29b545c958edd5e5534b13c7f53b2d62.json │ │ ├── 47fdc3343627cd425f446fb7cd45b5a10d7968be.json │ │ ├── 56f6a06364736effb2098f03cc639e32a800ed4f.json │ │ ├── 5baab6c570f55ec1da9e07a3a28046fa06f9c172.json │ │ ├── 617e2d3a42c23a758daf8dd51ab82f89d171ef54.json │ │ ├── 65bb83535fe4e21c44d96b7b528c11a7667b3e13.json │ │ ├── 66ce69d9c4e027033bc40d3bc3b6addbf169f696.json │ │ ├── 715499e2500a9758542c4ff177d516faf8b6130f.json │ │ ├── 72427c67bbb1f3494398762281b168647fc48dff.json │ │ ├── 77fbf771c11606ba9ddc150416f633b26c5a8a6f.json │ │ ├── 84cfa9eba63c1b9913177d337ba3b9d867055ed6.json │ │ ├── 8d532eaa1cea70b1c968bcf6b3ffb5208a50317f.json │ │ ├── 8d8844106e7bc83d49ea3544ab2dfc74cd8f258a.json │ │ ├── 9975052d908927bbad8170cd6932ba7706feee67.json │ │ ├── 999c77b5deb04dd8ab70509bdd2ebf122b57cc07.json │ │ ├── 9e7403c730d0e84cba7b4f3fb56feb5a9115717d.json │ │ ├── a00a1d33d7cde648ca163f253e78a92047a65766.json │ │ ├── a3033151e18e9ed87abe9600048f2ab46c35d186.json │ │ ├── a5e26e51723fd5c88a0620da97e6c82d6251c368.json │ │ ├── aa37a174abd5b95bdf815c15436bbf33fd843859.json │ │ ├── ad30eed8e87dc4051e8379ae88a7c6b17bd43ba6.json │ │ ├── ad6be41afb378b9360fd1c16f0ccfa7af5e65652.json │ │ ├── b99f1652926c23ee45fba1ad62d799d04a1740b4.json │ │ ├── bb525190cc444231a08095230cfc0a615914944c.json │ │ ├── bd0a15f91a8dad3ef0cc9911f283f2b116259e11.json │ │ ├── c4dcbf01d64e1adf31276591f66eac8aeccc743e.json │ │ ├── c69290fcd917cf3f13bb2bb7e6d882193cff1b5a.json │ │ ├── ca0d148fa2ef80203d2cd74d49432ab1333bbbf2.json │ │ ├── cd6d4e5b8f882ecc3a2b680c42526669166b11b4.json │ │ ├── d410fea1de0a8ca7ee8e16d83524af4f013e42d8.json │ │ ├── d448a33c77562dd0bc001da91336a0160a141272.json │ │ ├── da51fc4c99a97ecd5c262413a522e960305b37fd.json │ │ ├── ddc3b835f2e1041d42a3d7e50441f7855253cae6.json │ │ ├── e0c74eb2fcf29a9b2995c0dc1b330256b6036a31.json │ │ ├── e0e7e01a6195e7252921116601a2e7613749a3a9.json │ │ ├── e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641.json │ │ ├── ecb1df457d4514feed7fb71a2499113ba87abbb6.json │ │ ├── ef86c229bc2249a8c7a4a4777c95a426f102c365.json │ │ ├── f0e432ffd9040b38ec5d6b238b9b5ad91134b093.json │ │ └── f2c320857ba4b28460912f19375d0d41ca8dc734.json └── store │ └── json │ ├── s2authors │ ├── 144794037.json │ ├── 2051526200.json │ └── 80806115.json │ └── s2papers │ ├── a04fc380c61040c7ffa21375bf2a0c9d30b674a4.json │ ├── bdfa1a62c964f19b5ce000d7812ba9f66456a4a4.json │ └── c656a68a2bf155fa1a8ef4dd38a0af2cac3911da.json ├── graph ├── __init__.py ├── test_builder.py └── test_hopper.py ├── store ├── __init__.py └── test_json.py └── test_api.py /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | strategy: 17 | matrix: 18 | python-version: [3.6, 3.7, 3.8, 3.9] 19 | 20 | steps: 21 | - uses: actions/checkout@v2 22 | - name: Set up Python ${{ matrix.python-version }} 23 | uses: actions/setup-python@v2 24 | with: 25 | python-version: ${{ matrix.python-version }} 26 | - name: Install dependencies 27 | run: | 28 | python -m pip install --upgrade pip 29 | python -m pip install .[test] 30 | python -m pip install pytest-cov 31 | - name: Run pytest with coverage 32 | run: pytest --cov=s2 tests/ 33 | - name: Run pytest and upload coverage to Codecov 34 | uses: codecov/codecov-action@v1 35 | with: 36 | token: ${{ secrets.CODECOV_TOKEN }} 37 | fail_ci_if_error: true 38 | -------------------------------------------------------------------------------- /.github/workflows/pypi.yml: -------------------------------------------------------------------------------- 1 | # This workflow will upload a Python Package using Twine when a release is created 2 | # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries 3 | 4 | name: pipy 5 | 6 | on: 7 | release: 8 | types: [created] 9 | 10 | jobs: 11 | deploy: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Set up Python 18 | uses: actions/setup-python@v2 19 | with: 20 | python-version: '3.x' 21 | - name: Install dependencies 22 | run: | 23 | python -m pip install --upgrade pip 24 | pip install setuptools wheel twine 25 | - name: Build and publish 26 | env: 27 | TWINE_USERNAME: '__token__' 28 | TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} 29 | run: | 30 | python setup.py sdist bdist_wheel 31 | twine upload dist/* 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | python: 3 | install: 4 | - method: pip 5 | extra_requirements: 6 | - readthedocs 7 | path: . 8 | version: 3.8 9 | -------------------------------------------------------------------------------- /AUTHORS.rst: -------------------------------------------------------------------------------- 1 | Maintainers 2 | =========== 3 | 4 | - Andrei Mircea `@mirandrom `_ 5 | 6 | Documentation Contributors 7 | ========================== 8 | 9 | 10 | 11 | 12 | 13 | Source Contributors 14 | =================== 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /CHANGES.rst: -------------------------------------------------------------------------------- 1 | Change Log 2 | ========== 3 | 4 | Unreleased 5 | ---------- 6 | 7 | **Changed** 8 | 9 | - Added model class :class:`s2.models.S2Paper` 10 | - Added model class :class:`s2.models.S2Author` 11 | - Added api function :func:`s2.api.get_paper` 12 | - Added api function :func:`s2.api.get_author` 13 | - Added documentation 14 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Andrei Mircea 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include CHANGES.rst LICENSE.txt README.md 2 | recursive-include tests *.json *.py -------------------------------------------------------------------------------- /doc/api_reference/api.rst: -------------------------------------------------------------------------------- 1 | .. _s2.api: 2 | 3 | s2.api 4 | ================================================================================ 5 | PyS2 uses :meth:`requests.Session.get` to query Semantic Scholar API 6 | endpoints. Functionality for `Data Partners 7 | `_, 8 | rate-limiting, and converting to :class:`.models.S2Paper` 9 | or :class:`.models.S2Author` classes are included. 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | 14 | .. include:: api/get_paper.rst 15 | .. include:: api/get_author.rst -------------------------------------------------------------------------------- /doc/api_reference/api/get_author.rst: -------------------------------------------------------------------------------- 1 | get_author 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autofunction:: s2.api.get_author -------------------------------------------------------------------------------- /doc/api_reference/api/get_paper.rst: -------------------------------------------------------------------------------- 1 | get_paper 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autofunction:: s2.api.get_paper 5 | 6 | -------------------------------------------------------------------------------- /doc/api_reference/db.rst: -------------------------------------------------------------------------------- 1 | .. _s2.db: 2 | 3 | s2.db 4 | ================================================================================ 5 | .. warning:: 6 | This module is deprecated in favor of :any:`s2.store`. 7 | 8 | PyS2 allows you to store and retrieve :class:`S2Paper` and :class:`S2Author` 9 | objects via arbitrary :class:`MutableMapping` classes. For an example, see 10 | :any:`saving_with_store`. 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | .. include:: db/json_paper.rst 16 | .. include:: db/json_author.rst 17 | -------------------------------------------------------------------------------- /doc/api_reference/db/json_author.rst: -------------------------------------------------------------------------------- 1 | JsonS2AuthorDB 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.db.json.JsonS2AuthorDB 5 | 6 | 7 | -------------------------------------------------------------------------------- /doc/api_reference/db/json_paper.rst: -------------------------------------------------------------------------------- 1 | JsonS2PaperDB 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.db.json.JsonS2PaperDB 5 | 6 | 7 | -------------------------------------------------------------------------------- /doc/api_reference/graph.rst: -------------------------------------------------------------------------------- 1 | .. _s2.graph: 2 | 3 | s2.graph 4 | ================================================================================ 5 | 6 | PyS2 allows you to construct arbitrary subgraphs of a paper's citation network 7 | via :class:`GraphHopper` which can be used with :class:`S2GraphBuilder` to 8 | create :class:`S2Graph` objects. These leverage :class:`S2DataStore` to 9 | reduce memory footprint or API calls when working with large amounts of papers. 10 | 11 | 12 | .. toctree:: 13 | :maxdepth: 2 14 | 15 | .. include:: graph/types.rst 16 | .. include:: graph/graph.rst 17 | .. include:: graph/builder.rst 18 | .. include:: graph/hopper.rst 19 | -------------------------------------------------------------------------------- /doc/api_reference/graph/active_development.txt: -------------------------------------------------------------------------------- 1 | .. warning:: 2 | 3 | This module is under active development and may change significantly in future versions. -------------------------------------------------------------------------------- /doc/api_reference/graph/builder.rst: -------------------------------------------------------------------------------- 1 | S2GraphBuilder 2 | -------------------------------------------------------------------------------- 3 | 4 | .. include:: /api_reference/graph/active_development.txt 5 | 6 | .. autoclass:: s2.graph.S2GraphBuilder 7 | :members: 8 | :private-members: 9 | -------------------------------------------------------------------------------- /doc/api_reference/graph/graph.rst: -------------------------------------------------------------------------------- 1 | S2Graph 2 | -------------------------------------------------------------------------------- 3 | 4 | .. include:: /api_reference/graph/active_development.txt 5 | 6 | .. autoclass:: s2.graph.S2Graph 7 | -------------------------------------------------------------------------------- /doc/api_reference/graph/hopper.rst: -------------------------------------------------------------------------------- 1 | GraphHopper 2 | -------------------------------------------------------------------------------- 3 | 4 | .. include:: /api_reference/graph/active_development.txt 5 | 6 | .. autoclass:: s2.graph.hopper.GraphHopper 7 | 8 | .. autoclass:: s2.graph.hopper.MaxHopHopper 9 | 10 | .. autoclass:: s2.graph.hopper.MaxPaperHopper 11 | 12 | .. autoclass:: s2.graph.hopper.BowtieHopper 13 | -------------------------------------------------------------------------------- /doc/api_reference/graph/types.rst: -------------------------------------------------------------------------------- 1 | Custom Types 2 | -------------------------------------------------------------------------------- 3 | 4 | .. include:: /api_reference/graph/active_development.txt 5 | 6 | .. autoclass:: s2.graph.PaperId 7 | 8 | .. autoclass:: s2.graph.AuthorId 9 | 10 | .. autoclass:: s2.graph.S2PaperMap 11 | 12 | .. autoclass:: s2.graph.S2AuthorMap 13 | 14 | .. autoclass:: s2.graph.EdgeType 15 | 16 | .. autoclass:: s2.graph.EdgeMeta 17 | 18 | .. autoclass:: s2.graph.Neighbours 19 | 20 | .. autoclass:: s2.graph.EdgeMap 21 | 22 | .. autoclass:: s2.graph.HopFrom 23 | 24 | .. autoclass:: s2.graph.HopTo 25 | 26 | .. autoclass:: s2.graph.GraphPath 27 | -------------------------------------------------------------------------------- /doc/api_reference/models.rst: -------------------------------------------------------------------------------- 1 | s2.models 2 | ================================================================================ 3 | PyS2 uses `pydantic `_. 4 | to convert the JSON objects returned by the Semantic Scholar API into 5 | self-documenting python classes with built-in data validation. 6 | 7 | .. toctree:: 8 | :maxdepth: 2 9 | 10 | .. include:: models/s2paper.rst 11 | .. include:: models/s2author.rst 12 | -------------------------------------------------------------------------------- /doc/api_reference/models/note_attributes.txt: -------------------------------------------------------------------------------- 1 | .. 2 | This file contains a note about attributes of S2 Models. The note is supposed 3 | to appear in every S2 Model's docs page. Therefore, this file will be appended to 4 | their reStructuredText files with the include directive. 5 | 6 | .. note:: 7 | 8 | This list of attributes is subject to change based on updates to the 9 | Semantic Scholar API. Please open an issue if you notice this. -------------------------------------------------------------------------------- /doc/api_reference/models/s2author.rst: -------------------------------------------------------------------------------- 1 | S2Author 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.models.S2Author 5 | 6 | .. autoclass:: s2.models.S2AuthorPaper 7 | 8 | .. include:: /api_reference/models/note_attributes.txt 9 | -------------------------------------------------------------------------------- /doc/api_reference/models/s2paper.rst: -------------------------------------------------------------------------------- 1 | S2Paper 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.models.S2Paper 5 | 6 | .. autoclass:: s2.models.S2Reference 7 | 8 | .. autoclass:: s2.models.S2PaperAuthor 9 | 10 | .. autoclass:: s2.models.S2Topic 11 | 12 | .. include:: /api_reference/models/note_attributes.txt 13 | -------------------------------------------------------------------------------- /doc/api_reference/store.rst: -------------------------------------------------------------------------------- 1 | .. _s2.store: 2 | 3 | s2.store 4 | ================================================================================ 5 | 6 | PyS2 allows you to interact with :class:`S2Paper` and :class:`S2Author` via 7 | :class:`S2DataStore` which provides a dict-like interface that can be inherited 8 | and adapted for any custom backend. :class:`JsonDS` is an example that simply 9 | uses json files to reduce the memory footprint of working with many papers 10 | while creating human-readable records. 11 | 12 | 13 | .. toctree:: 14 | :maxdepth: 2 15 | 16 | .. include:: store/base.rst 17 | .. include:: store/json.rst 18 | 19 | -------------------------------------------------------------------------------- /doc/api_reference/store/base.rst: -------------------------------------------------------------------------------- 1 | S2DataStore 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.store.S2DataStore 5 | :members: 6 | :inherited-members: 7 | 8 | -------------------------------------------------------------------------------- /doc/api_reference/store/json.rst: -------------------------------------------------------------------------------- 1 | JsonDS 2 | -------------------------------------------------------------------------------- 3 | 4 | .. autoclass:: s2.store.json.JsonDS 5 | :members: 6 | :inherited-members: 7 | 8 | 9 | -------------------------------------------------------------------------------- /doc/conf.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | sys.path.insert(0, os.path.abspath('..')) 4 | 5 | 6 | # -- Project information ----------------------------------------------------- 7 | from s2 import __version__ 8 | 9 | project = 'PyS2' 10 | copyright = '2021, mirandrom' 11 | author = 'mirandrom' 12 | release = __version__ 13 | 14 | 15 | # -- General configuration --------------------------------------------------- 16 | 17 | # Add any Sphinx extension module names here, as strings. They can be 18 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 19 | # ones. 20 | extensions = [ 21 | "sphinx.ext.autodoc", 22 | "sphinx.ext.napoleon", 23 | "sphinx.ext.intersphinx", 24 | "sphinx_autodoc_typehints" 25 | ] 26 | 27 | intersphinx_mapping = { 28 | 'python': ('http://docs.python.org/3', None), 29 | 'requests': ('https://requests.readthedocs.io/en/v2.6.2', None), 30 | } 31 | 32 | autodoc_typehints = 'none' 33 | 34 | # Add any paths that contain templates here, relative to this directory. 35 | templates_path = ['_templates'] 36 | 37 | # List of patterns, relative to source directory, that match files and 38 | # directories to ignore when looking for source files. 39 | # This pattern also affects html_static_path and html_extra_path. 40 | exclude_patterns = [] 41 | 42 | 43 | # -- Options for HTML output ------------------------------------------------- 44 | 45 | # The theme to use for HTML and HTML Help pages. See the documentation for 46 | # a list of builtin themes. 47 | # 48 | html_theme = 'sphinx_rtd_theme' 49 | html_theme_options = {"collapse_navigation": False} 50 | 51 | # Add any paths that contain custom static files (such as style sheets) here, 52 | # relative to this directory. They are copied after the builtin static files, 53 | # so a file named "default.css" will overwrite the builtin "default.css". 54 | html_static_path = [] -------------------------------------------------------------------------------- /doc/genindex.rst: -------------------------------------------------------------------------------- 1 | Index 2 | ===== 3 | -------------------------------------------------------------------------------- /doc/getting_started/installation.rst: -------------------------------------------------------------------------------- 1 | Installing PyS2 2 | =============== 3 | 4 | PyS2 supports Python 3.6+. The recommended way to install PyS2 is via ``pip``. 5 | 6 | .. code-block:: bash 7 | 8 | pip install pys2 9 | 10 | .. note:: 11 | 12 | Depending on your system, you may need to use ``pip3`` to install packages for 13 | Python 3. 14 | 15 | .. warning:: 16 | 17 | Avoid using ``sudo`` to install packages. Do you `really` trust this package? 18 | 19 | For instructions on installing Python and pip see "The Hitchhiker's Guide to Python" 20 | `Installation Guides `_. 21 | 22 | Updating PyS2 23 | ------------- 24 | 25 | PyS2 can be updated by running: 26 | 27 | .. code-block:: bash 28 | 29 | pip install --upgrade pys2 30 | 31 | 32 | Installing the Latest Development Version 33 | ----------------------------------------- 34 | 35 | You can install PyS2 directly from GitHub like so: 36 | 37 | .. code-block:: bash 38 | 39 | pip install --upgrade https://github.com/mirandrom/pys2/archive/master.zip 40 | 41 | You can also directly clone a copy of the repository using git, like so: 42 | 43 | .. code-block:: bash 44 | 45 | pip install --upgrade git+https://github.com/mirandrom/pys2.git -------------------------------------------------------------------------------- /doc/index.rst: -------------------------------------------------------------------------------- 1 | PyS2 2 | ================================ 3 | 4 | PyS2's documentation is organized into the following sections: 5 | 6 | - :ref:`getting_started` 7 | - :ref:`api_reference` 8 | - :ref:`package_info` 9 | 10 | .. _getting_started: 11 | 12 | .. toctree:: 13 | :maxdepth: 1 14 | :caption: Getting Started 15 | 16 | getting_started/installation 17 | getting_started/examples 18 | 19 | .. _api_reference: 20 | 21 | .. toctree:: 22 | :maxdepth: 1 23 | :caption: API Reference 24 | 25 | api_reference/models 26 | api_reference/api 27 | api_reference/db 28 | api_reference/store 29 | api_reference/graph 30 | 31 | .. _package_info: 32 | 33 | .. toctree:: 34 | :maxdepth: 1 35 | :caption: Package Info 36 | 37 | package_info/change_log 38 | 39 | .. toctree:: 40 | :hidden: 41 | 42 | genindex 43 | 44 | -------------------------------------------------------------------------------- /doc/package_info/change_log.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../../CHANGES.rst -------------------------------------------------------------------------------- /s2/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = "1.2.1a0" 2 | 3 | import logging 4 | from s2 import api, models 5 | 6 | 7 | def _setup_logger(): 8 | logger = logging.getLogger(__name__) 9 | handler = logging.StreamHandler() 10 | handler.setFormatter( 11 | logging.Formatter( 12 | "%(asctime)s\t%(levelname)s %(filename)s:%(lineno)s -- %(message)s" 13 | )) 14 | logger.addHandler(handler) 15 | logger.setLevel(logging.INFO) 16 | logger.propagate = False 17 | 18 | 19 | _setup_logger() 20 | -------------------------------------------------------------------------------- /s2/db/__init__.py: -------------------------------------------------------------------------------- 1 | from .json import JsonS2PaperDB, JsonS2AuthorDB -------------------------------------------------------------------------------- /s2/graph/__init__.py: -------------------------------------------------------------------------------- 1 | # TODO: better alternative than graph.graph? 2 | from s2.graph.graph import PaperId, PaperIdT, AuthorId, AuthorIdT 3 | from s2.graph.graph import S2PaperMap, S2PaperMapT, S2AuthorMap, S2AuthorMapT 4 | from s2.graph.graph import EdgeType, EdgeTypeT, EdgeMeta, EdgeMetaT 5 | from s2.graph.graph import Neighbours, NeighboursT, EdgeMap, EdgeMapT 6 | from s2.graph.graph import HopFrom, HopFromT, HopTo, HopToT 7 | from s2.graph.graph import GraphPath, GraphPathT, S2Graph 8 | 9 | from s2.graph.hopper import * 10 | from s2.graph.builder import S2GraphBuilder 11 | -------------------------------------------------------------------------------- /s2/graph/graph.py: -------------------------------------------------------------------------------- 1 | from s2.models import S2Paper, S2Author 2 | from collections import defaultdict 3 | 4 | from typing import Dict, List, Tuple, MutableMapping, Optional, Type 5 | from typing_extensions import Literal 6 | 7 | 8 | class PaperId: 9 | """A valid S2 Paper Identifier string. """ 10 | PaperIdT = PaperId 11 | PaperIdT.__supertype__ = str 12 | 13 | 14 | class AuthorId: 15 | """A valid S2 Author Identifier string. """ 16 | AuthorIdT = AuthorId 17 | AuthorIdT.__supertype__ = str 18 | 19 | 20 | class S2PaperMap: 21 | """:class:`MutableMapping` of :class:`PaperId` to :class:`S2Paper`. 22 | 23 | It is recommended to use objects of type :class:`s2.store.S2DataStore`, but 24 | for rapid prototyping this can be a simple dictionary. 25 | """ 26 | S2PaperMapT = S2PaperMap 27 | S2PaperMapT.__supertype__ = MutableMapping[PaperIdT, S2Paper] 28 | 29 | 30 | class S2AuthorMap: 31 | """:class:`MutableMapping` of :class:`AuthorId` to :class:`S2Author`. 32 | 33 | It is recommended to use objects of type :class:`s2.store.S2DataStore`, but 34 | for rapid prototyping this can be a simple dictionary. 35 | """ 36 | S2AuthorMapT = S2AuthorMap 37 | S2AuthorMapT.__supertype__ = MutableMapping[AuthorIdT, S2Author] 38 | 39 | 40 | class EdgeType: 41 | """ Either of 'references', 'citations', or 'author'. """ 42 | EdgeTypeT = EdgeType 43 | EdgeTypeT.__supertype__ = Literal["reference", "citation", " author"] 44 | # instead of EdgeType.__values__/__args__ for py3.6/3.7+ just duplicate 45 | EdgeTypeValues = ["reference", "citation", " author"] 46 | def edge_factory(): 47 | return {k: [] for k in EdgeTypeValues} 48 | 49 | 50 | class EdgeMeta: 51 | """ Dict for storing any additional edge meta-information.""" 52 | EdgeMetaT = EdgeMeta 53 | EdgeMetaT.__supertype__ = Dict 54 | 55 | 56 | class Neighbours: 57 | """ :class:`MutableMapping` of :class:`EdgeType` to list of 58 | (:class:`PaperId`, :class:`EdgeMeta`) tuples for neighbouring papers. 59 | """ 60 | NeighboursT = Neighbours 61 | NeighboursT.__supertype__ = MutableMapping[EdgeTypeT, List[Tuple[PaperIdT, EdgeMetaT]]] 62 | 63 | 64 | class EdgeMap: 65 | """ :class:`MutableMapping` of :class:`PaperId` to :class:`Neighbours`. """ 66 | EdgeMapT = EdgeMap 67 | EdgeMapT.__supertype__ = MutableMapping[PaperIdT, NeighboursT] 68 | 69 | 70 | class HopFrom: 71 | """ Tuple of :class:`PaperId` (the paper being hopped from) 72 | and :class:`EdgeType` (the type of the edge being hopped across) 73 | 74 | """ 75 | HopFromT = HopFrom 76 | HopFromT.__supertype__ = Tuple[PaperIdT, EdgeTypeT] 77 | 78 | 79 | class HopTo: 80 | """ Tuple of :class:`PaperId` (the paper being hopped to) 81 | and :class:`EdgeType` (the type of the edge being hopped across). 82 | 83 | Note that unlike :class:`HopFrom`, the edge type can be None if the 84 | paper "being hopped to" is actually the first paper being visited (i.e. 85 | without any edge traversal). 86 | 87 | """ 88 | HopToT = HopTo 89 | HopToT.__supertype__ = Tuple[PaperIdT, Optional[EdgeTypeT]] 90 | 91 | 92 | class GraphPath: 93 | """List of :class:`HopTo` for the path traversed in a :class:`S2Graph`. """ 94 | GraphPathT = GraphPath 95 | GraphPathT.__supertype__ = List[HopToT] 96 | 97 | 98 | class S2Graph: 99 | """Class for storing citation network subgraph. 100 | 101 | Args: 102 | edges (:class:`EdgeMap`, optional): 103 | Stores subgraph edge information. While :class:`S2Paper` and 104 | :class:`S2Author` already contain the information required to 105 | reconstruct citation graphs, they do not allow arbitrary subgraphs 106 | and are not as lightweight as a simple mapping of identifiers. 107 | 108 | Defaults to :obj:`defaultdict` 109 | with factory for :class:`Neighbours` for in-memory storage. 110 | 111 | papers (:class:`S2PaperMap`, optional): 112 | Stores :class:`S2Paper` objects retrievable by :class:`PaperId`. 113 | Recommended to use :class:`s2.store.S2DataStore` to avoid keeping 114 | large amounts of data in memory. 115 | 116 | Defaults to :obj:`dict`. 117 | 118 | authors (:class:`S2AuthorMap`, optional): 119 | Stores :class:`S2Author` objects retrievable by :class:`AuthorId`. 120 | Recommended to use :class:`s2.store.S2DataStore` to avoid keeping 121 | large amounts of data in memory. 122 | 123 | Defaults to :obj:`dict`. 124 | """ 125 | def __init__( 126 | self, 127 | edges: Optional[EdgeMapT] = None, 128 | papers: Optional[S2PaperMapT] = None, 129 | authors: Optional[S2AuthorMapT] = None, 130 | ): 131 | 132 | 133 | self.edges = defaultdict(edge_factory) if edges is None else edges 134 | self.papers = {} if papers is None else papers 135 | self.authors = {} if authors is None else authors 136 | -------------------------------------------------------------------------------- /s2/store/__init__.py: -------------------------------------------------------------------------------- 1 | from s2.store.base import S2DataStore, S2Model, S2ModelT, S2Identifier 2 | from s2.store.json import JsonDS -------------------------------------------------------------------------------- /s2/store/base.py: -------------------------------------------------------------------------------- 1 | from s2.models import S2Paper, S2Author 2 | from typing import MutableMapping, Iterator, TypeVar, Type, Union 3 | 4 | PaperId = str 5 | AuthorId = str 6 | S2Identifier = TypeVar("S2Identifier", PaperId, AuthorId) 7 | S2Model = TypeVar("S2Model", S2Paper, S2Author) 8 | S2ModelT = Union[Type[S2Paper],Type[S2Author]] 9 | 10 | # TODO: figure out TypeVar behavior for class inheritance. 11 | # The methods for S2Papers/S2Authors should be the exact same except for 12 | # argument and return types (and data validation, but that is easily 13 | # abstracted away via methods that work for both classes). To prevent 14 | # duplicate code (e.g. in v1.1.0 s2.db module), its better to have 15 | # the behaviour for S2Paper/S2Author be abstracted away in a single 16 | # class; the issue becomes making typehints work for both S2Paper and 17 | # S2Author. TypeVar allows us to define the typehint as a variable with 18 | # constraints. It's not clear if this variable is set for a class instance 19 | # (good, ensures consistency across life of instance) or for individual 20 | # method calls (bad, same instance might have different type hints 21 | # depending on most recent method call). 22 | # If TypeVar is inappropriate, consider using overload 23 | 24 | 25 | class S2DataStore(MutableMapping[S2Identifier,S2Model]): 26 | """ Base class for storing/retrieving S2 Objects 27 | 28 | """ 29 | def __init__(self, s2model: S2ModelT = S2Paper): 30 | self.s2model: S2ModelT = s2model 31 | 32 | @classmethod 33 | def load_papers(cls: Type['S2DataStore'], 34 | *args, **kwargs) -> 'S2DataStore[PaperId, S2Paper]': 35 | """Create datastore for papers with appropriate typehints. """ 36 | kwargs['s2model'] = S2Paper 37 | return cls(*args, **kwargs) 38 | 39 | @classmethod 40 | def load_authors(cls: Type['S2DataStore'], 41 | *args, **kwargs) -> 'S2DataStore[AuthorId, S2Author]': 42 | """Create datastore for authors with appropriate typehints. """ 43 | kwargs['s2model'] = S2Author 44 | return cls(*args, **kwargs) 45 | 46 | def _check_key_type(self, k: S2Identifier): 47 | if type(k) is not str: 48 | raise TypeError(f"{type(k)} instead of str") 49 | 50 | def _check_value_type(self, v: S2Model): 51 | if type(v) is not self.s2model: 52 | raise TypeError(f"{type(v)} instead of {self.s2model.__name__}") 53 | 54 | def _check_s2id(self, k: S2Identifier, v: S2Model): 55 | s2id = None 56 | if self.s2model == S2Paper and type(v) == S2Paper: 57 | s2id = v.__dict__.get('paperId', None) 58 | elif self.s2model == S2Author and type(v) == S2Author: 59 | s2id = v.__dict__.get('authorId', None) 60 | if s2id and s2id != k: 61 | raise KeyError(f"Provided key {k} for {self.s2model.__name__} " 62 | f"with S2 Identifier {s2id}") 63 | 64 | def __contains__(self, k: S2Identifier) -> bool: ... # type: ignore[override] 65 | 66 | def __delitem__(self, k: S2Identifier) -> None: ... 67 | 68 | def __getitem__(self, k: S2Identifier) -> S2Model: ... 69 | 70 | def __len__(self) -> int: ... 71 | 72 | def __iter__(self) -> Iterator[S2Identifier]: ... 73 | 74 | def __setitem__(self, k: S2Identifier, v: S2Model) -> None: ... 75 | -------------------------------------------------------------------------------- /s2/store/json.py: -------------------------------------------------------------------------------- 1 | from s2.store import S2DataStore, S2Identifier, S2ModelT, S2Model 2 | from s2.models import S2Paper 3 | import json 4 | 5 | from typing import Union, Optional, Type 6 | from pathlib import Path 7 | 8 | 9 | class JsonDS(S2DataStore): 10 | 11 | def __init__(self, 12 | json_dir: Union[str, Path], 13 | enforce_id: Optional[bool] = True, 14 | s2model: S2ModelT = S2Paper 15 | ): 16 | super().__init__(s2model=s2model) 17 | self.json_dir = Path(json_dir).absolute() 18 | self.json_dir.mkdir(exist_ok=True, parents=True) 19 | self.enforce_id = enforce_id 20 | # TODO: check if this slows things down considerably 21 | self.s2ids = set([f.stem for f in self.json_dir.glob("*.json")]) 22 | 23 | def _check_file_exists(self, f: Union[str, Path]): 24 | if not Path(f).exists(): 25 | raise KeyError(f"{f.stem} (No such file '{f}')") 26 | 27 | def __contains__(self, k): 28 | return k in self.s2ids 29 | 30 | def __delitem__(self, k): 31 | self._check_key_type(k) 32 | f = (self.json_dir / f"{k}.json") 33 | self._check_file_exists(f) 34 | self.s2ids.remove(k) 35 | f.unlink() 36 | 37 | def __getitem__(self, k): 38 | self._check_key_type(k) 39 | f = (self.json_dir / f"{k}.json") 40 | self._check_file_exists(f) 41 | d = json.loads(f.read_bytes()) 42 | # TODO: figure out how to use construct and keep nested models 43 | return self.s2model(**d) 44 | 45 | def __len__(self): 46 | return len(self.s2ids) 47 | 48 | def __iter__(self): 49 | return self.s2ids.__iter__() 50 | 51 | def __setitem__(self, k: S2Identifier, v: S2Model): 52 | self._check_key_type(k) 53 | self._check_value_type(v) 54 | if self.enforce_id: 55 | self._check_s2id(k, v) 56 | f = (self.json_dir / f"{k}.json") 57 | f.write_text(v.json()) 58 | self.s2ids.add(k) 59 | 60 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup, find_packages 2 | import pathlib 3 | import re 4 | 5 | here = pathlib.Path(__file__).parent.resolve() 6 | readme = (here / "README.md").read_text(encoding="utf-8") 7 | version = re.search( 8 | '__version__ = "([^"]+)"', 9 | (here / "s2/__init__.py").read_text(encoding="utf-8") 10 | ).group(1) 11 | 12 | setup( 13 | name="pys2", 14 | version=version, 15 | author="mirandrom", 16 | description=("PyS2 is a python wrapper for the Semantic Scholar (S2) API"), 17 | 18 | long_description_content_type="text/markdown", 19 | long_description=readme, 20 | keywords="semantic scholar, s2, scientific literature, citation graph", 21 | url="https://github.com/mirandrom/pys2/", 22 | project_urls={ 23 | "Bug Reports": "https://github.com/mirandrom/pys2/issues", 24 | "Source": "https://github.com/mirandrom/pys2/", 25 | "Docs": "https://pys2.readthedocs.org/", 26 | }, 27 | classifiers=[ 28 | "Development Status :: 4 - Beta", 29 | "Intended Audience :: Developers", 30 | "Intended Audience :: Science/Research", 31 | "License :: OSI Approved :: MIT License", 32 | "Natural Language :: English", 33 | "Operating System :: OS Independent", 34 | "Programming Language :: Python", 35 | "Programming Language :: Python :: 3", 36 | "Programming Language :: Python :: 3.6", 37 | "Programming Language :: Python :: 3.7", 38 | "Programming Language :: Python :: 3.8", 39 | "Programming Language :: Python :: 3.9", 40 | "Topic :: Utilities", 41 | ], 42 | 43 | python_requires=">=3.6, <4", 44 | install_requires=[ 45 | "requests >=2.6, <3.0", 46 | "pydantic >=1.8, <2.0", 47 | ], 48 | extras_require={ 49 | "readthedocs": [ 50 | "sphinx >= 3, <4.0", 51 | "sphinx-autodoc-typehints >= 1.11, <2.0 " 52 | ], 53 | "test": [ 54 | "betamax >=0.8, <0.9", 55 | "pytest >=6, <7", 56 | ], 57 | }, 58 | packages=find_packages(include=["s2","s2.*"]), 59 | ) -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mirandrom/PyS2/9bf44f0ad16d9ccdeadd4cff719eda2a8e42cc84/tests/__init__.py -------------------------------------------------------------------------------- /tests/context.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) 4 | 5 | import s2 6 | from s2 import api, models 7 | from s2.db import JsonS2PaperDB, JsonS2AuthorDB 8 | from s2.store import JsonDS 9 | from s2.graph import S2Graph 10 | from s2.graph import (GraphHopper, MaxHopHopper, MaxPaperHopper, BowtieHopper, 11 | LivingLitReviewHopper) 12 | from s2.graph import S2GraphBuilder 13 | from pathlib import Path 14 | 15 | 16 | def rm_tree(pth: Path): 17 | """ Utility for removing directory recursively""" 18 | pth = Path(pth) 19 | if pth.exists(): 20 | if pth.is_file(): 21 | pth.unlink() 22 | else: 23 | for child in pth.glob('*'): 24 | if child.is_file(): 25 | child.unlink() 26 | else: 27 | rm_tree(child) 28 | pth.rmdir() -------------------------------------------------------------------------------- /tests/db/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mirandrom/PyS2/9bf44f0ad16d9ccdeadd4cff719eda2a8e42cc84/tests/db/__init__.py -------------------------------------------------------------------------------- /tests/db/test_json.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from unittest import TestCase 3 | import pytest 4 | from ..context import JsonS2PaperDB, JsonS2AuthorDB 5 | 6 | 7 | def rm_tree(pth: Path): 8 | """ Utility for removing directory recursively""" 9 | pth = Path(pth) 10 | if pth.exists(): 11 | for child in pth.glob('*'): 12 | if child.is_file(): 13 | child.unlink() 14 | else: 15 | rm_tree(child) 16 | pth.rmdir() 17 | 18 | 19 | class TestJson(TestCase): 20 | def setUp(self): 21 | fixtures = Path("tests/fixtures/db/json") 22 | self.pdb_path = fixtures / "s2papers" 23 | self.pdb_path_tmp = fixtures / "s2papers_tmp" 24 | self.adb_path = fixtures / "s2authors" 25 | self.adb_path_tmp = fixtures / "s2authors_tmp" 26 | assert self.pdb_path.exists() 27 | assert self.adb_path.exists() 28 | assert not self.pdb_path_tmp.exists() 29 | assert not self.adb_path_tmp.exists() 30 | self.addCleanup(lambda: rm_tree(self.pdb_path_tmp)) 31 | self.addCleanup(lambda: rm_tree(self.adb_path_tmp)) 32 | 33 | def test_pdb(self): 34 | # create new pdb (paper database) 35 | pdb_tmp = JsonS2PaperDB(self.pdb_path_tmp) 36 | assert pdb_tmp.json_dir.exists() 37 | 38 | # load existing db and check values; testing contains and len methods 39 | pdb = JsonS2PaperDB(self.pdb_path) 40 | assert "a04fc380c61040c7ffa21375bf2a0c9d30b674a4" in pdb 41 | assert "bdfa1a62c964f19b5ce000d7812ba9f66456a4a4" in pdb 42 | assert "c656a68a2bf155fa1a8ef4dd38a0af2cac3911da" in pdb 43 | assert len(pdb) == 3 44 | 45 | # copy values into temp pdb; testing iter, set, and get methods 46 | for k,v in pdb.items(): 47 | pdb_tmp[k] = v 48 | for k in pdb_tmp.keys(): 49 | assert pdb[k] == pdb_tmp[k] 50 | 51 | # delete key and check for keyerrors 52 | p = pdb_tmp.pop(k) 53 | with pytest.raises(KeyError): 54 | _ = pdb_tmp[k] 55 | 56 | # enforce_id behavior 57 | with pytest.raises(KeyError): 58 | wrong_key = k[:-1] 59 | pdb_tmp[wrong_key] = p 60 | 61 | # check for type errors 62 | p = pdb[k] 63 | for invalid_value in [k, 0, None, p.dict(), p.json()]: 64 | with pytest.raises(TypeError): 65 | pdb_tmp[k] = invalid_value 66 | for invalid_key in [0, None]: 67 | with pytest.raises(TypeError): 68 | _ = pdb_tmp[invalid_key] 69 | 70 | def test_adb(self): 71 | # create new adb (author database) 72 | assert not self.adb_path_tmp.exists() 73 | adb_tmp = JsonS2AuthorDB(self.adb_path_tmp) 74 | assert adb_tmp.json_dir.exists() 75 | 76 | # load existing db and check values; testing contains and len methods 77 | assert self.adb_path.exists() 78 | adb = JsonS2AuthorDB(self.adb_path) 79 | assert "80806115" in adb 80 | assert "144794037" in adb 81 | assert "2051526200" in adb 82 | assert len(adb) == 3 83 | 84 | # copy values into temp pdb; testing iter, set, and get methods 85 | for k,v in adb.items(): 86 | adb_tmp[k] = v 87 | for k in adb_tmp.keys(): 88 | assert adb[k] == adb_tmp[k] 89 | 90 | # delete key and check for keyerrors 91 | a = adb_tmp.pop(k) 92 | with pytest.raises(KeyError): 93 | _ = adb_tmp[k] 94 | 95 | # enforce_id behavior 96 | with pytest.raises(KeyError): 97 | wrong_key = k[:-1] 98 | adb_tmp[wrong_key] = a 99 | 100 | # check for type errors 101 | a = adb[k] 102 | for invalid_value in [k, 0, None, a.dict(), a.json()]: 103 | with pytest.raises(TypeError): 104 | adb_tmp[k] = invalid_value 105 | for invalid_key in [0, None]: 106 | with pytest.raises(TypeError): 107 | _ = adb_tmp[invalid_key] -------------------------------------------------------------------------------- /tests/fixtures/cassettes/author_404.json: -------------------------------------------------------------------------------- 1 | {"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/author/author"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Author not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["29"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "x-amzn-RequestId": ["99ac362d-0e70-4942-9899-e985e3ced3c8"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["29"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw19_EgRPHcFVEg="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 a332ecb068a370997b5e7bc811ff54ea.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["6zhCKpiiRzQoZrHQ9H2gRX8avVOZu-sSDbk5NXQP3tLrjtjz9FsP5Q=="]}, "status": {"code": 404, "message": "Not Found"}, "url": "https://api.semanticscholar.org/v1/author/author"}, "recorded_at": "2021-03-25T21:41:32"}], "recorded_with": "betamax/0.8.1"} -------------------------------------------------------------------------------- /tests/fixtures/cassettes/author_429.json: -------------------------------------------------------------------------------- 1 | {"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/author/144794037"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Author not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["29"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "x-amzn-RequestId": ["99ac362d-0e70-4942-9899-e985e3ced3c8"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["29"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw19_EgRPHcFVEg="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 a332ecb068a370997b5e7bc811ff54ea.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["6zhCKpiiRzQoZrHQ9H2gRX8avVOZu-sSDbk5NXQP3tLrjtjz9FsP5Q=="]}, "status": {"code": 429, "message": "Too Many Requests "}, "url": "https://api.semanticscholar.org/v1/author/144794037"}, "recorded_at": "2021-03-25T21:41:32"}, {"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/author/144794037"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Author not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["29"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "x-amzn-RequestId": ["99ac362d-0e70-4942-9899-e985e3ced3c8"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["29"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw19_EgRPHcFVEg="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:41:32 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 a332ecb068a370997b5e7bc811ff54ea.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["6zhCKpiiRzQoZrHQ9H2gRX8avVOZu-sSDbk5NXQP3tLrjtjz9FsP5Q=="]}, "status": {"code": 429, "message": "Too Many Requests "}, "url": "https://api.semanticscholar.org/v1/author/144794037"}, "recorded_at": "2021-03-25T21:42:32"}], "recorded_with": "betamax/0.8.1"} -------------------------------------------------------------------------------- /tests/fixtures/cassettes/paper_404.json: -------------------------------------------------------------------------------- 1 | {"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/paper/paper"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Paper not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["28"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "x-amzn-RequestId": ["d9633293-4e10-4b0e-a595-db4b694cd0e9"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["28"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw4GPHe_vHcF_ng="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 7c8368d4af2107744975990ee628777f.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["JGebZ_44zOl-OEUZfXYNM39ai65LW5Qacs44ItVYOY8yzEPR3G6-vg=="]}, "status": {"code": 404, "message": "Not Found"}, "url": "https://api.semanticscholar.org/v1/paper/paper"}, "recorded_at": "2021-03-25T21:56:04"}], "recorded_with": "betamax/0.8.1"} -------------------------------------------------------------------------------- /tests/fixtures/cassettes/paper_429.json: -------------------------------------------------------------------------------- 1 | {"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/paper/c4e3be316ce0d5dfc9ec7b19298e9483484cc252"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Paper not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["28"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "x-amzn-RequestId": ["d9633293-4e10-4b0e-a595-db4b694cd0e9"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["28"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw4GPHe_vHcF_ng="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 7c8368d4af2107744975990ee628777f.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["JGebZ_44zOl-OEUZfXYNM39ai65LW5Qacs44ItVYOY8yzEPR3G6-vg=="]}, "status": {"code": 429, "message": "Too Many Requests"}, "url": "https://api.semanticscholar.org/v1/paper/c4e3be316ce0d5dfc9ec7b19298e9483484cc252"}, "recorded_at": "2021-03-25T21:56:04"}, {"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["python-requests/2.25.1"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["*/*"], "Connection": ["keep-alive"]}, "method": "GET", "uri": "https://api.semanticscholar.org/v1/paper/c4e3be316ce0d5dfc9ec7b19298e9483484cc252"}, "response": {"body": {"encoding": "utf-8", "string": "{\"error\":\"Paper not found\"}\n"}, "headers": {"Content-Type": ["application/json"], "Content-Length": ["28"], "Connection": ["keep-alive"], "Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "x-amzn-RequestId": ["d9633293-4e10-4b0e-a595-db4b694cd0e9"], "Access-Control-Allow-Origin": ["*"], "x-amzn-Remapped-Content-Length": ["28"], "x-amzn-Remapped-Connection": ["keep-alive"], "x-amz-apigw-id": ["cw4GPHe_vHcF_ng="], "x-amzn-Remapped-Server": ["nginx/1.16.1"], "x-amzn-Remapped-Date": ["Thu, 25 Mar 2021 21:56:04 GMT"], "X-Cache": ["Error from cloudfront"], "Via": ["1.1 7c8368d4af2107744975990ee628777f.cloudfront.net (CloudFront)"], "X-Amz-Cf-Pop": ["LHR62-C5"], "X-Amz-Cf-Id": ["JGebZ_44zOl-OEUZfXYNM39ai65LW5Qacs44ItVYOY8yzEPR3G6-vg=="]}, "status": {"code": 429, "message": "Too Many Requests"}, "url": "https://api.semanticscholar.org/v1/paper/c4e3be316ce0d5dfc9ec7b19298e9483484cc252"}, "recorded_at": "2021-03-25T21:57:04"}], "recorded_with": "betamax/0.8.1"} -------------------------------------------------------------------------------- /tests/fixtures/db/json/s2authors/2051526200.json: -------------------------------------------------------------------------------- 1 | {"aliases": [], "authorId": "2051526200", "influentialCitationCount": 0, "name": "Shmargaret Shmitchell", "papers": [{"paperId": "6d9727f1f058614cada3fe296eeebd8ec4fc512a", "title": "On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? \ud83e\udd9c", "url": "https://www.semanticscholar.org/paper/6d9727f1f058614cada3fe296eeebd8ec4fc512a", "year": 2021}], "url": "https://www.semanticscholar.org/author/2051526200"} -------------------------------------------------------------------------------- /tests/fixtures/db/json/s2authors/80806115.json: -------------------------------------------------------------------------------- 1 | {"aliases": [], "authorId": "80806115", "influentialCitationCount": 0, "name": "Hedy Lamarr", "papers": [{"paperId": "fe0bf72ba4d260c3b8af6c293322227bf666ed65", "title": "English TV actress (Spooks, Kingdom, 'Wire in the Blood', Outcasts).", "url": "https://www.semanticscholar.org/paper/fe0bf72ba4d260c3b8af6c293322227bf666ed65", "year": 2014}, {"paperId": "8addf7156fea02b214e64a4e7084239bb5c61efc", "title": "10. HOLLYWOOD FILMS", "url": "https://www.semanticscholar.org/paper/8addf7156fea02b214e64a4e7084239bb5c61efc", "year": 2011}, {"paperId": "30600ee228fe7d745e188770ce87dc2469685822", "title": "1 THE CONCEPT OF SPREAD SPECTRUM", "url": "https://www.semanticscholar.org/paper/30600ee228fe7d745e188770ce87dc2469685822", "year": null}, {"paperId": "955020ba0484e949ffcaffba5358e2ea85112c4e", "title": "Ecstasy and Me: my life as a woman", "url": "https://www.semanticscholar.org/paper/955020ba0484e949ffcaffba5358e2ea85112c4e", "year": 1966}], "url": "https://www.semanticscholar.org/author/80806115"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/094c2b04c7e26c4b4af01a51295ffc2f179b4d15.json: -------------------------------------------------------------------------------- 1 | {"abstract": "A distinguished feature of scientific computing is the necessity to design software abstractions for approximations. The approximations are themselves abstractions of mathematical models, and the mathematical models are also abstractions of the real world.", "arxivId": null, "authors": [{"authorId": "2824076", "name": "Krister \u00c5hlander", "url": "https://www.semanticscholar.org/author/2824076"}, {"authorId": "1729570", "name": "M. Haveraaen", "url": "https://www.semanticscholar.org/author/1729570"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "2824076", "name": "Krister \u00c5hlander", "url": null}], "doi": "10.1016/S0898-1221(03)00041-5", "intent": ["methodology"], "isInfluential": false, "paperId": "428759a4c9e86025419738490c75ff3c8763d7a4", "title": "Supporting tensor symmetries in EinSum", "url": "https://www.semanticscholar.org/paper/428759a4c9e86025419738490c75ff3c8763d7a4", "venue": "", "year": 2003}, {"arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}, {"authorId": "7885292", "name": "Lei Lai", "url": null}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": null}], "doi": "10.1007/s11155-006-9020-7", "intent": [], "isInfluential": false, "paperId": "e0e7e01a6195e7252921116601a2e7613749a3a9", "title": "Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability", "url": "https://www.semanticscholar.org/paper/e0e7e01a6195e7252921116601a2e7613749a3a9", "venue": "Reliab. Comput.", "year": 2007}], "corpusId": 14125373, "doi": "10.1007/978-0-387-35407-1_9", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 0, "is_open_access": true, "is_publisher_licensed": false, "paperId": "094c2b04c7e26c4b4af01a51295ffc2f179b4d15", "references": [{"arxivId": null, "authors": [{"authorId": "104783174", "name": "K. Aki", "url": null}, {"authorId": "37887841", "name": "P. G. Richards", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "1c88f701cc856b6a7ab9cc62425ec8313f291e86", "title": "Quantitative Seismology: Theory and Methods", "url": "https://www.semanticscholar.org/paper/1c88f701cc856b6a7ab9cc62425ec8313f291e86", "venue": "", "year": 1980}, {"arxivId": null, "authors": [{"authorId": "1403094413", "name": "H. Munthe-Kaas", "url": null}, {"authorId": "103380767", "name": "M. Heveraaen", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "0fcee7e536cc8af1d524cdab63f0eb190dcb044f", "title": "Coordinate free numerics : Closing the gap between 'pure' and 'applied' mathematics ?", "url": "https://www.semanticscholar.org/paper/0fcee7e536cc8af1d524cdab63f0eb190dcb044f", "venue": "", "year": 1996}], "title": "On the Role of Mathematical Abstractions for Scientific Computing", "topics": [{"topic": "Computational science", "topicId": "25999", "url": "https://www.semanticscholar.org/topic/25999"}, {"topic": "Approximation", "topicId": "3247", "url": "https://www.semanticscholar.org/topic/3247"}, {"topic": "Mathematical model", "topicId": "8753", "url": "https://www.semanticscholar.org/topic/8753"}, {"topic": "Simulation", "topicId": "194", "url": "https://www.semanticscholar.org/topic/194"}, {"topic": "Numerical partial differential equations", "topicId": "27368", "url": "https://www.semanticscholar.org/topic/27368"}], "url": "https://www.semanticscholar.org/paper/094c2b04c7e26c4b4af01a51295ffc2f179b4d15", "venue": "The Architecture of Scientific Software", "year": 2000, "obtained_utc": "2021-04-05T18:24:41.812087"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/094cd5f5aa82fcfc4545d86c3276b5f0fae87795.json: -------------------------------------------------------------------------------- 1 | {"abstract": null, "arxivId": null, "authors": [{"authorId": "2847947", "name": "D. Starrett", "url": "https://www.semanticscholar.org/author/2847947"}, {"authorId": "2082521", "name": "T. Negishi", "url": "https://www.semanticscholar.org/author/2082521"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "143674070", "name": "Y. Otani", "url": null}, {"authorId": "102938556", "name": "Joseph Sicilian", "url": null}], "doi": "10.1016/0022-0531(77)90128-4", "intent": [], "isInfluential": false, "paperId": "63401a8b2d5d60cef97ae89df471157f09359e05", "title": "Externalities and problems of nonconvexity and overhead costs in welfare economics", "url": "https://www.semanticscholar.org/paper/63401a8b2d5d60cef97ae89df471157f09359e05", "venue": "", "year": 1977}, {"arxivId": null, "authors": [{"authorId": "6669320", "name": "J. Heinke", "url": null}, {"authorId": "1996407", "name": "M. Meinshausen", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "8550ad3d08f392b299314ac4c0498b04c24d5fd3", "title": "Originally published as", "url": "https://www.semanticscholar.org/paper/8550ad3d08f392b299314ac4c0498b04c24d5fd3", "venue": "", "year": 2013}], "corpusId": 154524790, "doi": "10.2307/2551790", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": false, "paperId": "094cd5f5aa82fcfc4545d86c3276b5f0fae87795", "references": [], "title": "General equilibrium theory and international trade", "topics": [], "url": "https://www.semanticscholar.org/paper/094cd5f5aa82fcfc4545d86c3276b5f0fae87795", "venue": "", "year": 1972, "obtained_utc": "2021-04-05T18:24:10.725593"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/0e62edcd98d783e95123efc33448682f9faf25e7.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Software plays a significant role in modern academic research, yet lacks a similarly significant presence in the scholarly record. With increasing interest in promoting reproducible research, curating software as a scholarly resource not only promotes access to these tools, but also provides recognition for the intellectual efforts that go into their development. This work reviews existing standards for identifying, promoting discovery of, and providing credit for software development work. In addition, it shows how these guidelines have been integrated into existing tools and community cultures, and provides recommendations for future software curation efforts.", "arxivId": null, "authors": [{"authorId": "2042707", "name": "Laura Soito", "url": "https://www.semanticscholar.org/author/2042707"}, {"authorId": "34663143", "name": "Lorraine J. Hwang", "url": "https://www.semanticscholar.org/author/34663143"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "1403733922", "name": "Teresa Gomez-Diaz", "url": null}, {"authorId": "1711432", "name": "T. Recio", "url": null}], "doi": "10.12688/f1000research.19994.1", "intent": [], "isInfluential": false, "paperId": "13faeeaa42ca4f4e7fb558da0e1240c141ce6579", "title": "On the evaluation of research software: the CDUR procedure.", "url": "https://www.semanticscholar.org/paper/13faeeaa42ca4f4e7fb558da0e1240c141ce6579", "venue": "F1000Research", "year": 2019}, {"arxivId": null, "authors": [{"authorId": "2275225", "name": "Xuelian Pan", "url": null}, {"authorId": "2856106", "name": "E. Yan", "url": null}, {"authorId": "145596028", "name": "Ming Cui", "url": null}, {"authorId": "3055273", "name": "Weina Hua", "url": null}], "doi": "10.1016/J.JOI.2019.02.002", "intent": [], "isInfluential": false, "paperId": "e0c74eb2fcf29a9b2995c0dc1b330256b6036a31", "title": "How important is software to library and information science research? A content analysis of full-text publications", "url": "https://www.semanticscholar.org/paper/e0c74eb2fcf29a9b2995c0dc1b330256b6036a31", "venue": "J. Informetrics", "year": 2019}], "corpusId": 3170419, "doi": "10.2218/IJDC.V11I2.390", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "0e62edcd98d783e95123efc33448682f9faf25e7", "references": [{"arxivId": null, "authors": [{"authorId": "4705265", "name": "L. Simmons", "url": null}], "doi": "10.1093/BEHECO/ARX019", "intent": [], "isInfluential": false, "paperId": "72427c67bbb1f3494398762281b168647fc48dff", "title": "Guidelines for Transparency and Openness (TOP)", "url": "https://www.semanticscholar.org/paper/72427c67bbb1f3494398762281b168647fc48dff", "venue": "", "year": 2017}, {"arxivId": null, "authors": [{"authorId": "2598812", "name": "V. Stodden", "url": null}, {"authorId": "9094808", "name": "P. Guo", "url": null}, {"authorId": "2208200", "name": "Zhaokun Ma", "url": null}], "doi": "10.1371/journal.pone.0067111", "intent": [], "isInfluential": false, "paperId": "ef86c229bc2249a8c7a4a4777c95a426f102c365", "title": "Toward Reproducible Computational Research: An Empirical Analysis of Data and Code Policy Adoption by Journals", "url": "https://www.semanticscholar.org/paper/ef86c229bc2249a8c7a4a4777c95a426f102c365", "venue": "PloS one", "year": 2013}], "title": "Citations for Software: Providing Identification, Access and Recognition for Research Software", "topics": [{"topic": "Digital curation", "topicId": "713945", "url": "https://www.semanticscholar.org/topic/713945"}, {"topic": "Email", "topicId": "21564", "url": "https://www.semanticscholar.org/topic/21564"}, {"topic": "International Standard Serial Number", "topicId": "42914", "url": "https://www.semanticscholar.org/topic/42914"}, {"topic": "Software development", "topicId": "78", "url": "https://www.semanticscholar.org/topic/78"}, {"topic": "Belief revision", "topicId": "77694", "url": "https://www.semanticscholar.org/topic/77694"}], "url": "https://www.semanticscholar.org/paper/0e62edcd98d783e95123efc33448682f9faf25e7", "venue": "Int. J. Digit. Curation", "year": 2016, "obtained_utc": "2021-04-05T18:24:03.574841"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/12e894afd5737aebff30c1fb8775ffd1dcc4dc22.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Many in the Scientific Computing Software community believe that upfront requirements are impossible, or at least infeasible. This paper shows requirements are feasible with the following: i) an appropriate perspective ('faking' the final documentation as if requirements were correct and complete from the start, and gathering requirements as if for a family of programs); ii) the aid of the right principles (abstraction, separation of concerns, anticipation of change, and generality); iii) employing SCS specific templates (for Software Requirements and Module Interface Specification); iv) using a design process that enables change (information hiding); and, v) the aid of modern tools (version control, issue tracking, checking, generation and automation tools). Not only are upfront requirements feasible, they provide significant benefits, including facilitating communication, early identification of errors, better design decisions and enabling replicability. The topics listed above are explained, justified and illustrated via an example of software developed by a small team of software and mechanical engineers for modelling the solidification of a metal alloy.", "arxivId": "1906.07812", "authors": [{"authorId": "150308525", "name": "Spencer H. Smith", "url": "https://www.semanticscholar.org/author/150308525"}, {"authorId": "117527528", "name": "M. Srinivasan", "url": "https://www.semanticscholar.org/author/117527528"}], "citationVelocity": 0, "citations": [{"arxivId": "2009.14015", "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}, {"authorId": "1769166", "name": "J. Carette", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "35bf9c78468c224469881c4469b2b6de3b579292", "title": "Long-term Productivity for Long-term Impact", "url": "https://www.semanticscholar.org/paper/35bf9c78468c224469881c4469b2b6de3b579292", "venue": "ArXiv", "year": 2020}, {"arxivId": "1912.13308", "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}, {"authorId": "50815334", "name": "Mojdeh Sayari Nejad", "url": null}, {"authorId": "2369906", "name": "Alan Wassyng", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "0410d1d7f222fd1d928c0f77b02a6bf48d0eb82c", "title": "Building Confidence in Scientific Computing Software Via Assurance Cases", "url": "https://www.semanticscholar.org/paper/0410d1d7f222fd1d928c0f77b02a6bf48d0eb82c", "venue": "ArXiv", "year": 2019}], "corpusId": 195068868, "doi": "10.1109/SE4Science.2019.00011", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 1, "is_open_access": true, "is_publisher_licensed": true, "paperId": "12e894afd5737aebff30c1fb8775ffd1dcc4dc22", "references": [{"arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}, {"authorId": "50582811", "name": "Thulasi Jegatheesan", "url": null}, {"authorId": "3673485", "name": "D. Kelly", "url": null}], "doi": "10.1109/SE-HPCCSE.2016.10", "intent": [], "isInfluential": false, "paperId": "23ae22df4a094e576345774f57997b3797c5a7f0", "title": "Advantages, Disadvantages and Misunderstandings About Document Driven Design for Scientific Software", "url": "https://www.semanticscholar.org/paper/23ae22df4a094e576345774f57997b3797c5a7f0", "venue": "2016 Fourth International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering (SE-HPCCSE)", "year": 2016}, {"arxivId": null, "authors": [{"authorId": "2109581", "name": "T. Storer", "url": null}], "doi": "10.1145/3084225", "intent": ["methodology"], "isInfluential": false, "paperId": "e0dc23363a89b887ae6ff2a7a1ebb42a367e747a", "title": "Bridging the Chasm", "url": "https://www.semanticscholar.org/paper/e0dc23363a89b887ae6ff2a7a1ebb42a367e747a", "venue": "ACM Comput. Surv.", "year": 2017}], "title": "Debunking the Myth That Upfront Requirements Are Infeasible for Scientific Computing Software", "topics": [{"topic": "Requirement", "topicId": "136", "url": "https://www.semanticscholar.org/topic/136"}, {"topic": "Separation of concerns", "topicId": "52673", "url": "https://www.semanticscholar.org/topic/52673"}, {"topic": "Version control", "topicId": "15717", "url": "https://www.semanticscholar.org/topic/15717"}, {"topic": "Issue tracking system", "topicId": "364727", "url": "https://www.semanticscholar.org/topic/364727"}, {"topic": "Software requirements", "topicId": "23531", "url": "https://www.semanticscholar.org/topic/23531"}, {"topic": "Documentation", "topicId": "132", "url": "https://www.semanticscholar.org/topic/132"}, {"topic": "Emoticon", "topicId": "55238", "url": "https://www.semanticscholar.org/topic/55238"}, {"topic": "Computational science", "topicId": "25999", "url": "https://www.semanticscholar.org/topic/25999"}], "url": "https://www.semanticscholar.org/paper/12e894afd5737aebff30c1fb8775ffd1dcc4dc22", "venue": "2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)", "year": 2019, "obtained_utc": "2021-04-05T18:24:37.998536"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/18749a769485b4ed3597eeef8f88de516889ec81.json: -------------------------------------------------------------------------------- 1 | {"abstract": "..................................................................................................................................... ii Opsomming ............................................................................................................................... iv Acknowledgement .................................................................................................................... vi Dedication .............................................................................................................................. viii Table of", "arxivId": null, "authors": [{"authorId": "113154341", "name": "Nathanael Ivan Lukanda", "url": "https://www.semanticscholar.org/author/113154341"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "121079074", "name": "I. Lukanda", "url": null}], "doi": "10.1007/978-3-030-12974-3_28", "intent": [], "isInfluential": false, "paperId": "66ce69d9c4e027033bc40d3bc3b6addbf169f696", "title": "Implications of Media-Scientists\u2019 Relationship on Crop Biotechnology Debate in Uganda", "url": "https://www.semanticscholar.org/paper/66ce69d9c4e027033bc40d3bc3b6addbf169f696", "venue": "", "year": 2019}], "corpusId": 146084878, "doi": null, "fieldsOfStudy": ["Geography"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "18749a769485b4ed3597eeef8f88de516889ec81", "references": [{"arxivId": null, "authors": [{"authorId": "77419320", "name": "Peter H. Duesberg", "url": null}, {"authorId": "5994429", "name": "D. Rasnick", "url": null}], "doi": "10.1023/A:1003405220186", "intent": ["background"], "isInfluential": false, "paperId": "ad30eed8e87dc4051e8379ae88a7c6b17bd43ba6", "title": "The AIDS dilemma: drug diseases blamed on a passenger virus", "url": "https://www.semanticscholar.org/paper/ad30eed8e87dc4051e8379ae88a7c6b17bd43ba6", "venue": "Genetica", "year": 2004}, {"arxivId": null, "authors": [{"authorId": "4274646", "name": "S. Kimenju", "url": null}, {"authorId": "12029918", "name": "H. Groote", "url": null}], "doi": "10.1111/J.1574-0862.2007.00279.X", "intent": [], "isInfluential": false, "paperId": "da51fc4c99a97ecd5c262413a522e960305b37fd", "title": "Consumer willingness to pay for genetically modified food in Kenya", "url": "https://www.semanticscholar.org/paper/da51fc4c99a97ecd5c262413a522e960305b37fd", "venue": "", "year": 2007}], "title": "From lab to fork? Press coverage and public (mis)perception of crop biotechnology in Uganda", "topics": [], "url": "https://www.semanticscholar.org/paper/18749a769485b4ed3597eeef8f88de516889ec81", "venue": "", "year": 2018, "obtained_utc": "2021-04-05T18:24:02.417109"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/1999102c6b8739498ab5e1ceb6b2c5a519ba2238.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Extremely large datasets have become routine in biology. However, performing a computational analysis of a large dataset can be overwhelming, especially for novices. Here, we present a step-by-step guide to computing workflows with the biologist end-user in mind. Starting from a foundation of sound data management practices, we make specific recommendations on how to approach and perform computational analyses of large datasets, with a view to enabling sound, reproducible biological research.", "arxivId": null, "authors": [{"authorId": "3825723", "name": "A. Shade", "url": "https://www.semanticscholar.org/author/3825723"}, {"authorId": "3146120", "name": "Tracy K. Teal", "url": "https://www.semanticscholar.org/author/3146120"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "35461301", "name": "T. Tobin", "url": null}, {"authorId": "3825723", "name": "A. Shade", "url": null}], "doi": "10.1093/femsle/fny104", "intent": ["background"], "isInfluential": false, "paperId": "25d756556e08aaa8b266f5d41a5cca0f6fc7f443", "title": "A town on fire! Integrating 16S rRNA gene amplicon analyses into an undergraduate microbiology lecture class", "url": "https://www.semanticscholar.org/paper/25d756556e08aaa8b266f5d41a5cca0f6fc7f443", "venue": "FEMS microbiology letters", "year": 2018}, {"arxivId": "1810.00224", "authors": [{"authorId": "2811678", "name": "Luiz M. R. Gadelha", "url": null}, {"authorId": "51938525", "name": "Pedro C. de Siracusa", "url": null}, {"authorId": "1708380", "name": "A. Ziviani", "url": null}, {"authorId": "3453936", "name": "E. Dalcin", "url": null}, {"authorId": "35527264", "name": "H. M. Affe", "url": null}, {"authorId": "36911560", "name": "M. Siqueira", "url": null}, {"authorId": "153648446", "name": "L. A. E. Silva", "url": null}, {"authorId": "3029247", "name": "D. A. Augusto", "url": null}, {"authorId": "1900593", "name": "Eduardo Krempser", "url": null}, {"authorId": "3983852", "name": "M. Chame", "url": null}, {"authorId": "143888049", "name": "R. L. Costa", "url": null}, {"authorId": "2170422", "name": "P. Meirelles", "url": null}, {"authorId": "2705449", "name": "F. Thompson", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "36620a6b88695457057659f3a615e5b2d5b6bba8", "title": "A Survey of e-Biodiversity: Concepts, Practices, and Challenges", "url": "https://www.semanticscholar.org/paper/36620a6b88695457057659f3a615e5b2d5b6bba8", "venue": "ArXiv", "year": 2018}], "corpusId": 14621050, "doi": "10.1371/journal.pbio.1002303", "fieldsOfStudy": ["Biology", "Medicine"], "influentialCitationCount": 0, "is_open_access": true, "is_publisher_licensed": true, "paperId": "1999102c6b8739498ab5e1ceb6b2c5a519ba2238", "references": [{"arxivId": null, "authors": [{"authorId": "2073815", "name": "Ralf J. M. Weber", "url": null}, {"authorId": "39354324", "name": "C. Winder", "url": null}, {"authorId": "2325743", "name": "Lee D. Larcombe", "url": null}, {"authorId": "145334943", "name": "W. Dunn", "url": null}, {"authorId": "2313499", "name": "M. Viant", "url": null}], "doi": "10.1007/s11306-015-0815-6", "intent": [], "isInfluential": false, "paperId": "999c77b5deb04dd8ab70509bdd2ebf122b57cc07", "title": "Training needs in metabolomics", "url": "https://www.semanticscholar.org/paper/999c77b5deb04dd8ab70509bdd2ebf122b57cc07", "venue": "Metabolomics", "year": 2015}, {"arxivId": null, "authors": [{"authorId": "8731644", "name": "Matthew Gentzkow", "url": null}, {"authorId": "122795272", "name": "Jesse M. Shapiro", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "ecb1df457d4514feed7fb71a2499113ba87abbb6", "title": "Code and Data for the Social Sciences: A Practitioner's Guide", "url": "https://www.semanticscholar.org/paper/ecb1df457d4514feed7fb71a2499113ba87abbb6", "venue": "", "year": 2014}], "title": "Computing Workflows for Biologists: A Roadmap", "topics": [{"topic": "Computation (action)", "topicId": "1554", "url": "https://www.semanticscholar.org/topic/1554"}, {"topic": "Bio-Informatics", "topicId": "30650", "url": "https://www.semanticscholar.org/topic/30650"}, {"topic": "NIH Roadmap Initiative tag", "topicId": "11292", "url": "https://www.semanticscholar.org/topic/11292"}, {"topic": "Vocabulary", "topicId": "14862", "url": "https://www.semanticscholar.org/topic/14862"}, {"topic": "Note (document)", "topicId": "5762", "url": "https://www.semanticscholar.org/topic/5762"}, {"topic": "computer science", "topicId": "4496", "url": "https://www.semanticscholar.org/topic/4496"}, {"topic": "Large", "topicId": "28275", "url": "https://www.semanticscholar.org/topic/28275"}, {"topic": "Silo (dataset)", "topicId": "130506", "url": "https://www.semanticscholar.org/topic/130506"}], "url": "https://www.semanticscholar.org/paper/1999102c6b8739498ab5e1ceb6b2c5a519ba2238", "venue": "PLoS biology", "year": 2015, "obtained_utc": "2021-04-05T18:23:50.466639"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/1cfdce0c20bc42beb060e29affe4a399e86b2df9.json: -------------------------------------------------------------------------------- 1 | {"abstract": null, "arxivId": null, "authors": [{"authorId": "3559531", "name": "E. S. Yeung", "url": "https://www.semanticscholar.org/author/3559531"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "1700309", "name": "Ranadip Pal", "url": null}], "doi": "10.1002/widm.1103", "intent": [], "isInfluential": false, "paperId": "7147ff14ddeead2a6c13a1db5a4a313d791934d7", "title": "Modeling and inference of genetic interactions", "url": "https://www.semanticscholar.org/paper/7147ff14ddeead2a6c13a1db5a4a313d791934d7", "venue": "Wiley Interdiscip. Rev. Data Min. Knowl. Discov.", "year": 2013}, {"arxivId": null, "authors": [{"authorId": "4402516", "name": "I. Bergin", "url": null}, {"authorId": "1907846", "name": "F. Witzmann", "url": null}], "doi": "10.1504/IJBNN.2013.054515", "intent": ["methodology"], "isInfluential": false, "paperId": "7991e3beefc43c5b9fae2ce147cff2ccf6605e75", "title": "Nanoparticle toxicity by the gastrointestinal route: evidence and knowledge gaps.", "url": "https://www.semanticscholar.org/paper/7991e3beefc43c5b9fae2ce147cff2ccf6605e75", "venue": "International journal of biomedical nanoscience and nanotechnology", "year": 2013}], "corpusId": 8439222, "doi": "10.1002/anie.201005969", "fieldsOfStudy": ["Biology", "Medicine"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "1cfdce0c20bc42beb060e29affe4a399e86b2df9", "references": [{"arxivId": null, "authors": [{"authorId": "145491138", "name": "L. Cai", "url": null}, {"authorId": "145618792", "name": "N. Friedman", "url": null}, {"authorId": "2032403", "name": "X. Xie", "url": null}], "doi": "10.1038/nature04599", "intent": [], "isInfluential": false, "paperId": "cf49070da10cf1d6c8e0c86322f657a02cd210ef", "title": "Stochastic protein expression in individual cells at the single molecule level", "url": "https://www.semanticscholar.org/paper/cf49070da10cf1d6c8e0c86322f657a02cd210ef", "venue": "Nature", "year": 2006}, {"arxivId": null, "authors": [{"authorId": "2822724", "name": "R. Tsien", "url": null}], "doi": "10.1146/ANNUREV.BIOCHEM.67.1.509", "intent": [], "isInfluential": false, "paperId": "809e00829b5926355016c12cfb6e84dbd5571b7a", "title": "The green fluorescent protein.", "url": "https://www.semanticscholar.org/paper/809e00829b5926355016c12cfb6e84dbd5571b7a", "venue": "Annual review of biochemistry", "year": 1998}], "title": "Genome-wide correlation between mRNA and protein in a single cell.", "topics": [], "url": "https://www.semanticscholar.org/paper/1cfdce0c20bc42beb060e29affe4a399e86b2df9", "venue": "Angewandte Chemie", "year": 2011, "obtained_utc": "2021-04-05T18:24:36.935354"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/306c7e3c6bc916cd4a7818ea8bfdd3ccd947f60c.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Course-based undergraduate research experience (CURE) courses incorporate high-impact pedagogies that have been shown to increase undergraduate retention among underrepresented minorities and women. As part of the Building Infrastructure Leading to Diversity program at the University of Detroit Mercy, a CURE metagenomics course was established in the winter of 2019. Students investigated the bacterial community composition in a eutrophic cove in Lake Saint Clair (Harrison Township, MI, United States) from water samples taken in the summer and winter. The students created 16S rRNA libraries that were sequenced using next-generation sequencing technology. They used a public web-based supercomputing resource to process their raw sequencing data and web-based tools to perform advanced statistical analysis. The students discovered that the most common operational taxonomic unit, representing 31% of the prokaryotic sequences in both summer and winter samples, corresponded to an organism that belongs to a previously unidentified phylum. This result showed the students the power of metagenomics because the approach was able to detect unclassified organisms. Principal Coordinates Analysis of Bray\u2013Curtis dissimilarity index data showed that the winter community was distinct from the summer community [Analysis of Similarities (ANOSIM) r = 0.59829, n = 18, and p < 0.001]. Dendrograms based on hierarchically clustered Pearson correlation coefficients of phyla were divided into a winter clade and a summer clade. The conclusion is that the winter bacterial population was fundamentally different from the summer population, even though the samples were taken from the same locations in a protected cove. Because of the small class sizes, qualitative as well as statistical methods were used to evaluate the course\u2019s impact on student attitudes. Results from the Laboratory Course Assessment Survey showed that most of the respondents felt they were contributing to scientific knowledge and the course fostered student collaboration. The majority of respondents agreed or strongly agreed that the course incorporated iteration aspects of scientific investigations, such as repeating procedures to fix problems. In summary, the metagenomics CURE course was able to add to scientific knowledge and allowed students to participate in authentic research.", "arxivId": null, "authors": [{"authorId": "39067305", "name": "Stokes S. Baker", "url": "https://www.semanticscholar.org/author/39067305"}, {"authorId": "1404360664", "name": "Mohamed S. Alhassan", "url": "https://www.semanticscholar.org/author/1404360664"}], "citationVelocity": 0, "citations": [], "corpusId": 231947416, "doi": "10.3389/fmicb.2021.579325", "fieldsOfStudy": ["Medicine"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": true, "paperId": "306c7e3c6bc916cd4a7818ea8bfdd3ccd947f60c", "references": [{"arxivId": null, "authors": [{"authorId": "2222771", "name": "M. Love", "url": null}, {"authorId": "144493753", "name": "W. Huber", "url": null}, {"authorId": "1922254", "name": "S. Anders", "url": null}], "doi": "10.1186/s13059-014-0550-8", "intent": [], "isInfluential": true, "paperId": "772f5fca88de0f6f38116d73cc32e23efe780a10", "title": "Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2", "url": "https://www.semanticscholar.org/paper/772f5fca88de0f6f38116d73cc32e23efe780a10", "venue": "Genome Biology", "year": 2014}, {"arxivId": null, "authors": [{"authorId": "14714755", "name": "Mahi M. Mohiuddin", "url": null}, {"authorId": "23305425", "name": "Steven R. Botts", "url": null}, {"authorId": "2105023", "name": "A. Paschos", "url": null}, {"authorId": "2415504", "name": "H. Schellhorn", "url": null}], "doi": "10.1016/J.JGLR.2018.10.007", "intent": [], "isInfluential": false, "paperId": "7209ca7a21e54188f58979177f66c7b22361c70d", "title": "Temporal and spatial changes in bacterial diversity in mixed use watersheds of the Great Lakes region", "url": "https://www.semanticscholar.org/paper/7209ca7a21e54188f58979177f66c7b22361c70d", "venue": "", "year": 2019}], "title": "Students in a Course-Based Undergraduate Research Experience Course Discovered Dramatic Changes in the Bacterial Community Composition Between Summer and Winter Lake Samples", "topics": [], "url": "https://www.semanticscholar.org/paper/306c7e3c6bc916cd4a7818ea8bfdd3ccd947f60c", "venue": "Frontiers in Microbiology", "year": 2021, "obtained_utc": "2021-04-05T18:24:15.307021"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/36620a6b88695457057659f3a615e5b2d5b6bba8.json: -------------------------------------------------------------------------------- 1 | {"abstract": "The unprecedented size of the human population, along with its associated economic activities, have an ever increasing impact on global environments. Across the world, countries are concerned about the growing resource consumption and the capacity of ecosystems to provide them. To effectively conserve biodiversity, it is essential to make indicators and knowledge openly available to decision-makers in ways that they can effectively use them. The development and deployment of mechanisms to produce these indicators depend on having access to trustworthy data from field surveys and automated sensors, biological collections, molecular data, and historic academic literature. The transformation of this raw data into synthesized information that is fit for use requires going through many refinement steps. The methodologies and techniques used to manage and analyze this data comprise an area often called biodiversity informatics (or e-Biodiversity). Biodiversity data follows a life cycle consisting of planning, collection, certification, description, preservation, discovery, integration, and analysis. Researchers, whether producers or consumers of biodiversity data, will likely perform activities related to at least one of these steps. This article explores each stage of the life cycle of biodiversity data, discussing its methodologies, tools, and challenges.", "arxivId": null, "authors": [{"authorId": "2811678", "name": "Luiz M. R. Gadelha", "url": "https://www.semanticscholar.org/author/2811678"}, {"authorId": "51938525", "name": "Pedro C. de Siracusa", "url": "https://www.semanticscholar.org/author/51938525"}], "citationVelocity": 0, "citations": [], "corpusId": 52899942, "doi": null, "fieldsOfStudy": ["Computer Science", "Biology"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "36620a6b88695457057659f3a615e5b2d5b6bba8", "references": [{"arxivId": null, "authors": [{"authorId": "1954366", "name": "Johannes Starlinger", "url": null}, {"authorId": "3023955", "name": "Bryan Brancotte", "url": null}, {"authorId": "1783625", "name": "Sarah Cohen Boulakia", "url": null}, {"authorId": "1693022", "name": "U. Leser", "url": null}], "doi": "10.14778/2732977.2732988", "intent": ["background"], "isInfluential": false, "paperId": "47fdc3343627cd425f446fb7cd45b5a10d7968be", "title": "Similarity Search for Scientific Workflows", "url": "https://www.semanticscholar.org/paper/47fdc3343627cd425f446fb7cd45b5a10d7968be", "venue": "Proc. VLDB Endow.", "year": 2014}, {"arxivId": null, "authors": [{"authorId": "1699694", "name": "Peter Ivie", "url": null}, {"authorId": "1686699", "name": "D. Thain", "url": null}], "doi": "10.1145/3186266", "intent": ["methodology"], "isInfluential": false, "paperId": "5baab6c570f55ec1da9e07a3a28046fa06f9c172", "title": "Reproducibility in Scientific Computing", "url": "https://www.semanticscholar.org/paper/5baab6c570f55ec1da9e07a3a28046fa06f9c172", "venue": "ACM Comput. Surv.", "year": 2018}], "title": "A Survey of e-Biodiversity: Concepts, Practices, and Challenges", "topics": [{"topic": "Biodiversity informatics", "topicId": "463549", "url": "https://www.semanticscholar.org/topic/463549"}, {"topic": "Ecosystem", "topicId": "727", "url": "https://www.semanticscholar.org/topic/727"}, {"topic": "Automated planning and scheduling", "topicId": "3649", "url": "https://www.semanticscholar.org/topic/3649"}, {"topic": "Refinement (computing)", "topicId": "5410", "url": "https://www.semanticscholar.org/topic/5410"}, {"topic": "Sensor", "topicId": "1117", "url": "https://www.semanticscholar.org/topic/1117"}, {"topic": "Global Positioning System", "topicId": "2782", "url": "https://www.semanticscholar.org/topic/2782"}, {"topic": "Software deployment", "topicId": "328066", "url": "https://www.semanticscholar.org/topic/328066"}, {"topic": "Case preservation", "topicId": "1284567", "url": "https://www.semanticscholar.org/topic/1284567"}], "url": "https://www.semanticscholar.org/paper/36620a6b88695457057659f3a615e5b2d5b6bba8", "venue": "ArXiv", "year": 2018, "obtained_utc": "2021-04-05T18:24:01.289140"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/3941a055bacb6077e34c6e07f45b2f860aba09c2.json: -------------------------------------------------------------------------------- 1 | {"abstract": "The HapMap Web site at http://www.hapmap.org is the primary portal to genotype data produced as part of the International Haplotype Map Project. In phase I of the project, >1.1 million SNPs were genotyped in 270 individuals from four worldwide populations. The HapMap Web site provides researchers with a number of tools that allow them to analyze the data as well as download data for local analyses. This paper presents step-by-step guides to using those tools, including guides for retrieving genotype and frequency data, picking tag-SNPs for use in association studies, viewing haplotypes graphically, and examining marker-to-marker LD patterns.", "arxivId": null, "authors": [{"authorId": "49677020", "name": "Gudmundur A. Thorisson", "url": "https://www.semanticscholar.org/author/49677020"}, {"authorId": "50472882", "name": "A. Smith", "url": "https://www.semanticscholar.org/author/50472882"}], "citationVelocity": 42, "citations": [{"arxivId": null, "authors": [{"authorId": "40212431", "name": "Ghorban Mohammadzadeh", "url": null}, {"authorId": "144303609", "name": "M A Ghaffari", "url": null}, {"authorId": "3522888", "name": "Ahmmad Bafandeh", "url": null}, {"authorId": "82349334", "name": "S R Aref Hosseini", "url": null}, {"authorId": null, "name": "Mohammadzadeh G", "url": null}, {"authorId": "113498515", "name": "Ghaffari Ma", "url": null}, {"authorId": null, "name": "Bafandeh A Hosseini", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "7d2c6058e61270ab3175256de77eb7642ab08ff7", "title": "Iranian Journal of Basic Medical Sciences Effect of Leptin Receptor Q223r Polymorphism on Breast Cancer Risk Sm. Effect of Leptin Receptor Q223r Polymorphism on Breast Cancer Risk. Iran J Basic", "url": "https://www.semanticscholar.org/paper/7d2c6058e61270ab3175256de77eb7642ab08ff7", "venue": "", "year": null}, {"arxivId": null, "authors": [{"authorId": "50472882", "name": "A. Smith", "url": null}], "doi": "10.1101/pdb.prot5023", "intent": [], "isInfluential": false, "paperId": "6e8c5347ab420a9f694e53544554a017bebf347b", "title": "Browsing HapMap Data Using the Genome Browser.", "url": "https://www.semanticscholar.org/paper/6e8c5347ab420a9f694e53544554a017bebf347b", "venue": "CSH protocols", "year": 2008}], "corpusId": 39531454, "doi": "10.1101/GR.4413105", "fieldsOfStudy": ["Biology", "Medicine"], "influentialCitationCount": 62, "is_open_access": true, "is_publisher_licensed": false, "paperId": "3941a055bacb6077e34c6e07f45b2f860aba09c2", "references": [{"arxivId": null, "authors": [{"authorId": "144489561", "name": "D. Gilbert", "url": null}], "doi": null, "intent": ["methodology"], "isInfluential": false, "paperId": "840a831edf4b5fd91b77053aae2827c5471aea46", "title": "Shopping in the genome market with EnsMart.", "url": "https://www.semanticscholar.org/paper/840a831edf4b5fd91b77053aae2827c5471aea46", "venue": "Briefings in bioinformatics", "year": 2003}, {"arxivId": null, "authors": [{"authorId": "24917093", "name": "L. Stein", "url": null}, {"authorId": "153930872", "name": "C. Mungall", "url": null}, {"authorId": "39323696", "name": "S. Shu", "url": null}, {"authorId": "3335420", "name": "M. Caudy", "url": null}, {"authorId": "3390660", "name": "M. Mangone", "url": null}, {"authorId": "33020038", "name": "Allen Day", "url": null}, {"authorId": "143724643", "name": "E. Nickerson", "url": null}, {"authorId": "2218230", "name": "J. Stajich", "url": null}, {"authorId": "3002909", "name": "T. W. Harris", "url": null}, {"authorId": "5753436", "name": "Adrian Arva", "url": null}, {"authorId": "46757067", "name": "S. Lewis", "url": null}], "doi": "10.1101/GR.403602", "intent": ["methodology"], "isInfluential": false, "paperId": "267307f9ec89ce6f69e7fa9e8f24d9e9a0febef0", "title": "The generic genome browser: a building block for a model organism system database.", "url": "https://www.semanticscholar.org/paper/267307f9ec89ce6f69e7fa9e8f24d9e9a0febef0", "venue": "Genome research", "year": 2002}], "title": "The International HapMap Project Web site.", "topics": [{"topic": "International HapMap Project", "topicId": "188758", "url": "https://www.semanticscholar.org/topic/188758"}, {"topic": "Single Nucleotide Polymorphism", "topicId": "2967", "url": "https://www.semanticscholar.org/topic/2967"}, {"topic": "Population", "topicId": "2902", "url": "https://www.semanticscholar.org/topic/2902"}, {"topic": "Download", "topicId": "19481", "url": "https://www.semanticscholar.org/topic/19481"}, {"topic": "Type III site-specific deoxyribonuclease", "topicId": "1642743", "url": "https://www.semanticscholar.org/topic/1642743"}, {"topic": "Reason applied by forcast logic to project this vaccine:Finding:Point in time:^Patient:Nominal", "topicId": "3477565", "url": "https://www.semanticscholar.org/topic/3477565"}], "url": "https://www.semanticscholar.org/paper/3941a055bacb6077e34c6e07f45b2f860aba09c2", "venue": "Genome research", "year": 2005, "obtained_utc": "2021-04-05T18:24:35.874761"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/396aeffaebf75e6fc6757b3a88595605951c0bbf.json: -------------------------------------------------------------------------------- 1 | {"abstract": "TIAM-MACRO (TM) is a mathematical programming growth model where the global multi-region bottom-up engineering model TIAM is linked with a top-down macroeconomic module MACRO to maximize an inter-temporal utility function for a single representative producer-consumer agent in each region. The size of TM is such that non-linear (NL) optimal solutions cannot be obtained even when the best available personal computers and solvers are used. Therefore, an alternative is proposed based on decomposition methods converting TM to a small-size NL macroeconomic model, called TIAM-MACRO Stand-Alone (TMSA), and where the energy model TIAM is substituted by appropriate quadratic cost-supply functions (QSF). The TIAM model and the TMSA are calibrated to the demands estimated with a scenario generator and are then solved iteratively. This report concentrates on the description and foundation of the algorithm and explains why an adjusted production function is needed to allow for sectoral income and price elasticities that reproduce/calibrate the baseline scenario. It is shown that the decomposed problem for a single region is calibrated and solved to exactly the same results as the original problem in 3\u00a0min of computer time instead of 2\u20133\u00a0h without decomposition. Also, for the first time, we are able to solve the global TM model with 15 regions in 1.5\u00a0h applying the approach based on TMSA (in Windows 7, 64-bit workstation, solution in a single thread).", "arxivId": null, "authors": [{"authorId": "2687871", "name": "S. Kypreos", "url": "https://www.semanticscholar.org/author/2687871"}, {"authorId": "115106804", "name": "A. Lehtila", "url": "https://www.semanticscholar.org/author/115106804"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "2434453", "name": "D. Huppmann", "url": null}, {"authorId": "1962165", "name": "Matthew J. Gidden", "url": null}, {"authorId": "3491420", "name": "Oliver Fricko", "url": null}, {"authorId": "65739005", "name": "P. Kolp", "url": null}, {"authorId": "66982434", "name": "C. Orthofer", "url": null}, {"authorId": "65929735", "name": "M. Pimmer", "url": null}, {"authorId": "67246811", "name": "Nikolay Kushin", "url": null}, {"authorId": "41076722", "name": "Adriano Vinca", "url": null}, {"authorId": "67131327", "name": "Alessio Mastrucci", "url": null}, {"authorId": "3491432", "name": "K. Riahi", "url": null}, {"authorId": "8486951", "name": "V. Krey", "url": null}], "doi": "10.1016/j.envsoft.2018.11.012", "intent": [], "isInfluential": false, "paperId": "f2c320857ba4b28460912f19375d0d41ca8dc734", "title": "The MESSAGEix Integrated Assessment Model and the ix modeling platform (ixmp): An open framework for integrated and cross-cutting analysis of energy, climate, the environment, and sustainable development", "url": "https://www.semanticscholar.org/paper/f2c320857ba4b28460912f19375d0d41ca8dc734", "venue": "Environ. Model. Softw.", "year": 2019}, {"arxivId": null, "authors": [{"authorId": "34931990", "name": "B. Mousavi", "url": null}, {"authorId": "51976628", "name": "M. Blesl", "url": null}], "doi": "10.1007/978-3-319-74424-7_5", "intent": [], "isInfluential": false, "paperId": "9e7403c730d0e84cba7b4f3fb56feb5a9115717d", "title": "Analysis of the Relative Roles of Supply-Side and Demand-Side Measures in Tackling the Global 1.5 \u00b0C Target", "url": "https://www.semanticscholar.org/paper/9e7403c730d0e84cba7b4f3fb56feb5a9115717d", "venue": "", "year": 2018}], "corpusId": 154735986, "doi": "10.1007/s10666-015-9451-9", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 1, "is_open_access": true, "is_publisher_licensed": true, "paperId": "396aeffaebf75e6fc6757b3a88595605951c0bbf", "references": [{"arxivId": null, "authors": [{"authorId": "2847947", "name": "D. Starrett", "url": null}, {"authorId": "2082521", "name": "T. Negishi", "url": null}], "doi": "10.2307/2551790", "intent": [], "isInfluential": false, "paperId": "094cd5f5aa82fcfc4545d86c3276b5f0fae87795", "title": "General equilibrium theory and international trade", "url": "https://www.semanticscholar.org/paper/094cd5f5aa82fcfc4545d86c3276b5f0fae87795", "venue": "", "year": 1972}, {"arxivId": null, "authors": [{"authorId": "7697925", "name": "K. Arrow", "url": null}, {"authorId": "69034224", "name": "G. Debreu", "url": null}], "doi": "10.1017/CCOL052123736X.005", "intent": ["methodology"], "isInfluential": true, "paperId": "e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641", "title": "EXISTENCE OF AN EQUILIBRIUM FOR A COMPETITIVE ECONOMY", "url": "https://www.semanticscholar.org/paper/e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641", "venue": "", "year": 1954}], "title": "Decomposing TIAM-MACRO to Assess Climatic Change Mitigation", "topics": [], "url": "https://www.semanticscholar.org/paper/396aeffaebf75e6fc6757b3a88595605951c0bbf", "venue": "Environmental Modeling & Assessment", "year": 2015, "obtained_utc": "2021-04-05T18:23:59.549176"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/39f1d90fbfb19061bad82c33fc27c9ddca83615d.json: -------------------------------------------------------------------------------- 1 | {"abstract": "The MESSAGE Integrated Assessment Model (IAM) developed by IIASA has been a central tool of energy-environment-economy systems analysis in the global scientific and policy arena. It played a major role in the Assessment Reports of the Intergovernmental Panel on Climate Change (IPCC); it provided marker scenarios of the Representative Concentration Pathways (RCPs) and the Shared Socio-Economic Pathways (SSPs); and it underpinned the analysis of the Global Energy Assessment (GEA). Alas, to provide relevant analysis for current and future challenges, numerical models of human and earth systems need to support higher spatial and temporal resolution, facilitate integration of data sources and methodologies across disciplines, and become open and transparent regarding the underlying data, methods, and the scientific workflow. In this manuscript, we present the building blocks of a new framework for an integrated assessment modeling platform; the \u201cecosystem\u201d comprises: i) an open-source GAMS implementation of the MESSAGE energy++ system model integrated with the MACRO economic model; ii) a Java/database backend for version-controlled data management, iii) interfaces for the scientific programming languages Python & R for efficient input data and results processing workflows; and iv) a web-browser-based user interface for model/scenario management and intuitive \u201cdrag-and-drop\u201d visualization of results. The framework aims to facilitate the highest level of openness for scientific analysis, bridging the need for transparency with efficient data processing and powerful numerical solvers. The platform is geared towards easy integration of data sources and models across disciplines, spatial scales and temporal disaggregation levels. All tools apply best-practice in collaborative software development, and comprehensive documentation of all building blocks and scripts is generated directly from the GAMS equations and the Java/Python/R source code.", "arxivId": null, "authors": [{"authorId": "2434453", "name": "D. Huppmann", "url": "https://www.semanticscholar.org/author/2434453"}, {"authorId": "1962165", "name": "Matthew J. Gidden", "url": "https://www.semanticscholar.org/author/1962165"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "47087489", "name": "Z. Yang", "url": null}], "doi": "10.15666/aeer/1704_87638774", "intent": ["background"], "isInfluential": false, "paperId": "56f6a06364736effb2098f03cc639e32a800ed4f", "title": "EFFECT OF WORKPLACE STATUS ON GREEN CREATIVITY: AN EMPIRICAL STUDY", "url": "https://www.semanticscholar.org/paper/56f6a06364736effb2098f03cc639e32a800ed4f", "venue": "", "year": 2019}], "corpusId": 37178849, "doi": null, "fieldsOfStudy": null, "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "39f1d90fbfb19061bad82c33fc27c9ddca83615d", "references": [{"arxivId": null, "authors": [{"authorId": "108137899", "name": "A. S. Manne", "url": null}, {"authorId": "3395548", "name": "R. Richels", "url": null}], "doi": "10.2307/2584220", "intent": ["methodology"], "isInfluential": false, "paperId": "aa37a174abd5b95bdf815c15436bbf33fd843859", "title": "Buying Greenhouse Insurance: The Economic Costs of CO2 Emission Limits", "url": "https://www.semanticscholar.org/paper/aa37a174abd5b95bdf815c15436bbf33fd843859", "venue": "", "year": 1992}, {"arxivId": null, "authors": [{"authorId": "2687871", "name": "S. Kypreos", "url": null}, {"authorId": "115106804", "name": "A. Lehtila", "url": null}], "doi": "10.1007/s10666-015-9451-9", "intent": ["methodology"], "isInfluential": true, "paperId": "396aeffaebf75e6fc6757b3a88595605951c0bbf", "title": "Decomposing TIAM-MACRO to Assess Climatic Change Mitigation", "url": "https://www.semanticscholar.org/paper/396aeffaebf75e6fc6757b3a88595605951c0bbf", "venue": "Environmental Modeling & Assessment", "year": 2015}], "title": "The MESSAGE ix Integrated Assessment Model and the ix modeling platform ( ixmp ) An open framework for integrated and cross-cutting analysis of energy , climate , the environment , and sustainable development", "topics": [], "url": "https://www.semanticscholar.org/paper/39f1d90fbfb19061bad82c33fc27c9ddca83615d", "venue": "", "year": 2018, "obtained_utc": "2021-04-05T18:23:49.710509"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/47fdc3343627cd425f446fb7cd45b5a10d7968be.json: -------------------------------------------------------------------------------- 1 | {"abstract": "With the increasing popularity of scientific workflows, public repositories are gaining importance as a means to share, find, and reuse such workflows. As the sizes of these repositories grow, methods to compare the scientific workflows stored in them become a necessity, for instance, to allow duplicate detection or similarity search. Scientific workflows are complex objects, and their comparison entails a number of distinct steps from comparing atomic elements to comparison of the workflows as a whole. Various studies have implemented methods for scientific workflow comparison and came up with often contradicting conclusions upon which algorithms work best. Comparing these results is cumbersome, as the original studies mixed different approaches for different steps and used different evaluation data and metrics. We contribute to the field (i) by disecting each previous approach into an explicitly defined and comparable set of subtasks, (ii) by comparing in isolation different approaches taken at each step of scientific workflow comparison, reporting on an number of unexpected findings, (iii) by investigating how these can best be combined into aggregated measures, and (iv) by making available a gold standard of over 2000 similarity ratings contributed by 15 workflow experts on a corpus of almost 1500 workflows and re-implementations of all methods we evaluated.", "arxivId": null, "authors": [{"authorId": "1954366", "name": "Johannes Starlinger", "url": "https://www.semanticscholar.org/author/1954366"}, {"authorId": "3023955", "name": "Bryan Brancotte", "url": "https://www.semanticscholar.org/author/3023955"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "31316897", "name": "Ruben Acu\u00f1a", "url": null}, {"authorId": "1776051", "name": "Z. Lacroix", "url": null}], "doi": "10.1109/ICSC.2016.102", "intent": ["methodology"], "isInfluential": false, "paperId": "4eb67e55b40bc43bd9b2ccc07894c0ea7e8ba723", "title": "Extracting Semantics from Legacy Scientific Workflows", "url": "https://www.semanticscholar.org/paper/4eb67e55b40bc43bd9b2ccc07894c0ea7e8ba723", "venue": "2016 IEEE Tenth International Conference on Semantic Computing (ICSC)", "year": 2016}, {"arxivId": null, "authors": [{"authorId": "1398926410", "name": "D. Garijo", "url": null}], "doi": "10.1145/3054837.3054839", "intent": [], "isInfluential": false, "paperId": "1ebb80709f19a9ae76f68daac0a492ec0d2f03c3", "title": "AI buzzwords explained: scientific workflows", "url": "https://www.semanticscholar.org/paper/1ebb80709f19a9ae76f68daac0a492ec0d2f03c3", "venue": "", "year": 2017}], "corpusId": 5394308, "doi": "10.14778/2732977.2732988", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 4, "is_open_access": true, "is_publisher_licensed": false, "paperId": "47fdc3343627cd425f446fb7cd45b5a10d7968be", "references": [{"arxivId": null, "authors": [{"authorId": "1708123", "name": "D. Roure", "url": null}, {"authorId": "46555127", "name": "C. Goble", "url": null}, {"authorId": "144560289", "name": "R. Stevens", "url": null}], "doi": "10.1016/j.future.2008.06.010", "intent": ["methodology", "background"], "isInfluential": false, "paperId": "01ac1a5a243c0f53f200a04ef6316512c96a31e8", "title": "The design and realisation of the myExperiment Virtual Research Environment for social sharing of workflows", "url": "https://www.semanticscholar.org/paper/01ac1a5a243c0f53f200a04ef6316512c96a31e8", "venue": "Future Gener. Comput. Syst.", "year": 2009}, {"arxivId": null, "authors": [{"authorId": "1900211", "name": "S. Bowers", "url": null}, {"authorId": "1716911", "name": "Bertram Lud\u00e4scher", "url": null}], "doi": "10.1007/11568322_24", "intent": ["background"], "isInfluential": false, "paperId": "e64ba778a773a7935176db3d18f2002a48189245", "title": "Actor-Oriented Design of Scientific Workflows", "url": "https://www.semanticscholar.org/paper/e64ba778a773a7935176db3d18f2002a48189245", "venue": "ER", "year": 2005}], "title": "Similarity Search for Scientific Workflows", "topics": [{"topic": "Similarity search", "topicId": "115329", "url": "https://www.semanticscholar.org/topic/115329"}, {"topic": "Text corpus", "topicId": "14829", "url": "https://www.semanticscholar.org/topic/14829"}, {"topic": "Algorithm", "topicId": "305", "url": "https://www.semanticscholar.org/topic/305"}], "url": "https://www.semanticscholar.org/paper/47fdc3343627cd425f446fb7cd45b5a10d7968be", "venue": "Proc. VLDB Endow.", "year": 2014, "obtained_utc": "2021-04-05T18:24:16.958300"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/56f6a06364736effb2098f03cc639e32a800ed4f.json: -------------------------------------------------------------------------------- 1 | {"abstract": "In organizations, green creativity of the employees is an essential part of implementing sustainable development. Our research proposed that workplace status has a significant impact on green creativity. Through an empirical study, we came to the conclusion that an increase in workplace status can lead to green creativity and prosocial motivation mediates the process. Since workplace status promotes the attention for group interests, employees will evaluate their self-worth considering the sustainable development of the environment. Based on the analysis framework of moderated mediation model, this study indicated that organization identification had a positive moderating effect on the relationship between workplace status and green creativity, and it is the boundary condition for workplace status to be effective.", "arxivId": null, "authors": [{"authorId": "47087489", "name": "Z. Yang", "url": "https://www.semanticscholar.org/author/47087489"}], "citationVelocity": 0, "citations": [], "corpusId": 207819804, "doi": "10.15666/aeer/1704_87638774", "fieldsOfStudy": ["Biology"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "56f6a06364736effb2098f03cc639e32a800ed4f", "references": [{"arxivId": null, "authors": [{"authorId": "115275057", "name": "P. Aebischer", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "ca0d148fa2ef80203d2cd74d49432ab1333bbbf2", "title": "Creative Disability/disabled Creativity in Henry Green's Blindness (1926)", "url": "https://www.semanticscholar.org/paper/ca0d148fa2ef80203d2cd74d49432ab1333bbbf2", "venue": "", "year": 2003}, {"arxivId": null, "authors": [{"authorId": "2823035", "name": "Amy Wrzesniewski", "url": null}, {"authorId": "40382069", "name": "J. Dutton", "url": null}, {"authorId": "98255015", "name": "Gelaye Debebe", "url": null}], "doi": "10.1016/S0191-3085(03)25003-6", "intent": ["background"], "isInfluential": false, "paperId": "d410fea1de0a8ca7ee8e16d83524af4f013e42d8", "title": "INTERPERSONAL SENSEMAKING AND THE MEANING OF WORK", "url": "https://www.semanticscholar.org/paper/d410fea1de0a8ca7ee8e16d83524af4f013e42d8", "venue": "", "year": 2003}], "title": "EFFECT OF WORKPLACE STATUS ON GREEN CREATIVITY: AN EMPIRICAL STUDY", "topics": [], "url": "https://www.semanticscholar.org/paper/56f6a06364736effb2098f03cc639e32a800ed4f", "venue": "", "year": 2019, "obtained_utc": "2021-04-05T18:23:57.736311"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/5baab6c570f55ec1da9e07a3a28046fa06f9c172.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Reproducibility is widely considered to be an essential requirement of the scientific process. However, a number of serious concerns have been raised recently, questioning whether today\u2019s computational work is adequately reproducible. In principle, it should be possible to specify a computation to sufficient detail that anyone should be able to reproduce it exactly. But in practice, there are fundamental, technical, and social barriers to doing so. The many objectives and meanings of reproducibility are discussed within the context of scientific computing. Technical barriers to reproducibility are described, extant approaches surveyed, and open areas of research are identified.", "arxivId": null, "authors": [{"authorId": "1699694", "name": "Peter Ivie", "url": "https://www.semanticscholar.org/author/1699694"}, {"authorId": "1686699", "name": "D. Thain", "url": "https://www.semanticscholar.org/author/1686699"}], "citationVelocity": 10, "citations": [{"arxivId": null, "authors": [{"authorId": "2598812", "name": "V. Stodden", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "c2321c16a12b0a71ab99214a054a60bd2655a505", "title": "Assessing Reproducibility : An Astrophysical Example of Computational Uncertainty in the HPC Context", "url": "https://www.semanticscholar.org/paper/c2321c16a12b0a71ab99214a054a60bd2655a505", "venue": "", "year": 2018}, {"arxivId": null, "authors": [{"authorId": "49404140", "name": "HaiNing Li", "url": null}, {"authorId": "144168271", "name": "Ming Li", "url": null}], "doi": "10.1371/journal.pone.0234068", "intent": [], "isInfluential": false, "paperId": "115308d47323efc71d330ef6531151cabff4550c", "title": "Analysis of the pattern recognition algorithm of broadband satellite modulation signal under deformable convolutional neural networks", "url": "https://www.semanticscholar.org/paper/115308d47323efc71d330ef6531151cabff4550c", "venue": "PloS one", "year": 2020}], "corpusId": 51639715, "doi": "10.1145/3186266", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": true, "paperId": "5baab6c570f55ec1da9e07a3a28046fa06f9c172", "references": [{"arxivId": null, "authors": [{"authorId": "1727782", "name": "J. Mesirov", "url": null}], "doi": "10.1126/science.1179653", "intent": ["background"], "isInfluential": false, "paperId": "db871292f2a5bb7b93ed367e6d0dd93623b2a036", "title": "Accessible Reproducible Research", "url": "https://www.semanticscholar.org/paper/db871292f2a5bb7b93ed367e6d0dd93623b2a036", "venue": "Science", "year": 2010}, {"arxivId": null, "authors": [{"authorId": "1793615", "name": "Ivan Krsul", "url": null}, {"authorId": "34653108", "name": "Arijit Ganguly", "url": null}, {"authorId": "40648807", "name": "Jian Zhang", "url": null}, {"authorId": "144371682", "name": "J. Fortes", "url": null}, {"authorId": "144356414", "name": "R. Figueiredo", "url": null}], "doi": "10.1109/SC.2004.67", "intent": ["background"], "isInfluential": false, "paperId": "69bcfe3e8c989166caa93c78637a19793ac43eee", "title": "VMPlants: Providing and Managing Virtual Machine Execution Environments for Grid Computing", "url": "https://www.semanticscholar.org/paper/69bcfe3e8c989166caa93c78637a19793ac43eee", "venue": "Proceedings of the ACM/IEEE SC2004 Conference", "year": 2004}], "title": "Reproducibility in Scientific Computing", "topics": [{"topic": "Computational science", "topicId": "25999", "url": "https://www.semanticscholar.org/topic/25999"}, {"topic": "Computation", "topicId": "339", "url": "https://www.semanticscholar.org/topic/339"}, {"topic": "Petascale computing", "topicId": "104967", "url": "https://www.semanticscholar.org/topic/104967"}, {"topic": "Numerical analysis", "topicId": "5413", "url": "https://www.semanticscholar.org/topic/5413"}, {"topic": "Software deployment", "topicId": "328066", "url": "https://www.semanticscholar.org/topic/328066"}, {"topic": "Computation (action)", "topicId": "1554", "url": "https://www.semanticscholar.org/topic/1554"}], "url": "https://www.semanticscholar.org/paper/5baab6c570f55ec1da9e07a3a28046fa06f9c172", "venue": "ACM Comput. Surv.", "year": 2018, "obtained_utc": "2021-04-05T18:24:17.857528"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/617e2d3a42c23a758daf8dd51ab82f89d171ef54.json: -------------------------------------------------------------------------------- 1 | {"abstract": "The book, The Mythical Man-Month, Addison-Wesley, 1975 (excerpted in Datamation, December 1974), gathers some of the published data about software engineering and mixes it with the assertion of a lot of personal opinions. In this presentation, the author will list some of the assertions and invite dispute or support from the audience. This is intended as a public discussion of the published book, not a regular paper.", "arxivId": null, "authors": [{"authorId": "1795780", "name": "F. Brooks", "url": "https://www.semanticscholar.org/author/1795780"}], "citationVelocity": 71, "citations": [{"arxivId": null, "authors": [{"authorId": "14428817", "name": "Terry Marris November", "url": null}], "doi": "10.1007/978-1-4302-0243-1_1", "intent": [], "isInfluential": false, "paperId": "44706e44f9a2cc23aa3d881d0b300ebf399b896f", "title": "Programming with C", "url": "https://www.semanticscholar.org/paper/44706e44f9a2cc23aa3d881d0b300ebf399b896f", "venue": "", "year": 2010}, {"arxivId": null, "authors": [{"authorId": "1736767", "name": "Parag C. Pendharkar", "url": null}, {"authorId": "34928577", "name": "J. Rodger", "url": null}], "doi": "10.1145/1435417.1435449", "intent": [], "isInfluential": false, "paperId": "3b4df188c9d0bac1615944e16cff3ddac0196c96", "title": "The relationship between software development team size and software development cost", "url": "https://www.semanticscholar.org/paper/3b4df188c9d0bac1615944e16cff3ddac0196c96", "venue": "CACM", "year": 2009}], "corpusId": 18140983, "doi": "10.1145/800027.808439", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 156, "is_open_access": false, "is_publisher_licensed": true, "paperId": "617e2d3a42c23a758daf8dd51ab82f89d171ef54", "references": [{"arxivId": null, "authors": [{"authorId": "144186752", "name": "P. Rabinowitz", "url": null}, {"authorId": "1795780", "name": "F. Brooks", "url": null}, {"authorId": "1697133", "name": "K. Iverson", "url": null}], "doi": "10.2307/3010781", "intent": [], "isInfluential": false, "paperId": "b6b67da0827e0855a29e057ce03466d4b995d7d4", "title": "Automatic Data Processing", "url": "https://www.semanticscholar.org/paper/b6b67da0827e0855a29e057ce03466d4b995d7d4", "venue": "", "year": 1963}, {"arxivId": null, "authors": [{"authorId": "16731091", "name": "W. M. Taliaferro", "url": null}], "doi": "10.1002/spe.4380010307", "intent": [], "isInfluential": false, "paperId": "f1ea38e86b41482289db10e3d36c85a16a297f47", "title": "Modularity the key to system growth potential", "url": "https://www.semanticscholar.org/paper/f1ea38e86b41482289db10e3d36c85a16a297f47", "venue": "Softw. Pract. Exp.", "year": 1971}], "title": "The Mythical Man-Month", "topics": [{"topic": "The Mythical Man-Month", "topicId": "1179507", "url": "https://www.semanticscholar.org/topic/1179507"}, {"topic": "Software engineering", "topicId": "7832", "url": "https://www.semanticscholar.org/topic/7832"}], "url": "https://www.semanticscholar.org/paper/617e2d3a42c23a758daf8dd51ab82f89d171ef54", "venue": "", "year": 1975, "obtained_utc": "2021-04-05T18:24:24.270686"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/65bb83535fe4e21c44d96b7b528c11a7667b3e13.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This paper will analyze the main costs that third-party logistics companies are facing and develops an activity-based costing methodology useful for this kind of company. It will examine the most important activities carried out by third-party distributors in both warehousing and transporting activities. However, the focus is mainly on the activity of distributing the product to the final receiver when this final receiver is not the customer of the third-party logistics company.", "arxivId": null, "authors": [{"authorId": "1405647841", "name": "Carles Gr\u00edful-Miquela", "url": "https://www.semanticscholar.org/author/1405647841"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "123626509", "name": "Sirirat Somapa", "url": null}, {"authorId": "116429896", "name": "M. Cools", "url": null}, {"authorId": "1810500", "name": "W. Dullaert", "url": null}], "doi": "10.1080/13675567.2012.742043", "intent": ["background"], "isInfluential": false, "paperId": "8c714cf82951666c9ddbaa0ea0cc970f1f88a600", "title": "Unlocking the potential of time-driven activity-based costing for small logistics companies", "url": "https://www.semanticscholar.org/paper/8c714cf82951666c9ddbaa0ea0cc970f1f88a600", "venue": "", "year": 2012}, {"arxivId": null, "authors": [{"authorId": "12656971", "name": "Michael Edstrom", "url": null}, {"authorId": "1491028820", "name": "Nikolai Kolderup-Finstad", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "bb525190cc444231a08095230cfc0a615914944c", "title": "Supply Chain Mapping of Dangerous Goods: Volvo Cars customer Service", "url": "https://www.semanticscholar.org/paper/bb525190cc444231a08095230cfc0a615914944c", "venue": "", "year": 2008}], "corpusId": 153806437, "doi": "10.1007/BF02296598", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": true, "paperId": "65bb83535fe4e21c44d96b7b528c11a7667b3e13", "references": [{"arxivId": null, "authors": [{"authorId": "7327837", "name": "R. Kaplan", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "5d54339c04fb40d33ba1ec01183e2277e5ded9c3", "title": "One Cost System Isn't Enough", "url": "https://www.semanticscholar.org/paper/5d54339c04fb40d33ba1ec01183e2277e5ded9c3", "venue": "", "year": 1988}, {"arxivId": null, "authors": [{"authorId": "46887822", "name": "R. Cooper", "url": null}, {"authorId": "7327837", "name": "R. Kaplan", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "2913302901e545c22fd66d63227170095e777177", "title": "Measure Costs Right: Make the Right Decisions", "url": "https://www.semanticscholar.org/paper/2913302901e545c22fd66d63227170095e777177", "venue": "", "year": 1988}], "title": "Activity-based costing methodology for third-party logistics companies", "topics": [], "url": "https://www.semanticscholar.org/paper/65bb83535fe4e21c44d96b7b528c11a7667b3e13", "venue": "", "year": 2001, "obtained_utc": "2021-04-05T18:24:28.379560"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/66ce69d9c4e027033bc40d3bc3b6addbf169f696.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Individuals often turn to the media for information about science and to track developments in their chosen fields of science, including medicine, climate change, biotechnology, and ecosystems resilience. Thus, media are key gateways to belief and doubt in knowledge, including science. Indeed, media houses have noted this trend and indexed it by establishing pages in their print versions, airtime on their electronic platforms, publishing science articles online, and sharing relevant information on social media. In order to achieve the desired visibility, science institutions have reciprocated by adopting and adapting training for scientists in public relations and providing guidelines for their researchers interested in going public or facing the media. Yet, findings from interviews with four scientists and ten science journalists show that there is still friction between journalists and scientists in what should have been a mutual relationship in sharing information about ecosystems risk science, especially in the crop biotechnology debate, with the non-expert society in Uganda. The implication of media playing the dual roles of being watchdogs and supporting scientific developments is that the awareness created through the various platforms greases and sustains the debate on issues of GMOs, in a way similar to the debate on climate change and ecosystems resilience.", "arxivId": null, "authors": [{"authorId": "121079074", "name": "I. Lukanda", "url": "https://www.semanticscholar.org/author/121079074"}], "citationVelocity": 0, "citations": [], "corpusId": 181399702, "doi": "10.1007/978-3-030-12974-3_28", "fieldsOfStudy": ["Political Science"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "66ce69d9c4e027033bc40d3bc3b6addbf169f696", "references": [{"arxivId": null, "authors": [{"authorId": "66838155", "name": "Soutrik Basu", "url": null}, {"authorId": "2623702", "name": "C. Leeuwis", "url": null}], "doi": "10.1016/J.AGSY.2012.04.005", "intent": [], "isInfluential": false, "paperId": "5b357987a3ccdafe9d0102c7d9ccbd286764e185", "title": "Understanding the rapid spread of System of Rice Intensification (SRI) in Andhra Pradesh: Exploring the building of support networks and media representation", "url": "https://www.semanticscholar.org/paper/5b357987a3ccdafe9d0102c7d9ccbd286764e185", "venue": "", "year": 2012}, {"arxivId": null, "authors": [{"authorId": "152473790", "name": "Janis Geary", "url": null}, {"authorId": "15743079", "name": "Emma Camicioli", "url": null}, {"authorId": "4363805", "name": "T. Bubela", "url": null}], "doi": "10.1139/gen-2015-0210", "intent": [], "isInfluential": false, "paperId": "7c0b9e41dfc1c55862477bbbe39cefe636dbd06e", "title": "DNA barcoding in the media: does coverage of cool science reflect its social context?", "url": "https://www.semanticscholar.org/paper/7c0b9e41dfc1c55862477bbbe39cefe636dbd06e", "venue": "Genome", "year": 2016}], "title": "Implications of Media-Scientists\u2019 Relationship on Crop Biotechnology Debate in Uganda", "topics": [], "url": "https://www.semanticscholar.org/paper/66ce69d9c4e027033bc40d3bc3b6addbf169f696", "venue": "", "year": 2019, "obtained_utc": "2021-04-05T18:24:26.859384"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/715499e2500a9758542c4ff177d516faf8b6130f.json: -------------------------------------------------------------------------------- 1 | {"abstract": "\u25cf The teaching chapters are reinforced with hands-on workshops. \u25cf Discuss issues with an instructor who has real-world experience. \u25cf Learn industry-proven requirements techniques. \u25cf In the final session, through discussions, interaction and demonstrations, you ensure that you have the requirements process that is suitable for your organization. \u25cf Receive the Volere Requirements Specification Template with advice on how to make this your own template. \u25cf Receive a copy of Suzanne and James Robertson's book Mastering the Requirements Process Second Edition. Special Features", "arxivId": null, "authors": [{"authorId": "47593050", "name": "S. Robertson", "url": "https://www.semanticscholar.org/author/47593050"}, {"authorId": "153630509", "name": "James P. Robertson", "url": "https://www.semanticscholar.org/author/153630509"}], "citationVelocity": 15, "citations": [{"arxivId": null, "authors": [{"authorId": "1404555952", "name": "Oscar Mendez-Bonilla", "url": null}, {"authorId": "1689870", "name": "Xavier Franch", "url": null}, {"authorId": "1784811", "name": "C. Quer", "url": null}], "doi": "10.1109/ICCBSS.2008.34", "intent": ["background"], "isInfluential": false, "paperId": "e2eedfd4b87f0bd1614f6c77a87f40f85f84aa3b", "title": "Requirements Patterns for COTS Systems", "url": "https://www.semanticscholar.org/paper/e2eedfd4b87f0bd1614f6c77a87f40f85f84aa3b", "venue": "Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008)", "year": 2008}, {"arxivId": null, "authors": [{"authorId": "101032784", "name": "Sara Nilsson", "url": null}], "doi": "10.3384/LIC.DIVA-143011", "intent": [], "isInfluential": false, "paperId": "7d17df90b539124648e048c69c521efdf391689e", "title": "How requirements development could support design of effective and resource-efficient offerings", "url": "https://www.semanticscholar.org/paper/7d17df90b539124648e048c69c521efdf391689e", "venue": "", "year": 2017}], "corpusId": 60766754, "doi": null, "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 62, "is_open_access": false, "is_publisher_licensed": false, "paperId": "715499e2500a9758542c4ff177d516faf8b6130f", "references": [], "title": "Mastering the Requirements Process", "topics": [{"topic": "Requirement", "topicId": "136", "url": "https://www.semanticscholar.org/topic/136"}, {"topic": "Bus mastering", "topicId": "729560", "url": "https://www.semanticscholar.org/topic/729560"}, {"topic": "Hands-on computing", "topicId": "3669416", "url": "https://www.semanticscholar.org/topic/3669416"}, {"topic": "Software requirements specification", "topicId": "406219", "url": "https://www.semanticscholar.org/topic/406219"}, {"topic": "Blender (software)", "topicId": "325966", "url": "https://www.semanticscholar.org/topic/325966"}], "url": "https://www.semanticscholar.org/paper/715499e2500a9758542c4ff177d516faf8b6130f", "venue": "", "year": 1999, "obtained_utc": "2021-04-05T18:24:39.342439"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/72427c67bbb1f3494398762281b168647fc48dff.json: -------------------------------------------------------------------------------- 1 | {"abstract": null, "arxivId": null, "authors": [{"authorId": "4705265", "name": "L. Simmons", "url": "https://www.semanticscholar.org/author/4705265"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "2042707", "name": "Laura Soito", "url": null}, {"authorId": "34663143", "name": "Lorraine J. Hwang", "url": null}], "doi": "10.2218/IJDC.V11I2.390", "intent": [], "isInfluential": false, "paperId": "0e62edcd98d783e95123efc33448682f9faf25e7", "title": "Citations for Software: Providing Identification, Access and Recognition for Research Software", "url": "https://www.semanticscholar.org/paper/0e62edcd98d783e95123efc33448682f9faf25e7", "venue": "Int. J. Digit. Curation", "year": 2016}, {"arxivId": null, "authors": [{"authorId": "50119741", "name": "Shinichi Nakagawa", "url": null}, {"authorId": "5608313", "name": "M. Lagisz", "url": null}], "doi": "10.1093/BEHECO/ARY137", "intent": [], "isInfluential": false, "paperId": "b5642c445a9349312d526d1e3d69d7ed19cc83b8", "title": "How good does our map of knowledge have to be?: a comment on Berger-Tal et al.", "url": "https://www.semanticscholar.org/paper/b5642c445a9349312d526d1e3d69d7ed19cc83b8", "venue": "", "year": 2019}], "corpusId": 89671674, "doi": "10.1093/BEHECO/ARX019", "fieldsOfStudy": ["Biology"], "influentialCitationCount": 0, "is_open_access": true, "is_publisher_licensed": false, "paperId": "72427c67bbb1f3494398762281b168647fc48dff", "references": [{"arxivId": null, "authors": [{"authorId": "4705265", "name": "L. Simmons", "url": null}], "doi": "10.1093/BEHECO/ARW001", "intent": [], "isInfluential": false, "paperId": "63af9425986e20804372f5fe4d37aa0e95d9b8f8", "title": "Mandatory data archiving in Behavioral Ecology", "url": "https://www.semanticscholar.org/paper/63af9425986e20804372f5fe4d37aa0e95d9b8f8", "venue": "", "year": 2016}, {"arxivId": null, "authors": [{"authorId": "38840521", "name": "B. Adriaenssens", "url": null}, {"authorId": "40458752", "name": "J. Johnsson", "url": null}], "doi": "10.1093/BEHECO/ARW111", "intent": [], "isInfluential": false, "paperId": "ab8aa3e2c9e7bc671dd47be0e1239c05f0e8e870", "title": "Corrigendum to: \u2018Shy trout grow faster: do personality traits predict fitness of brown trout in the wild?\u2019 by Bart Adriaenssens and J\u00f6rgen I. Johnsson. 22:135\u2013143", "url": "https://www.semanticscholar.org/paper/ab8aa3e2c9e7bc671dd47be0e1239c05f0e8e870", "venue": "", "year": 2016}], "title": "Guidelines for Transparency and Openness (TOP)", "topics": [], "url": "https://www.semanticscholar.org/paper/72427c67bbb1f3494398762281b168647fc48dff", "venue": "", "year": 2017, "obtained_utc": "2021-04-05T18:24:31.664661"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/77fbf771c11606ba9ddc150416f633b26c5a8a6f.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This paper presents a methodology for developing the requirements for general purpose scientific computing software. The first step in the methodology is to determine the general purpose scientific software of interest. The second step consists of a commonality analysis on this identified family of general purpose tools to document the terminology, commonalities and variabilities. The commonality analysis is then refined in the third step into a family of specific requirements documents. Besides fixing the variabilities and their binding times, each specific requirements document also shows the relative importance of the different nonfunctional requirements, for instance using the analytic hierarchy process (AHP). The new methodology addresses the challenge of writing validatable requirements by including solution validation strategies as part of the requirements documentation. To illustrate the methodology an example is shown of a solver for a linear system of equations", "arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": "https://www.semanticscholar.org/author/33903435"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "1733350", "name": "W. Yu", "url": null}, {"authorId": "33903435", "name": "S. Smith", "url": null}], "doi": "10.1109/SECSE.2009.5069161", "intent": ["background"], "isInfluential": false, "paperId": "197d61135f4e01233eb1a7f79ea46ba586ff9320", "title": "Reusability of FEA software: A program family approach", "url": "https://www.semanticscholar.org/paper/197d61135f4e01233eb1a7f79ea46ba586ff9320", "venue": "2009 ICSE Workshop on Software Engineering for Computational Science and Engineering", "year": 2009}, {"arxivId": null, "authors": [{"authorId": null, "name": "Yang Li", "url": null}, {"authorId": "2506674", "name": "M. Harutunian", "url": null}, {"authorId": "32886826", "name": "Nitesh Narayan", "url": null}, {"authorId": "1692839", "name": "B. Br\u00fcgge", "url": null}, {"authorId": "1928629", "name": "G. Buse", "url": null}], "doi": "10.1109/eScienceW.2011.30", "intent": ["background"], "isInfluential": false, "paperId": "8d1fe764ab11cce003c72a509da19ca4099646a1", "title": "Requirements Engineering for Scientific Computing: A Model-Based Approach", "url": "https://www.semanticscholar.org/paper/8d1fe764ab11cce003c72a509da19ca4099646a1", "venue": "2011 IEEE Seventh International Conference on e-Science Workshops", "year": 2011}], "corpusId": 22700206, "doi": "10.1109/RE.2006.61", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": true, "paperId": "77fbf771c11606ba9ddc150416f633b26c5a8a6f", "references": [{"arxivId": null, "authors": [{"authorId": "114541464", "name": "S. Smith", "url": null}, {"authorId": "46385569", "name": "Lei Lai", "url": null}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": null}], "doi": null, "intent": ["background", "methodology"], "isInfluential": false, "paperId": "cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "title": "Requirements Analysis for Engineering Computation", "url": "https://www.semanticscholar.org/paper/cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "venue": "", "year": 2004}, {"arxivId": null, "authors": [{"authorId": "145289036", "name": "J. H. Wilkinson", "url": null}], "doi": "10.1137/1013095", "intent": ["background"], "isInfluential": false, "paperId": "b178c3a48bb989ce48b82c8e522eb143184f9295", "title": "Modern Error Analysis", "url": "https://www.semanticscholar.org/paper/b178c3a48bb989ce48b82c8e522eb143184f9295", "venue": "", "year": 1971}], "title": "Systematic Development of Requirements Documentation for General Purpose Scientific Computing Software", "topics": [{"topic": "Documentation", "topicId": "132", "url": "https://www.semanticscholar.org/topic/132"}, {"topic": "Computational science", "topicId": "25999", "url": "https://www.semanticscholar.org/topic/25999"}, {"topic": "Non-functional requirement", "topicId": "27937", "url": "https://www.semanticscholar.org/topic/27937"}, {"topic": "Solver", "topicId": "6215", "url": "https://www.semanticscholar.org/topic/6215"}, {"topic": "Linear system", "topicId": "5428", "url": "https://www.semanticscholar.org/topic/5428"}, {"topic": "System of linear equations", "topicId": "65563", "url": "https://www.semanticscholar.org/topic/65563"}, {"topic": "Analytical hierarchy", "topicId": "144747", "url": "https://www.semanticscholar.org/topic/144747"}], "url": "https://www.semanticscholar.org/paper/77fbf771c11606ba9ddc150416f633b26c5a8a6f", "venue": "14th IEEE International Requirements Engineering Conference (RE'06)", "year": 2006, "obtained_utc": "2021-04-05T18:24:37.651595"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/84cfa9eba63c1b9913177d337ba3b9d867055ed6.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Concerns about the credibility of social science have increased calls for more transparency, but many academic incentives undermine individual efforts. Institutional changes are needed to substantially transform conventional practices. The authors present a series of specific actions that can be taken by different actors in social science knowledge production: journals, reviewers, professional organizations, teachers, universities and departments, funding sources, and data providers.", "arxivId": null, "authors": [{"authorId": "2364509", "name": "J. Freese", "url": "https://www.semanticscholar.org/author/2364509"}, {"authorId": "20856436", "name": "M. M. King", "url": "https://www.semanticscholar.org/author/20856436"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "14212316", "name": "D. Liu", "url": null}, {"authorId": "1925509", "name": "Matthew J. Salganik", "url": null}], "doi": "10.1177/2378023119849803", "intent": [], "isInfluential": false, "paperId": "ee0e7c36c6fc283c33d9e953102e3ba38a846666", "title": "Successes and Struggles with Computational Reproducibility: Lessons from the Fragile Families Challenge", "url": "https://www.semanticscholar.org/paper/ee0e7c36c6fc283c33d9e953102e3ba38a846666", "venue": "", "year": 2019}], "corpusId": 220320623, "doi": "10.1177/2378023117739216", "fieldsOfStudy": null, "influentialCitationCount": 0, "is_open_access": true, "is_publisher_licensed": true, "paperId": "84cfa9eba63c1b9913177d337ba3b9d867055ed6", "references": [{"arxivId": null, "authors": [{"authorId": "47975256", "name": "A. Lupia", "url": null}, {"authorId": "11448500", "name": "Colin Elman", "url": null}], "doi": "10.1017/S1049096513001716", "intent": ["background"], "isInfluential": false, "paperId": "5952a9f10ef65983042794369d376e23d2682d7e", "title": "Openness in political science: Data access and research transparency", "url": "https://www.semanticscholar.org/paper/5952a9f10ef65983042794369d376e23d2682d7e", "venue": "", "year": 2014}, {"arxivId": null, "authors": [{"authorId": "2862527", "name": "Brian A. Nosek", "url": null}, {"authorId": "81373161", "name": "G. Alter", "url": null}, {"authorId": "8611013", "name": "G. Banks", "url": null}, {"authorId": "3237553", "name": "D. Borsboom", "url": null}, {"authorId": "50036083", "name": "S. D. Bowman", "url": null}, {"authorId": "47219267", "name": "S. J. Breckler", "url": null}, {"authorId": "39229081", "name": "S. Buck", "url": null}, {"authorId": "34718779", "name": "C. Chambers", "url": null}, {"authorId": "40275714", "name": "G. Chin", "url": null}, {"authorId": "118995228", "name": "G. Christensen", "url": null}, {"authorId": "50230722", "name": "M. Contestabile", "url": null}, {"authorId": "3198576", "name": "A. Dafoe", "url": null}, {"authorId": "49941998", "name": "E. Eich", "url": null}, {"authorId": "73775636", "name": "J. Freese", "url": null}, {"authorId": "4249203", "name": "R. Glennerster", "url": null}, {"authorId": "65882306", "name": "D. Goroff", "url": null}, {"authorId": "48997800", "name": "D. P. Green", "url": null}, {"authorId": "47497965", "name": "B. Hesse", "url": null}, {"authorId": "65750144", "name": "M. Humphreys", "url": null}, {"authorId": "46636130", "name": "J. Ishiyama", "url": null}, {"authorId": "146506075", "name": "D. Karlan", "url": null}, {"authorId": "118427399", "name": "A. Kraut", "url": null}, {"authorId": "47975256", "name": "A. Lupia", "url": null}, {"authorId": "3154113", "name": "P. Mabry", "url": null}, {"authorId": "4133783", "name": "T. Madon", "url": null}, {"authorId": "120057051", "name": "N. Malhotra", "url": null}, {"authorId": "1390039913", "name": "E. Mayo-Wilson", "url": null}, {"authorId": "144643621", "name": "M. McNutt", "url": null}, {"authorId": "152725651", "name": "E. Miguel", "url": null}, {"authorId": "4659343", "name": "E. L. Paluck", "url": null}, {"authorId": "2130902", "name": "U. Simonsohn", "url": null}, {"authorId": "47672689", "name": "C. Soderberg", "url": null}, {"authorId": "2814486", "name": "B. A. Spellman", "url": null}, {"authorId": "1398590331", "name": "J. Turitto", "url": null}, {"authorId": "7009769", "name": "G. Vandenbos", "url": null}, {"authorId": "46953690", "name": "S. Vazire", "url": null}, {"authorId": "46239177", "name": "E. J. Wagenmakers", "url": null}, {"authorId": "153160363", "name": "R. Wilson", "url": null}, {"authorId": "46324556", "name": "T. Yarkoni", "url": null}], "doi": "10.1126/science.aab2374", "intent": ["background"], "isInfluential": true, "paperId": "927a32a1b1c69a6041a586b71f52be1b957e5030", "title": "Promoting an open research culture", "url": "https://www.semanticscholar.org/paper/927a32a1b1c69a6041a586b71f52be1b957e5030", "venue": "Science", "year": 2015}], "title": "Institutionalizing Transparency", "topics": [], "url": "https://www.semanticscholar.org/paper/84cfa9eba63c1b9913177d337ba3b9d867055ed6", "venue": "", "year": 2018, "obtained_utc": "2021-04-05T18:24:21.642989"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/8d532eaa1cea70b1c968bcf6b3ffb5208a50317f.json: -------------------------------------------------------------------------------- 1 | {"abstract": null, "arxivId": null, "authors": [{"authorId": "143684580", "name": "R. C. Green", "url": "https://www.semanticscholar.org/author/143684580"}], "citationVelocity": 55, "citations": [{"arxivId": null, "authors": [{"authorId": "80247065", "name": "K. Z. Bisholo", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "50c155f16f077405134531016ae1aa78bd440b0b", "title": "An epidemiological investigation of food-borne disease surveillance in the Ncera Villages, Eastern Cape, South Africa", "url": "https://www.semanticscholar.org/paper/50c155f16f077405134531016ae1aa78bd440b0b", "venue": "", "year": 2018}, {"arxivId": null, "authors": [{"authorId": "1403722823", "name": "J. L. Gregory-Flock", "url": null}, {"authorId": "4774377", "name": "E. Yerxa", "url": null}], "doi": "10.5014/AJOT.38.3.187", "intent": ["background"], "isInfluential": false, "paperId": "9d8d3c305d052800958e11b9fa47b189360033b7", "title": "Standardization of the prone extension postural test on children ages 4 through 8.", "url": "https://www.semanticscholar.org/paper/9d8d3c305d052800958e11b9fa47b189360033b7", "venue": "The American journal of occupational therapy : official publication of the American Occupational Therapy Association", "year": 1984}], "corpusId": 693122, "doi": null, "fieldsOfStudy": ["Medicine"], "influentialCitationCount": 64, "is_open_access": false, "is_publisher_licensed": false, "paperId": "8d532eaa1cea70b1c968bcf6b3ffb5208a50317f", "references": [], "title": "The research process.", "topics": [], "url": "https://www.semanticscholar.org/paper/8d532eaa1cea70b1c968bcf6b3ffb5208a50317f", "venue": "The Australasian nurses journal", "year": 1978, "obtained_utc": "2021-04-05T18:24:29.654426"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/8d8844106e7bc83d49ea3544ab2dfc74cd8f258a.json: -------------------------------------------------------------------------------- 1 | {"abstract": "We describe two pilot studies of code review by and for scientists. Our principal findings are that scientists are enthusiastic, but need to be shown code review in action, and that just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews.", "arxivId": "1407.5648", "authors": [{"authorId": "1683003", "name": "M. Petre", "url": "https://www.semanticscholar.org/author/1683003"}, {"authorId": "145801932", "name": "G. Wilson", "url": "https://www.semanticscholar.org/author/145801932"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "2434453", "name": "D. Huppmann", "url": null}, {"authorId": "1962165", "name": "Matthew J. Gidden", "url": null}, {"authorId": "65739005", "name": "P. Kolp", "url": null}, {"authorId": "66982434", "name": "C. Orthofer", "url": null}, {"authorId": "65929735", "name": "M. Pimmer", "url": null}, {"authorId": "41076722", "name": "Adriano Vinca", "url": null}, {"authorId": "67131327", "name": "Alessio Mastrucci", "url": null}, {"authorId": "3491432", "name": "K. Riahi", "url": null}, {"authorId": "116308625", "name": "V. Krey", "url": null}], "doi": null, "intent": ["methodology"], "isInfluential": false, "paperId": "39f1d90fbfb19061bad82c33fc27c9ddca83615d", "title": "The MESSAGE ix Integrated Assessment Model and the ix modeling platform ( ixmp ) An open framework for integrated and cross-cutting analysis of energy , climate , the environment , and sustainable development", "url": "https://www.semanticscholar.org/paper/39f1d90fbfb19061bad82c33fc27c9ddca83615d", "venue": "", "year": 2018}, {"arxivId": null, "authors": [{"authorId": "3825723", "name": "A. Shade", "url": null}, {"authorId": "3146120", "name": "Tracy K. Teal", "url": null}], "doi": "10.1371/journal.pbio.1002303", "intent": ["background"], "isInfluential": false, "paperId": "1999102c6b8739498ab5e1ceb6b2c5a519ba2238", "title": "Computing Workflows for Biologists: A Roadmap", "url": "https://www.semanticscholar.org/paper/1999102c6b8739498ab5e1ceb6b2c5a519ba2238", "venue": "PLoS biology", "year": 2015}], "corpusId": 37908553, "doi": null, "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 2, "is_open_access": false, "is_publisher_licensed": true, "paperId": "8d8844106e7bc83d49ea3544ab2dfc74cd8f258a", "references": [{"arxivId": null, "authors": [{"authorId": "114886234", "name": "A. Bryman", "url": null}], "doi": "10.4324/9780203381175_chapter_9", "intent": ["background"], "isInfluential": false, "paperId": "c69290fcd917cf3f13bb2bb7e6d882193cff1b5a", "title": "Social Research Methods", "url": "https://www.semanticscholar.org/paper/c69290fcd917cf3f13bb2bb7e6d882193cff1b5a", "venue": "", "year": 2001}, {"arxivId": null, "authors": [{"authorId": "1769095", "name": "J. Hannay", "url": null}, {"authorId": "3036629", "name": "H. Langtangen", "url": null}, {"authorId": "39337423", "name": "C. MacLeod", "url": null}, {"authorId": "1681323", "name": "Dietmar Pfahl", "url": null}, {"authorId": "39391305", "name": "J. Singer", "url": null}, {"authorId": "145801932", "name": "G. Wilson", "url": null}], "doi": "10.1109/SECSE.2009.5069155", "intent": ["background"], "isInfluential": false, "paperId": "b99f1652926c23ee45fba1ad62d799d04a1740b4", "title": "How do scientists develop and use scientific software?", "url": "https://www.semanticscholar.org/paper/b99f1652926c23ee45fba1ad62d799d04a1740b4", "venue": "2009 ICSE Workshop on Software Engineering for Computational Science and Engineering", "year": 2009}], "title": "Code Review For and By Scientists", "topics": [], "url": "https://www.semanticscholar.org/paper/8d8844106e7bc83d49ea3544ab2dfc74cd8f258a", "venue": "ArXiv", "year": 2014, "obtained_utc": "2021-04-05T18:23:48.991478"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/9975052d908927bbad8170cd6932ba7706feee67.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This paper surveys the literature on, and examples of current implementation of, carbon taxes and carbon emission permits. It sets out the theoretical basis for these instruments, with special reference to the revenue\u2010recycling and tax interaction effects. This theoretical work concludes that instruments which raise revenue which can be recycled so as to reduce pre\u2010existing distortionary taxes are significantly less costly than those which do not. The paper then reviews the sizable literature on the distributional effects of these instruments, especially with regard to industrial competitiveness and regressive effects on low\u2010income groups, evaluating attempts to mitigate these where they are perceived as unacceptable. The paper concludes that such efforts at mitigation, while possible, can substantially reduce the efficiency benefits of the instruments. The projected costs of carbon taxes depend on a wide range of assumptions. This is still a contested area, but the paper concludes that, on a range of plausible assumptions, these costs need not be high. Finally the paper notes that early evaluations of the environmental effectiveness of carbon taxes have been generally positive. This suggests that, if concern about anthropogenic climate change continues to increase, more countries will introduce carbon taxes and emission permits, with the latter increasingly auctioned.", "arxivId": null, "authors": [{"authorId": "50042435", "name": "P. Ekins", "url": "https://www.semanticscholar.org/author/50042435"}, {"authorId": "108665570", "name": "T. Barker", "url": "https://www.semanticscholar.org/author/108665570"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "49417476", "name": "Yongjian Wang", "url": null}, {"authorId": "3437087", "name": "Weida Chen", "url": null}], "doi": "10.1016/J.APR.2016.11.006", "intent": [], "isInfluential": false, "paperId": "d2cfd23b1453eac90fec291929a7e3ead5867f6e", "title": "Effects of emissions constraint on manufacturing/remanufacturing decisions considering capital constraint and financing", "url": "https://www.semanticscholar.org/paper/d2cfd23b1453eac90fec291929a7e3ead5867f6e", "venue": "", "year": 2017}, {"arxivId": null, "authors": [{"authorId": "1756006", "name": "S. Bhansali", "url": null}, {"authorId": "39879634", "name": "Y. Goswami", "url": null}, {"authorId": "50529593", "name": "S. Krishnan", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "56567c25b3e390ac274229346d93a24e9f06021c", "title": "Beyond Photovoltaics: Nanoscale Rectenna for Conversion of Solar and Thermal Energy to Electricity", "url": "https://www.semanticscholar.org/paper/56567c25b3e390ac274229346d93a24e9f06021c", "venue": "", "year": 2010}], "corpusId": 154064270, "doi": "10.1111/1467-6419.00142", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 10, "is_open_access": false, "is_publisher_licensed": false, "paperId": "9975052d908927bbad8170cd6932ba7706feee67", "references": [{"arxivId": null, "authors": [{"authorId": "30764949", "name": "W. Cline", "url": null}], "doi": "10.2307/20045831", "intent": [], "isInfluential": false, "paperId": "2d459ad08fe3afa5cd4d62061ed2f5016d03193d", "title": "Economics of Global Warming, The", "url": "https://www.semanticscholar.org/paper/2d459ad08fe3afa5cd4d62061ed2f5016d03193d", "venue": "", "year": 1992}, {"arxivId": null, "authors": [{"authorId": "100783989", "name": "R. Lucas", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "28c65a5a2f37bd2ec0f9b68b56ca6a3adef577e8", "title": "Economic development, environmental regulation, and the international migration of toxic industrial pollution : 1960-88", "url": "https://www.semanticscholar.org/paper/28c65a5a2f37bd2ec0f9b68b56ca6a3adef577e8", "venue": "", "year": 1992}], "title": "Carbon Taxes and Carbon Emissions Trading", "topics": [], "url": "https://www.semanticscholar.org/paper/9975052d908927bbad8170cd6932ba7706feee67", "venue": "", "year": 2002, "obtained_utc": "2021-04-05T18:24:08.063698"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/a00a1d33d7cde648ca163f253e78a92047a65766.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This article outlines an approach in the design, documentation, and evaluation of computer systems. This allows the use of software in many safety-critical applications because it enables the systematic comparison of the program behavior with the engineering specifications of the computer system. Many of the ideas in this article have been used by the Atomic Energy Control Board of Canada in its safety assessment of the software for the shutdown systems of the Darlington Station. The four main elements of this approach follow: (1) Formal Documentation of Software Requirements: Most of the details of a complex environment can be ignored by system implementers and reviewers if they are given a complete and precise statement of the behavioral requirements for the computer system. We describe five mathematical relations that specify the requirements for the software in a computerized control system. (2) Design and Documentation of the Module Structure: Complexity caused by interactions between separately written components can be reduced by applying Data Abstraction, Abstract Data Types, and Object-Oriented Programming if the interfaces are precisely and completely documented. (3) Program Function Documentation: Software executions are lengthy sequences of state changes described by algorithms. The effects of these executive sequences can be preciselymore\u00a0\u00bb specified documented with tabular presentations of the program functions. Also, large programs can be decomposed and presented at a collection of well-documented smaller programs. (4) Tripod Approach to Assessment: There are three basic approaches to the assessment of complex software products: (i) testing, (ii) systematic inspection, and (iii) certification of people and processes. Assessment of a complex system cannot depend on any one of these alone. The approach used on the Darlington shutdown software, which included systematic inspection as well as planned and statistically designed random testing, is outlined.\u00ab\u00a0less", "arxivId": null, "authors": [{"authorId": "1726629", "name": "D. Parnas", "url": "https://www.semanticscholar.org/author/1726629"}, {"authorId": "48637958", "name": "J. Madey", "url": "https://www.semanticscholar.org/author/48637958"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "3050077", "name": "E. I. Leonard", "url": null}, {"authorId": "3093759", "name": "C. Heitmeyer", "url": null}], "doi": "10.1023/A:1023072104553", "intent": [], "isInfluential": false, "paperId": "0d59f415b0d26307bfae31e4bed5a3aa9751cde4", "title": "Program Synthesis from Formal Requirements Specifications Using APTS", "url": "https://www.semanticscholar.org/paper/0d59f415b0d26307bfae31e4bed5a3aa9751cde4", "venue": "High. Order Symb. Comput.", "year": 2003}, {"arxivId": null, "authors": [{"authorId": "153690237", "name": "Yaguang Yang", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "171024333b12ff42e3768aedac5a54736ef0915e", "title": "A Probabilistic Assessment Method for Software Reliability in the Application of Safety Standards", "url": "https://www.semanticscholar.org/paper/171024333b12ff42e3768aedac5a54736ef0915e", "venue": "", "year": 2017}], "corpusId": 106666368, "doi": null, "fieldsOfStudy": ["Engineering"], "influentialCitationCount": 2, "is_open_access": false, "is_publisher_licensed": false, "paperId": "a00a1d33d7cde648ca163f253e78a92047a65766", "references": [], "title": "Assessment of safety-critical software in nuclear power plants", "topics": [{"topic": "Laser Therapy, Low-Level", "topicId": "196466", "url": "https://www.semanticscholar.org/topic/196466"}, {"topic": "Nuclear Power Plants", "topicId": "25645", "url": "https://www.semanticscholar.org/topic/25645"}], "url": "https://www.semanticscholar.org/paper/a00a1d33d7cde648ca163f253e78a92047a65766", "venue": "", "year": 1991, "obtained_utc": "2021-04-05T18:24:40.291070"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/a3033151e18e9ed87abe9600048f2ab46c35d186.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Forward-looking papers from around the globe, addressing themes of current educational practice, were published in the FEMS Microbiology Letters virtual Thematic Issue 'Learning for the future' in October 2019. Its dynamic content is reviewed here to facilitate discussions within the professional community. The focus is on preparing generations of 21st century professionals as lifelong learners for yet unknown working environments and demands. Active and authentic learning is covered in various contexts from interactive lectures, via innovative tasks exploring the scientific method to conducting research over a distance. Naturally, authentic assessment features. Moreover, authentic learning is taken out of the classroom into the community as service learning for students to develop skills and see unexpected STEM career opportunities. Approaches to public engagement with science are presented including through art. Art is also brought into the classroom, as well as educational games, to foster creativity. Additionally, sharing science with large audiences on social media is discussed. Future-proofing education requires being innovative and imaginative. This comes with challenges and risks, but being prepared is worth it.", "arxivId": null, "authors": [{"authorId": "7970821", "name": "B. Fahnert", "url": "https://www.semanticscholar.org/author/7970821"}], "citationVelocity": 0, "citations": [], "corpusId": 202761121, "doi": "10.1093/femsle/fnz200", "fieldsOfStudy": ["Medicine"], "influentialCitationCount": 0, "is_open_access": true, "is_publisher_licensed": false, "paperId": "a3033151e18e9ed87abe9600048f2ab46c35d186", "references": [{"arxivId": null, "authors": [{"authorId": "71660721", "name": "Jon James", "url": null}], "doi": "10.1093/femsle/fnx076", "intent": [], "isInfluential": false, "paperId": "ae4fc780a2ae63b44bb2e8023520811796a7b4c8", "title": "The PERFORM project: using performing arts to increase engagement and understanding of science.", "url": "https://www.semanticscholar.org/paper/ae4fc780a2ae63b44bb2e8023520811796a7b4c8", "venue": "FEMS microbiology letters", "year": 2017}, {"arxivId": null, "authors": [{"authorId": "49440975", "name": "Matteo Farinella", "url": null}], "doi": "10.22323/2.17010401", "intent": [], "isInfluential": false, "paperId": "70e359bcb6da3eeb1d3446127cedf0ef454017d1", "title": "The potential of comics in science communication", "url": "https://www.semanticscholar.org/paper/70e359bcb6da3eeb1d3446127cedf0ef454017d1", "venue": "", "year": 2018}], "title": "Be prepared - Learning for the future.", "topics": [{"topic": "Scientific Publication", "topicId": "347", "url": "https://www.semanticscholar.org/topic/347"}, {"topic": "Paper", "topicId": "1067", "url": "https://www.semanticscholar.org/topic/1067"}, {"topic": "Social Media", "topicId": "6018", "url": "https://www.semanticscholar.org/topic/6018"}, {"topic": "Lectures", "topicId": "18371", "url": "https://www.semanticscholar.org/topic/18371"}, {"topic": "Behavior", "topicId": "3332", "url": "https://www.semanticscholar.org/topic/3332"}, {"topic": "Adult Foster Care", "topicId": "1079533", "url": "https://www.semanticscholar.org/topic/1079533"}, {"topic": "Preparation", "topicId": "60473", "url": "https://www.semanticscholar.org/topic/60473"}], "url": "https://www.semanticscholar.org/paper/a3033151e18e9ed87abe9600048f2ab46c35d186", "venue": "FEMS microbiology letters", "year": 2019, "obtained_utc": "2021-04-05T18:24:14.493625"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/aa37a174abd5b95bdf815c15436bbf33fd843859.json: -------------------------------------------------------------------------------- 1 | {"abstract": "In recent years a growing concern that the increasing accumulation of greenhouse gases will lead to undesirable changes in global climate has resulted in a number of proposals, both in the United States and internationally, to set physical targets for reducing greenhouse gas emissions. But what will these proposals cost? Based on the authors' earlier ground-breaking work, Buying Greenhouse Insurance outlines a way to think about greenhouse-effect decisions under uncertainty. It describes an insightful model for determining the economic costs of limiting carbon dioxide emissions produced by burning fossil fuels and provides a solid analytical base for rethinking public policy on the farreaching issue of global warming. Manne and Richels present region-by-region estimates of the costs that would underlie an international agreement. Using a computer model known as Global 2100, they analyze the economic impacts of limiting C02 emissions under alternative supply and conservation scenarios. The results clearly indicate that a reduction in emissions is not the sole policy response to potential climate change. Following a summary of the greenhouse effect, its likely causes, and possible consequences, Manne and Richels take up issues that concern the public at large. They provide an overview of Global 2100, look at how the U.S. energy sector is likely to evolve under business-as-usual conditions and under carbon constraints, and describe the concept of \"greenhouse insurance.\" They consider possible global agreements, including an estimate of benefits that might result from trading in an international market in emission rights. They conclude with a technical description directed toward modeling specialists.", "arxivId": null, "authors": [{"authorId": "108137899", "name": "A. S. Manne", "url": "https://www.semanticscholar.org/author/108137899"}, {"authorId": "3395548", "name": "R. Richels", "url": "https://www.semanticscholar.org/author/3395548"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "50042435", "name": "P. Ekins", "url": null}, {"authorId": "108665570", "name": "T. Barker", "url": null}], "doi": "10.1111/1467-6419.00142", "intent": [], "isInfluential": false, "paperId": "9975052d908927bbad8170cd6932ba7706feee67", "title": "Carbon Taxes and Carbon Emissions Trading", "url": "https://www.semanticscholar.org/paper/9975052d908927bbad8170cd6932ba7706feee67", "venue": "", "year": 2002}, {"arxivId": null, "authors": [{"authorId": "30522347", "name": "Heinz Welsch", "url": null}], "doi": "10.1016/0301-4215(93)90145-6", "intent": [], "isInfluential": false, "paperId": "c4dcbf01d64e1adf31276591f66eac8aeccc743e", "title": "A CO2 agreement proposal with flexible quotas", "url": "https://www.semanticscholar.org/paper/c4dcbf01d64e1adf31276591f66eac8aeccc743e", "venue": "", "year": 1993}], "corpusId": 152554443, "doi": "10.2307/2584220", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 10, "is_open_access": true, "is_publisher_licensed": false, "paperId": "aa37a174abd5b95bdf815c15436bbf33fd843859", "references": [], "title": "Buying Greenhouse Insurance: The Economic Costs of CO2 Emission Limits", "topics": [], "url": "https://www.semanticscholar.org/paper/aa37a174abd5b95bdf815c15436bbf33fd843859", "venue": "", "year": 1992, "obtained_utc": "2021-04-05T18:23:58.725013"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/b99f1652926c23ee45fba1ad62d799d04a1740b4.json: -------------------------------------------------------------------------------- 1 | {"abstract": "New knowledge in science and engineering relies increasingly on results produced by scientific software. Therefore, knowing how scientists develop and use software in their research is critical to assessing the necessity for improving current development practices and to making decisions about the future allocation of resources. To that end, this paper presents the results of a survey conducted online in October-December 2008 which received almost 2000 responses. Our main conclusions are that (1) the knowledge required to develop and use scientific software is primarily acquired from peers and through self-study, rather than from formal education and training; (2) the number of scientists using supercomputers is small compared to the number using desktop or intermediate computers; (3) most scientists rely primarily on software with a large user base; (4) while many scientists believe that software testing is important, a smaller number believe they have sufficient understanding about testing concepts; and (5) that there is a tendency for scientists to rank standard software engineering concepts higher if they work in large software development projects and teams, but that there is no uniform trend of association between rank of importance of software engineering concepts and project/team size.", "arxivId": null, "authors": [{"authorId": "1769095", "name": "J. Hannay", "url": "https://www.semanticscholar.org/author/1769095"}, {"authorId": "3036629", "name": "H. Langtangen", "url": "https://www.semanticscholar.org/author/3036629"}], "citationVelocity": 19, "citations": [{"arxivId": null, "authors": [{"authorId": "2042707", "name": "Laura Soito", "url": null}, {"authorId": "34663143", "name": "Lorraine J. Hwang", "url": null}], "doi": "10.2218/IJDC.V11I2.390", "intent": ["background"], "isInfluential": false, "paperId": "0e62edcd98d783e95123efc33448682f9faf25e7", "title": "Citations for Software: Providing Identification, Access and Recognition for Research Software", "url": "https://www.semanticscholar.org/paper/0e62edcd98d783e95123efc33448682f9faf25e7", "venue": "Int. J. Digit. Curation", "year": 2016}, {"arxivId": null, "authors": [{"authorId": "1399686787", "name": "E. Hern\u00e1ndez-Lemus", "url": null}, {"authorId": "1399686761", "name": "Jes\u00fas Espinal-Enr\u00edquez", "url": null}, {"authorId": "1401904192", "name": "R. Garc\u00eda-Herrera", "url": null}], "doi": "10.1016/B978-0-12-809411-2.00014-3", "intent": [], "isInfluential": false, "paperId": "01462647e8684744c0bbfba6f3a107990880361a", "title": "Handling Big Data in Precision Medicine", "url": "https://www.semanticscholar.org/paper/01462647e8684744c0bbfba6f3a107990880361a", "venue": "", "year": 2017}], "corpusId": 1571389, "doi": "10.1109/SECSE.2009.5069155", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 9, "is_open_access": false, "is_publisher_licensed": true, "paperId": "b99f1652926c23ee45fba1ad62d799d04a1740b4", "references": [{"arxivId": null, "authors": [{"authorId": "114541464", "name": "Spencer Douglas Smith", "url": null}, {"authorId": "46385569", "name": "Lei Lai", "url": null}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "title": "Requirements Analysis for Engineering Computation", "url": "https://www.semanticscholar.org/paper/cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "venue": "", "year": 2004}, {"arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}, {"authorId": "7885292", "name": "Lei Lai", "url": null}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": null}], "doi": "10.1007/s11155-006-9020-7", "intent": [], "isInfluential": false, "paperId": "e0e7e01a6195e7252921116601a2e7613749a3a9", "title": "Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability", "url": "https://www.semanticscholar.org/paper/e0e7e01a6195e7252921116601a2e7613749a3a9", "venue": "Reliab. Comput.", "year": 2007}], "title": "How do scientists develop and use scientific software?", "topics": [{"topic": "Software engineering", "topicId": "7832", "url": "https://www.semanticscholar.org/topic/7832"}, {"topic": "Supercomputer", "topicId": "9282", "url": "https://www.semanticscholar.org/topic/9282"}, {"topic": "Software testing", "topicId": "25182", "url": "https://www.semanticscholar.org/topic/25182"}, {"topic": "Software development", "topicId": "78", "url": "https://www.semanticscholar.org/topic/78"}, {"topic": "Desktop computer", "topicId": "461", "url": "https://www.semanticscholar.org/topic/461"}], "url": "https://www.semanticscholar.org/paper/b99f1652926c23ee45fba1ad62d799d04a1740b4", "venue": "2009 ICSE Workshop on Software Engineering for Computational Science and Engineering", "year": 2009, "obtained_utc": "2021-04-05T18:23:57.114500"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/bb525190cc444231a08095230cfc0a615914944c.json: -------------------------------------------------------------------------------- 1 | {"abstract": null, "arxivId": null, "authors": [{"authorId": "12656971", "name": "Michael Edstrom", "url": "https://www.semanticscholar.org/author/12656971"}, {"authorId": "1491028820", "name": "Nikolai Kolderup-Finstad", "url": "https://www.semanticscholar.org/author/1491028820"}], "citationVelocity": 0, "citations": [], "corpusId": 166755392, "doi": null, "fieldsOfStudy": ["Business"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "bb525190cc444231a08095230cfc0a615914944c", "references": [{"arxivId": null, "authors": [{"authorId": "1405647841", "name": "Carles Gr\u00edful-Miquela", "url": null}], "doi": "10.1007/BF02296598", "intent": [], "isInfluential": false, "paperId": "65bb83535fe4e21c44d96b7b528c11a7667b3e13", "title": "Activity-based costing methodology for third-party logistics companies", "url": "https://www.semanticscholar.org/paper/65bb83535fe4e21c44d96b7b528c11a7667b3e13", "venue": "", "year": 2001}, {"arxivId": null, "authors": [{"authorId": "143684580", "name": "R. C. Green", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "8d532eaa1cea70b1c968bcf6b3ffb5208a50317f", "title": "The research process.", "url": "https://www.semanticscholar.org/paper/8d532eaa1cea70b1c968bcf6b3ffb5208a50317f", "venue": "The Australasian nurses journal", "year": 1978}], "title": "Supply Chain Mapping of Dangerous Goods: Volvo Cars customer Service", "topics": [{"topic": "Manufactured Supplies", "topicId": "4555", "url": "https://www.semanticscholar.org/topic/4555"}], "url": "https://www.semanticscholar.org/paper/bb525190cc444231a08095230cfc0a615914944c", "venue": "", "year": 2008, "obtained_utc": "2021-04-05T18:24:02.929484"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/bd0a15f91a8dad3ef0cc9911f283f2b116259e11.json: -------------------------------------------------------------------------------- 1 | {"abstract": "The article is on a recent approach to Precision Oncology based in the application of a computationally intensive approach to personalized medicine by means of a reverse engineering methodology termed rapid learning that considers individual patients both as a part of a cohort or corpus in an intelligent database and as individuals in an ongoing clinical practice setting. Some of the challenges and shortcomings are discussed.", "arxivId": null, "authors": [{"authorId": "87762807", "name": "E. Lemus", "url": "https://www.semanticscholar.org/author/87762807"}], "citationVelocity": 0, "citations": [], "corpusId": 31216416, "doi": null, "fieldsOfStudy": null, "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "bd0a15f91a8dad3ef0cc9911f283f2b116259e11", "references": [{"arxivId": null, "authors": [{"authorId": "153332261", "name": "G. Sledge", "url": null}, {"authorId": "153742413", "name": "Clifford A. Hudis", "url": null}, {"authorId": "152577586", "name": "Sandra M. Swain", "url": null}, {"authorId": "1396516249", "name": "Peter M. Yu", "url": null}, {"authorId": "1392330587", "name": "J. Mann", "url": null}, {"authorId": "1400179283", "name": "Robert S. Hauser", "url": null}, {"authorId": "1398963600", "name": "Allen S. Lichter", "url": null}], "doi": "10.1200/JOP.2013.000957", "intent": [], "isInfluential": false, "paperId": "0c4fe81bca207e5207ec144e4a96a51aad17b7bf", "title": "ASCO's approach to a learning health care system in oncology.", "url": "https://www.semanticscholar.org/paper/0c4fe81bca207e5207ec144e4a96a51aad17b7bf", "venue": "Journal of oncology practice", "year": 2013}, {"arxivId": null, "authors": [{"authorId": "144313223", "name": "R. Chen", "url": null}, {"authorId": "49954351", "name": "M. Snyder", "url": null}], "doi": "10.1002/wsbm.1198", "intent": ["background"], "isInfluential": false, "paperId": "848e2f94108dfc82b9b2d33c8b61da74a54e1695", "title": "Promise of personalized omics to precision medicine", "url": "https://www.semanticscholar.org/paper/848e2f94108dfc82b9b2d33c8b61da74a54e1695", "venue": "Wiley interdisciplinary reviews. Systems biology and medicine", "year": 2013}], "title": "PRECISION ONCOLOGY : IS IT POSSIBLE ?", "topics": [{"topic": "Precision medicine", "topicId": "181998", "url": "https://www.semanticscholar.org/topic/181998"}, {"topic": "Intelligent database", "topicId": "415538", "url": "https://www.semanticscholar.org/topic/415538"}, {"topic": "Reverse engineering", "topicId": "38634", "url": "https://www.semanticscholar.org/topic/38634"}, {"topic": "Personalization", "topicId": "2873", "url": "https://www.semanticscholar.org/topic/2873"}, {"topic": "Body of uterus", "topicId": "2915", "url": "https://www.semanticscholar.org/topic/2915"}, {"topic": "Patients", "topicId": "153409", "url": "https://www.semanticscholar.org/topic/153409"}], "url": "https://www.semanticscholar.org/paper/bd0a15f91a8dad3ef0cc9911f283f2b116259e11", "venue": "", "year": 2016, "obtained_utc": "2021-04-05T18:24:32.891435"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/c4dcbf01d64e1adf31276591f66eac8aeccc743e.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Abstract Significant reductions in global CO2 emissions can hardly be expected without a binding international agreement on reduction rates. Although the Rio summit failed to produce binding reduction targets, efforts to work out an international abatement schedule need to continue if global CO2 abatement is considered necessary. In this paper a CO2 agreement design is described that attempts to create broad participation by offering less developed countries the opportunity to improve their economic position. A formula for allocating emission quotas is proposed which accounts for both long-term equity considerations and intermediate-term adjustment problems. A penalty/premium mechanism provides the system with flexibility and creates the potential to attain global CO2 abatement at minimum economic losses. Equity and efficiency implications of the propsals are illustrated by means of a simple simulation model.", "arxivId": null, "authors": [{"authorId": "30522347", "name": "Heinz Welsch", "url": "https://www.semanticscholar.org/author/30522347"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "1720742336", "name": "C. Ma", "url": null}, {"authorId": "103413114", "name": "Yi-Shuai Ren", "url": null}, {"authorId": "121310767", "name": "Yuejun Zhang", "url": null}, {"authorId": "50884218", "name": "B. Sharp", "url": null}], "doi": "10.1016/J.JCLEPRO.2018.04.006", "intent": [], "isInfluential": false, "paperId": "55c6c9a77d789d5dc38dc214fc2e8366dc45a4e0", "title": "The allocation of carbon emission quotas to five major power generation corporations in China", "url": "https://www.semanticscholar.org/paper/55c6c9a77d789d5dc38dc214fc2e8366dc45a4e0", "venue": "", "year": 2018}, {"arxivId": null, "authors": [{"authorId": "39887589", "name": "M. T. Heil", "url": null}, {"authorId": "145784449", "name": "Q. Wodon", "url": null}], "doi": "10.1596/1813-9450-2084", "intent": [], "isInfluential": false, "paperId": "f6c52012dd964682e5d23f22a5fa618174cafe9f", "title": "Future Inequality in Carbon Dioxide Emissions and the Projected Impact of Abatement Proposals", "url": "https://www.semanticscholar.org/paper/f6c52012dd964682e5d23f22a5fa618174cafe9f", "venue": "", "year": 1999}], "corpusId": 154324395, "doi": "10.1016/0301-4215(93)90145-6", "fieldsOfStudy": ["Engineering"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": false, "paperId": "c4dcbf01d64e1adf31276591f66eac8aeccc743e", "references": [{"arxivId": null, "authors": [{"authorId": "70171677", "name": "M. Hoel", "url": null}], "doi": "10.5547/ISSN0195-6574-EJ-VOL12-NO2-6", "intent": [], "isInfluential": false, "paperId": "d0e643f837077b4f250d1f724ed0b8192ac0a7ac", "title": "Efficient International Agreements for Reducing Emissions of CO2", "url": "https://www.semanticscholar.org/paper/d0e643f837077b4f250d1f724ed0b8192ac0a7ac", "venue": "", "year": 1990}, {"arxivId": null, "authors": [{"authorId": "30522347", "name": "Heinz Welsch", "url": null}], "doi": "10.1111/J.1468-0076.1992.TB00419.X", "intent": [], "isInfluential": false, "paperId": "e2fc18a99b06b5bc1f6200c547594377268bb508", "title": "Inequality aspects of alternative CO2 agreement designs", "url": "https://www.semanticscholar.org/paper/e2fc18a99b06b5bc1f6200c547594377268bb508", "venue": "", "year": 1992}], "title": "A CO2 agreement proposal with flexible quotas", "topics": [], "url": "https://www.semanticscholar.org/paper/c4dcbf01d64e1adf31276591f66eac8aeccc743e", "venue": "", "year": 1993, "obtained_utc": "2021-04-05T18:24:08.729926"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/c69290fcd917cf3f13bb2bb7e6d882193cff1b5a.json: -------------------------------------------------------------------------------- 1 | {"abstract": "PART ONE ; 1. The nature and process of social research ; 2. Social research strategies: quantitative research and qualitative research ; 3. Research designs ; 4. Planning a research project and formulating research questions ; Getting started: reviewing the literature ; 6. Ethics and politics in social research ; PART TWO ; 7. The nature of quantitative research ; 8. Sampling in quantitative research ; 9. Structured interviewing ; 10. Self-administered questionnaires ; 11. Asking questions ; 12. Structured observation ; 13. Content analysis ; 14. Using existing data ; 15. Quantitative data analysis ; 16. Using IBM SPSS for Windows ; PART THREE ; 17. The nature of qualitative research ; 18. Sampling in qualitative research ; 19. Ethnography and participant observation ; 20. Interviewing in qualitative research ; 21. Focus groups ; 22. Language in qualitative research ; 23. Documents as sources of data ; 24. Qualitative data analysis ; 25. Computer-assisted qualitative data analysis: using NVivo ; PART FOUR ; 26. Breaking down the quantitative/qualitative divide ; 27. Mixed methods research: combining quantitative and qualitative research ; 28. Writing up social research", "arxivId": null, "authors": [{"authorId": "114886234", "name": "A. Bryman", "url": "https://www.semanticscholar.org/author/114886234"}], "citationVelocity": 687, "citations": [{"arxivId": null, "authors": [{"authorId": "113154341", "name": "Nathanael Ivan Lukanda", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "18749a769485b4ed3597eeef8f88de516889ec81", "title": "From lab to fork? Press coverage and public (mis)perception of crop biotechnology in Uganda", "url": "https://www.semanticscholar.org/paper/18749a769485b4ed3597eeef8f88de516889ec81", "venue": "", "year": 2018}, {"arxivId": null, "authors": [{"authorId": "12656971", "name": "Michael Edstrom", "url": null}, {"authorId": "1491028820", "name": "Nikolai Kolderup-Finstad", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "bb525190cc444231a08095230cfc0a615914944c", "title": "Supply Chain Mapping of Dangerous Goods: Volvo Cars customer Service", "url": "https://www.semanticscholar.org/paper/bb525190cc444231a08095230cfc0a615914944c", "venue": "", "year": 2008}], "corpusId": 142713601, "doi": "10.4324/9780203381175_chapter_9", "fieldsOfStudy": ["Psychology"], "influentialCitationCount": 1614, "is_open_access": false, "is_publisher_licensed": false, "paperId": "c69290fcd917cf3f13bb2bb7e6d882193cff1b5a", "references": [], "title": "Social Research Methods", "topics": [], "url": "https://www.semanticscholar.org/paper/c69290fcd917cf3f13bb2bb7e6d882193cff1b5a", "venue": "", "year": 2001, "obtained_utc": "2021-04-05T18:23:55.216300"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/cd6d4e5b8f882ecc3a2b680c42526669166b11b4.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This paper argues that the reliability of engineering computation can be signiflcantly improved by adopting software engineering methodologies for requirements analysis and speciflcation. The argument centers around the fact that the only way to judge the reliability of a system is by comparison to a speciflcation of the requirements. This paper also points to methods for documenting the requirements. In particular, a requirements template is proposed for specifying engineering computation software. To make the mathematical speciflcation easily understandable by all stakeholders, the technique of using tabular expressions is advocated. To clarify the presentation, a case study of the documentation for a system for analyzing statically determinant beams is presented.", "arxivId": null, "authors": [{"authorId": "114541464", "name": "S. Smith", "url": "https://www.semanticscholar.org/author/114541464"}, {"authorId": "46385569", "name": "Lei Lai", "url": "https://www.semanticscholar.org/author/46385569"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": null}], "doi": "10.1109/RE.2006.61", "intent": ["background", "methodology"], "isInfluential": false, "paperId": "77fbf771c11606ba9ddc150416f633b26c5a8a6f", "title": "Systematic Development of Requirements Documentation for General Purpose Scientific Computing Software", "url": "https://www.semanticscholar.org/paper/77fbf771c11606ba9ddc150416f633b26c5a8a6f", "venue": "14th IEEE International Requirements Engineering Conference (RE'06)", "year": 2006}, {"arxivId": "1906.07812", "authors": [{"authorId": "150308525", "name": "Spencer H. Smith", "url": null}, {"authorId": "117527528", "name": "M. Srinivasan", "url": null}, {"authorId": "50606570", "name": "S. Shankar", "url": null}], "doi": "10.1109/SE4Science.2019.00011", "intent": ["background", "methodology"], "isInfluential": true, "paperId": "12e894afd5737aebff30c1fb8775ffd1dcc4dc22", "title": "Debunking the Myth That Upfront Requirements Are Infeasible for Scientific Computing Software", "url": "https://www.semanticscholar.org/paper/12e894afd5737aebff30c1fb8775ffd1dcc4dc22", "venue": "2019 IEEE/ACM 14th International Workshop on Software Engineering for Science (SE4Science)", "year": 2019}], "corpusId": 6641005, "doi": null, "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": false, "paperId": "cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "references": [{"arxivId": null, "authors": [{"authorId": "47593050", "name": "S. Robertson", "url": null}, {"authorId": "153630509", "name": "James P. Robertson", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "715499e2500a9758542c4ff177d516faf8b6130f", "title": "Mastering the Requirements Process", "url": "https://www.semanticscholar.org/paper/715499e2500a9758542c4ff177d516faf8b6130f", "venue": "", "year": 1999}, {"arxivId": null, "authors": [{"authorId": "1726629", "name": "D. Parnas", "url": null}, {"authorId": "48637958", "name": "J. Madey", "url": null}, {"authorId": "52111561", "name": "G. Asmis", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "a00a1d33d7cde648ca163f253e78a92047a65766", "title": "Assessment of safety-critical software in nuclear power plants", "url": "https://www.semanticscholar.org/paper/a00a1d33d7cde648ca163f253e78a92047a65766", "venue": "", "year": 1991}], "title": "Requirements Analysis for Engineering Computation", "topics": [{"topic": "Requirement", "topicId": "136", "url": "https://www.semanticscholar.org/topic/136"}, {"topic": "Requirements analysis", "topicId": "27338", "url": "https://www.semanticscholar.org/topic/27338"}, {"topic": "Software engineering", "topicId": "7832", "url": "https://www.semanticscholar.org/topic/7832"}, {"topic": "Specification", "topicId": "9352", "url": "https://www.semanticscholar.org/topic/9352"}, {"topic": "Software development process", "topicId": "83", "url": "https://www.semanticscholar.org/topic/83"}, {"topic": "Software documentation", "topicId": "10212", "url": "https://www.semanticscholar.org/topic/10212"}, {"topic": "Table (information)", "topicId": "200", "url": "https://www.semanticscholar.org/topic/200"}, {"topic": "Documented", "topicId": "4766", "url": "https://www.semanticscholar.org/topic/4766"}, {"topic": "Regular expression", "topicId": "48721", "url": "https://www.semanticscholar.org/topic/48721"}, {"topic": "Clinical Use Template", "topicId": "1113", "url": "https://www.semanticscholar.org/topic/1113"}, {"topic": "Mathematics", "topicId": "2477", "url": "https://www.semanticscholar.org/topic/2477"}, {"topic": "Computation (action)", "topicId": "1554", "url": "https://www.semanticscholar.org/topic/1554"}], "url": "https://www.semanticscholar.org/paper/cd6d4e5b8f882ecc3a2b680c42526669166b11b4", "venue": "", "year": 2004, "obtained_utc": "2021-04-05T18:24:04.897688"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/d410fea1de0a8ca7ee8e16d83524af4f013e42d8.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Abstract In this paper, we present a model of interpersonal sensemaking and describe how this process contributes to the meaning that employees make of their work. The cues employees receive from others in the course of their jobs speak directly to the value ascribed by others to the job, role, and employee. We assert that these cues are crucial inputs in a dynamic process through which employees make meaning of their own jobs, roles, and selves at work. We describe the process through which interpersonal cues and the acts of others inform the meaning of work, and present examples from organizational research to illustrate this process. Interpersonal sensemaking at work as a route to work meaning contributes to theories of job attitudes and meaning of work by elaborating the role of relational cues and interpretive processes in the creation of job, role and self-meaning.", "arxivId": null, "authors": [{"authorId": "2823035", "name": "Amy Wrzesniewski", "url": "https://www.semanticscholar.org/author/2823035"}, {"authorId": "40382069", "name": "J. Dutton", "url": "https://www.semanticscholar.org/author/40382069"}], "citationVelocity": 49, "citations": [{"arxivId": null, "authors": [{"authorId": "48603716", "name": "M. Burrows", "url": null}, {"authorId": "49065587", "name": "Nicola Gale", "url": null}, {"authorId": "47112381", "name": "S. Greenfield", "url": null}, {"authorId": "4266094", "name": "I. Litchfield", "url": null}], "doi": "10.1186/s12875-020-01204-y", "intent": ["background"], "isInfluential": false, "paperId": "29d384439f2f89c82a9b8ddb48fc3f78da166d32", "title": "A quantitative assessment of the parameters of the role of receptionists in modern primary care using the work design framework", "url": "https://www.semanticscholar.org/paper/29d384439f2f89c82a9b8ddb48fc3f78da166d32", "venue": "BMC Family Practice", "year": 2020}, {"arxivId": null, "authors": [{"authorId": "49351133", "name": "M. Fay", "url": null}], "doi": "10.1108/17465641111188394", "intent": [], "isInfluential": false, "paperId": "43377a728317c42ec3e27c2ccb2c44aeaaf9ac7f", "title": "Informal communication of co\u2010workers: a thematic analysis of messages", "url": "https://www.semanticscholar.org/paper/43377a728317c42ec3e27c2ccb2c44aeaaf9ac7f", "venue": "", "year": 2011}], "corpusId": 143755045, "doi": "10.1016/S0191-3085(03)25003-6", "fieldsOfStudy": ["Psychology"], "influentialCitationCount": 19, "is_open_access": false, "is_publisher_licensed": false, "paperId": "d410fea1de0a8ca7ee8e16d83524af4f013e42d8", "references": [{"arxivId": null, "authors": [{"authorId": "144013001", "name": "H. Ibarra", "url": null}], "doi": "10.2307/2667055", "intent": [], "isInfluential": false, "paperId": "9edc9ad8099db9c115cc4144f70ea95516267f22", "title": "Provisional Selves: Experimenting with Image and Identity in Professional Adaptation", "url": "https://www.semanticscholar.org/paper/9edc9ad8099db9c115cc4144f70ea95516267f22", "venue": "", "year": 1999}, {"arxivId": null, "authors": [{"authorId": "13954624", "name": "W. Nord", "url": null}, {"authorId": "2164776", "name": "A. Brief", "url": null}, {"authorId": "116592956", "name": "Jennifer M. Atieh", "url": null}, {"authorId": "49927397", "name": "E. M. Doherty", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "34a56a2bb30059c38ab4499760c945d8a3ae03f2", "title": "Studying meanings of work: The case of work values.", "url": "https://www.semanticscholar.org/paper/34a56a2bb30059c38ab4499760c945d8a3ae03f2", "venue": "", "year": 1990}], "title": "INTERPERSONAL SENSEMAKING AND THE MEANING OF WORK", "topics": [], "url": "https://www.semanticscholar.org/paper/d410fea1de0a8ca7ee8e16d83524af4f013e42d8", "venue": "", "year": 2003, "obtained_utc": "2021-04-05T18:24:07.153193"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/d448a33c77562dd0bc001da91336a0160a141272.json: -------------------------------------------------------------------------------- 1 | {"abstract": "From the Publisher: \nThe data warehouse solves the problem of getting information out of legacy systems quickly and efficiently. If designed and built right, data warehouses can provide significant freedom of access to data, thereby delivering enormous benefits to any organization. In this unique handbook, W. H. Inmon, \"the father of the data warehouse,\" provides detailed discussion and analysis of all major issues related to the design and construction of the data warehouse, including granularity of data, partitioning data, metadata, lack of creditability of decision support systems (DSS) data, the system of record, migration and more. This Second Edition of Building the Data Warehouse is revised and expanded to include new techniques and applications of data warehouse technology and update existing topics to reflect the latest thinking. It includes a useful review checklist to help evaluate the effectiveness of the design.", "arxivId": null, "authors": [{"authorId": "11146678", "name": "W. H. Inmon", "url": "https://www.semanticscholar.org/author/11146678"}], "citationVelocity": 42, "citations": [{"arxivId": null, "authors": [{"authorId": "144542627", "name": "Igor Mekterovic", "url": null}, {"authorId": "1936945", "name": "Ljiljana Brki\u0107", "url": null}, {"authorId": "144402164", "name": "M. Baranovic", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "7447b81d388eb3836543f968b329e890529e1291", "title": "Improving the ETL process of higher education information system data warehouse", "url": "https://www.semanticscholar.org/paper/7447b81d388eb3836543f968b329e890529e1291", "venue": "", "year": 2009}, {"arxivId": null, "authors": [{"authorId": "3127010", "name": "Chin-Ang Wu", "url": null}, {"authorId": "1735809", "name": "Wen-Yang Lin", "url": null}, {"authorId": "3082062", "name": "Chuan-Chun Wu", "url": null}], "doi": "10.1109/WI-IAT.2009.320", "intent": ["background"], "isInfluential": false, "paperId": "0d8970a130297d372d1e6551cc238bba359847b6", "title": "Facilitating Active Multidimensional Association Mining with User Preference Ontology", "url": "https://www.semanticscholar.org/paper/0d8970a130297d372d1e6551cc238bba359847b6", "venue": "2009 IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology", "year": 2009}], "corpusId": 62756047, "doi": null, "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 122, "is_open_access": false, "is_publisher_licensed": false, "paperId": "d448a33c77562dd0bc001da91336a0160a141272", "references": [{"arxivId": null, "authors": [{"authorId": "11146678", "name": "W. H. Inmon", "url": null}, {"authorId": "49666561", "name": "Jeffrey H. Caplan", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "b2692bdf1b56e9f22f332aa4bbdb327a1bd9b801", "title": "Information systems architecture: Development in the 90's", "url": "https://www.semanticscholar.org/paper/b2692bdf1b56e9f22f332aa4bbdb327a1bd9b801", "venue": "", "year": 1992}, {"arxivId": null, "authors": [{"authorId": "1870816", "name": "K. Parsaye", "url": null}, {"authorId": "1796394", "name": "M. Chignell", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "7ecf979bd26364a903675c096e5892eeb59f06d4", "title": "Intelligent database tools & applications", "url": "https://www.semanticscholar.org/paper/7ecf979bd26364a903675c096e5892eeb59f06d4", "venue": "", "year": 1993}], "title": "Building the data warehouse", "topics": [{"topic": "Decision support system", "topicId": "16230", "url": "https://www.semanticscholar.org/topic/16230"}, {"topic": "Legacy system", "topicId": "121781", "url": "https://www.semanticscholar.org/topic/121781"}, {"topic": "decision support systems", "topicId": "607155", "url": "https://www.semanticscholar.org/topic/607155"}, {"topic": "System of record", "topicId": "1665499", "url": "https://www.semanticscholar.org/topic/1665499"}, {"topic": "benefit", "topicId": "131", "url": "https://www.semanticscholar.org/topic/131"}, {"topic": "Revision procedure", "topicId": "5148", "url": "https://www.semanticscholar.org/topic/5148"}, {"topic": "Handbooks", "topicId": "3081", "url": "https://www.semanticscholar.org/topic/3081"}, {"topic": "Decision Support Systems, Clinical", "topicId": "93839", "url": "https://www.semanticscholar.org/topic/93839"}], "url": "https://www.semanticscholar.org/paper/d448a33c77562dd0bc001da91336a0160a141272", "venue": "", "year": 1992, "obtained_utc": "2021-04-05T18:24:25.960418"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/da51fc4c99a97ecd5c262413a522e960305b37fd.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Genetically modified (GM) crops are popular in many regions of the world, but their deployment in Africa is hindered by safety concerns and regulatory issues, although the continent is in dire need of boosting its food production. Although consumers' acceptance of GM food has been analyzed in many continents, no such studies have been conducted in Africa. Therefore, a survey of 604 consumers was conducted in Nairobi, Kenya, in 2003, to gauge consumers' awareness of GM crops, their willingness to pay (WTP) for GM food, and the factors that influence their WTP. Consumers' knowledge of GM crops was limited and only 38% of the 604 respondents were aware of GM crops. People in higher education and income groups were more aware than others. Regardless, people were generally appreciative of the technology, and a large majority (68%) would be willing to buy GM maize meal at the same price as their favorite brand. Consumers were, however, concerned about possible side effects, especially on the environment and biodiversity. Copyright 2008 International Association of Agricultural Economists.", "arxivId": null, "authors": [{"authorId": "4274646", "name": "S. Kimenju", "url": "https://www.semanticscholar.org/author/4274646"}, {"authorId": "12029918", "name": "H. Groote", "url": "https://www.semanticscholar.org/author/12029918"}], "citationVelocity": 10, "citations": [{"arxivId": null, "authors": [{"authorId": "52138561", "name": "H. Takeshima", "url": null}, {"authorId": "1392878580", "name": "G. Gru\u00e8re", "url": null}], "doi": "10.2202/1542-0485.1325", "intent": [], "isInfluential": false, "paperId": "d6d270e26265f4ba38be5118685158da6fb3ac0d", "title": "Pressure Group Competition and GMO Regulations in Sub-Saharan Africa - Insights from the Becker Model", "url": "https://www.semanticscholar.org/paper/d6d270e26265f4ba38be5118685158da6fb3ac0d", "venue": "", "year": 2011}, {"arxivId": null, "authors": [{"authorId": "89908757", "name": "M. Thiel", "url": null}, {"authorId": "2601741", "name": "R. Marggraf", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "661ec9c900cb180178bf4c2f6e0e9de105fa7070", "title": "Gentechnik oder nicht Gentechnik - Bestimmungsgr\u00fcnde der Wahl von (nicht) gentechnisch ver\u00e4nderten Produkten", "url": "https://www.semanticscholar.org/paper/661ec9c900cb180178bf4c2f6e0e9de105fa7070", "venue": "", "year": 2009}], "corpusId": 153572629, "doi": "10.1111/J.1574-0862.2007.00279.X", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 5, "is_open_access": true, "is_publisher_licensed": false, "paperId": "da51fc4c99a97ecd5c262413a522e960305b37fd", "references": [{"arxivId": null, "authors": [{"authorId": "32082469", "name": "W. Moon", "url": null}, {"authorId": "102774636", "name": "S. Balasubramanian", "url": null}], "doi": "10.1111/J.1467-9353.2004.00170.X", "intent": ["background"], "isInfluential": false, "paperId": "d3894d165bdf17a0895d263007ea80b3d163e226", "title": "Public Attitudes toward Agrobiotechnology: The Mediating Role of Risk Perceptions on the Impact of Trust, Awareness, and Outrage", "url": "https://www.semanticscholar.org/paper/d3894d165bdf17a0895d263007ea80b3d163e226", "venue": "", "year": 2004}, {"arxivId": null, "authors": [{"authorId": "49717453", "name": "Hyun-Seok Kim", "url": null}], "doi": null, "intent": ["background"], "isInfluential": true, "paperId": "1682d8475bb56bc0b77af72692d4a90bc2a449c8", "title": "A multi-country assessment of consumer attitudes of genetically modified foods and the implications for new labeling system", "url": "https://www.semanticscholar.org/paper/1682d8475bb56bc0b77af72692d4a90bc2a449c8", "venue": "", "year": 2004}], "title": "Consumer willingness to pay for genetically modified food in Kenya", "topics": [], "url": "https://www.semanticscholar.org/paper/da51fc4c99a97ecd5c262413a522e960305b37fd", "venue": "", "year": 2007, "obtained_utc": "2021-04-05T18:24:28.072887"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/ddc3b835f2e1041d42a3d7e50441f7855253cae6.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Abstract Parnas et al. (Janicki et al., in: Brink, Kahl, Schmidt (Eds.), Relational Methods in Computer Science, Springer, Berlin, 1997; Parnas, Commun. ACM 26 (8) (1983) 572\u2013581; Parnas and Madey, Sci. Comput. Programm. 25 (1) (1995) 41\u201361; Parnas et al., IEEE Trans. Software Eng. 20 (12) (1994) 948\u2013976) advocate the use of relational model for documenting the intended behaviour of programs. In this method, tabular expressions (or tables) are used to improve readability so that formal documentation can replace conventional documentation. Parnas (CRL Report 260, Telecommunications Research Institute of Ontario (TRIO), Mcmaster University, Hamilton, Ontario, Canada, 1992) describes several classes of tables and provides their formal syntax and semantics. In this paper, an alternative, more general and more homogeneous semantics is proposed. The model covers all known types of tables used in Software Engineering.", "arxivId": null, "authors": [{"authorId": "1804632", "name": "R. Janicki", "url": "https://www.semanticscholar.org/author/1804632"}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": "https://www.semanticscholar.org/author/3316343"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "31069855", "name": "Imene Bourguiba", "url": null}, {"authorId": "1804632", "name": "R. Janicki", "url": null}], "doi": "10.1109/ICCIE.2009.5223955", "intent": ["background"], "isInfluential": false, "paperId": "4f01adbb171cfe8da6c8e4818d721bf778b6d223", "title": "Table-based specification techniques", "url": "https://www.semanticscholar.org/paper/4f01adbb171cfe8da6c8e4818d721bf778b6d223", "venue": "2009 International Conference on Computers & Industrial Engineering", "year": 2009}, {"arxivId": null, "authors": [{"authorId": "1825935", "name": "S. Sepehr", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "45bd4a372fdbc5ab00bdd38d854c677e706c64a6", "title": "Adding Nested Headers and a Proper Gtk-Based GUI to The Haskell Table Tools", "url": "https://www.semanticscholar.org/paper/45bd4a372fdbc5ab00bdd38d854c677e706c64a6", "venue": "", "year": 2010}], "corpusId": 1716204, "doi": "10.1016/S0167-6423(00)00004-6", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": false, "paperId": "ddc3b835f2e1041d42a3d7e50441f7855253cae6", "references": [{"arxivId": null, "authors": [{"authorId": "50694333", "name": "P. R. Halmos", "url": null}], "doi": "10.2307/2311615", "intent": [], "isInfluential": false, "paperId": "5c269e70faab9b0745b8684eddbe6e6a71c7f8d7", "title": "Naive Set Theory", "url": "https://www.semanticscholar.org/paper/5c269e70faab9b0745b8684eddbe6e6a71c7f8d7", "venue": "", "year": 1960}, {"arxivId": null, "authors": [{"authorId": "8470884", "name": "M. Heimdahl", "url": null}, {"authorId": "1777378", "name": "N. Leveson", "url": null}], "doi": "10.1145/225014.225015", "intent": [], "isInfluential": false, "paperId": "838e085d53bd5f5ce5d215a7da4fe4ec79316026", "title": "Completeness and Consistency Analysis of State-Based Requirements", "url": "https://www.semanticscholar.org/paper/838e085d53bd5f5ce5d215a7da4fe4ec79316026", "venue": "1995 17th International Conference on Software Engineering", "year": 1995}], "title": "On a formal semantics of tabular expressions", "topics": [{"topic": "Table (information)", "topicId": "200", "url": "https://www.semanticscholar.org/topic/200"}, {"topic": "Semantics (computer science)", "topicId": "926", "url": "https://www.semanticscholar.org/topic/926"}, {"topic": "Relational model", "topicId": "8679", "url": "https://www.semanticscholar.org/topic/8679"}, {"topic": "Table (database)", "topicId": "7390", "url": "https://www.semanticscholar.org/topic/7390"}, {"topic": "Software engineering", "topicId": "7832", "url": "https://www.semanticscholar.org/topic/7832"}, {"topic": "Regular expression", "topicId": "48721", "url": "https://www.semanticscholar.org/topic/48721"}, {"topic": "Documentation", "topicId": "132", "url": "https://www.semanticscholar.org/topic/132"}, {"topic": "User error", "topicId": "248782", "url": "https://www.semanticscholar.org/topic/248782"}, {"topic": "Formal grammar", "topicId": "13934", "url": "https://www.semanticscholar.org/topic/13934"}, {"topic": "Software documentation", "topicId": "10212", "url": "https://www.semanticscholar.org/topic/10212"}, {"topic": "Computer science", "topicId": "4506", "url": "https://www.semanticscholar.org/topic/4506"}, {"topic": "Schmidt decomposition", "topicId": "414294", "url": "https://www.semanticscholar.org/topic/414294"}, {"topic": "Springer (tank)", "topicId": "15318", "url": "https://www.semanticscholar.org/topic/15318"}, {"topic": "Emoticon", "topicId": "55238", "url": "https://www.semanticscholar.org/topic/55238"}], "url": "https://www.semanticscholar.org/paper/ddc3b835f2e1041d42a3d7e50441f7855253cae6", "venue": "Sci. Comput. Program.", "year": 2001, "obtained_utc": "2021-04-05T18:24:42.205106"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/e0c74eb2fcf29a9b2995c0dc1b330256b6036a31.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Abstract We investigate the contributions of scientific software to library and information science (LIS) research using a sample of 572 English language articles published in 13 journals in 2008, 2011, 2014, and 2017. In particular, we examine the use and citation of software freely available for academic use in the LIS literature; we also explore the extent to which researchers follow software citation instructions provided by software developers. Twenty-seven percent of the LIS journal articles in our sample explicitly mention and use software. Yet although LIS researchers are becoming increasingly reliant on software that is freely available for academic use, many still fail to include formal citations of such software in their publications. We also find that a substantial proportion of researchers, when documenting software use, do not cite the software in the manner recommended by its developers.", "arxivId": null, "authors": [{"authorId": "2275225", "name": "Xuelian Pan", "url": "https://www.semanticscholar.org/author/2275225"}, {"authorId": "2856106", "name": "E. Yan", "url": "https://www.semanticscholar.org/author/2856106"}], "citationVelocity": 0, "citations": [{"arxivId": "2010.10817", "authors": [{"authorId": null, "name": "Yuzhuo Wang", "url": null}, {"authorId": "40201703", "name": "Chengzhi Zhang", "url": null}], "doi": "10.1016/j.joi.2020.101091", "intent": [], "isInfluential": false, "paperId": "5c583a776d248909d8034343f4e5a86594245a98", "title": "Using the full-text content of academic articles to identify and evaluate algorithm entities in the domain of natural language processing", "url": "https://www.semanticscholar.org/paper/5c583a776d248909d8034343f4e5a86594245a98", "venue": "Journal of Informetrics", "year": 2020}, {"arxivId": null, "authors": [{"authorId": "97874006", "name": "W. Lou", "url": null}, {"authorId": "40430887", "name": "J. Zhang", "url": null}, {"authorId": "94451829", "name": "K. Li", "url": null}, {"authorId": "3451033", "name": "Jiangen He", "url": null}], "doi": "10.2478/dim-2020-0006", "intent": [], "isInfluential": false, "paperId": "97dafcad6ef6a070750e25d239b61fd8492401a1", "title": "Understanding the Application of Science Mapping Tools in LIS and Non-LIS Domains", "url": "https://www.semanticscholar.org/paper/97dafcad6ef6a070750e25d239b61fd8492401a1", "venue": "", "year": 2020}], "corpusId": 86532206, "doi": "10.1016/J.JOI.2019.02.002", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "e0c74eb2fcf29a9b2995c0dc1b330256b6036a31", "references": [{"arxivId": null, "authors": [{"authorId": "2178028", "name": "J. Howison", "url": null}, {"authorId": "1687896", "name": "E. Deelman", "url": null}, {"authorId": "39483188", "name": "M. McLennan", "url": null}, {"authorId": "145971089", "name": "Rafael Ferreira da Silva", "url": null}, {"authorId": "1705550", "name": "James D. Herbsleb", "url": null}], "doi": "10.1093/RESEVAL/RVV014", "intent": [], "isInfluential": false, "paperId": "e5e384f81dc5966c332050bfea48d6f7d5e8909a", "title": "Understanding the scientific software ecosystem and its impact: Current and future measures", "url": "https://www.semanticscholar.org/paper/e5e384f81dc5966c332050bfea48d6f7d5e8909a", "venue": "", "year": 2015}, {"arxivId": null, "authors": [{"authorId": "2275225", "name": "Xuelian Pan", "url": null}, {"authorId": "2856106", "name": "E. Yan", "url": null}, {"authorId": "40326660", "name": "Qianqian Wang", "url": null}, {"authorId": "3055273", "name": "Weina Hua", "url": null}], "doi": "10.1016/j.joi.2015.07.012", "intent": [], "isInfluential": false, "paperId": "2716b2a62f048764533a1d3fcd759ac93e1e9f7c", "title": "Assessing the impact of software on science: A bootstrapped learning of software entities in full-text papers", "url": "https://www.semanticscholar.org/paper/2716b2a62f048764533a1d3fcd759ac93e1e9f7c", "venue": "J. Informetrics", "year": 2015}], "title": "How important is software to library and information science research? A content analysis of full-text publications", "topics": [{"topic": "Library and information science", "topicId": "55760", "url": "https://www.semanticscholar.org/topic/55760"}, {"topic": "Software developer", "topicId": "52487", "url": "https://www.semanticscholar.org/topic/52487"}, {"topic": "Software documentation", "topicId": "10212", "url": "https://www.semanticscholar.org/topic/10212"}], "url": "https://www.semanticscholar.org/paper/e0c74eb2fcf29a9b2995c0dc1b330256b6036a31", "venue": "J. Informetrics", "year": 2019, "obtained_utc": "2021-04-05T18:24:30.898233"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/e0e7e01a6195e7252921116601a2e7613749a3a9.json: -------------------------------------------------------------------------------- 1 | {"abstract": "This paper argues that the reliability of engineering computation can be significantly improved by adopting software engineering methodologies for requirements analysis and specification. The argument centers around the fact that the only way to judge the reliability of a system is by comparison to a specification of the requirements. This paper also points to methods for documenting the requirements. In particular, a requirements template is proposed for specifying engineering computation software. To make the mathematical specification easily understandable by all stakeholders, the requirements documentation employs the technique of using tabular expressions. To clarify the presentation, this paper includes a case study of the documentation for a system for analyzing statically determinant beams.", "arxivId": null, "authors": [{"authorId": "33903435", "name": "S. Smith", "url": "https://www.semanticscholar.org/author/33903435"}, {"authorId": "7885292", "name": "Lei Lai", "url": "https://www.semanticscholar.org/author/7885292"}], "citationVelocity": 0, "citations": [{"arxivId": null, "authors": [{"authorId": "144892154", "name": "J. Dibbern", "url": null}, {"authorId": "1807759", "name": "M. Geisser", "url": null}, {"authorId": "1772074", "name": "T. Hildenbrand", "url": null}, {"authorId": "1719645", "name": "A. Heinzl", "url": null}], "doi": "10.7892/BORIS.135888", "intent": [], "isInfluential": false, "paperId": "a5e26e51723fd5c88a0620da97e6c82d6251c368", "title": "Design, implementation, and evaluation of an ICT-supported collaboration methodology for distributed requirements determination", "url": "https://www.semanticscholar.org/paper/a5e26e51723fd5c88a0620da97e6c82d6251c368", "venue": "", "year": 2009}, {"arxivId": null, "authors": [{"authorId": "1769095", "name": "J. Hannay", "url": null}, {"authorId": "3036629", "name": "H. Langtangen", "url": null}, {"authorId": "39337423", "name": "C. MacLeod", "url": null}, {"authorId": "1681323", "name": "Dietmar Pfahl", "url": null}, {"authorId": "39391305", "name": "J. Singer", "url": null}, {"authorId": "145801932", "name": "G. Wilson", "url": null}], "doi": "10.1109/SECSE.2009.5069155", "intent": [], "isInfluential": false, "paperId": "b99f1652926c23ee45fba1ad62d799d04a1740b4", "title": "How do scientists develop and use scientific software?", "url": "https://www.semanticscholar.org/paper/b99f1652926c23ee45fba1ad62d799d04a1740b4", "venue": "2009 ICSE Workshop on Software Engineering for Computational Science and Engineering", "year": 2009}], "corpusId": 41177532, "doi": "10.1007/s11155-006-9020-7", "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 1, "is_open_access": false, "is_publisher_licensed": true, "paperId": "e0e7e01a6195e7252921116601a2e7613749a3a9", "references": [{"arxivId": null, "authors": [{"authorId": "2824076", "name": "Krister \u00c5hlander", "url": null}, {"authorId": "1729570", "name": "M. Haveraaen", "url": null}, {"authorId": "1397434659", "name": "H. Munthe-Kaas", "url": null}], "doi": "10.1007/978-0-387-35407-1_9", "intent": [], "isInfluential": false, "paperId": "094c2b04c7e26c4b4af01a51295ffc2f179b4d15", "title": "On the Role of Mathematical Abstractions for Scientific Computing", "url": "https://www.semanticscholar.org/paper/094c2b04c7e26c4b4af01a51295ffc2f179b4d15", "venue": "The Architecture of Scientific Software", "year": 2000}, {"arxivId": null, "authors": [{"authorId": "1804632", "name": "R. Janicki", "url": null}, {"authorId": "3316343", "name": "Ridha Kh\u00e9dri", "url": null}], "doi": "10.1016/S0167-6423(00)00004-6", "intent": [], "isInfluential": false, "paperId": "ddc3b835f2e1041d42a3d7e50441f7855253cae6", "title": "On a formal semantics of tabular expressions", "url": "https://www.semanticscholar.org/paper/ddc3b835f2e1041d42a3d7e50441f7855253cae6", "venue": "Sci. Comput. Program.", "year": 2001}], "title": "Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability", "topics": [{"topic": "Requirement", "topicId": "136", "url": "https://www.semanticscholar.org/topic/136"}, {"topic": "Requirements analysis", "topicId": "27338", "url": "https://www.semanticscholar.org/topic/27338"}, {"topic": "Computation", "topicId": "339", "url": "https://www.semanticscholar.org/topic/339"}, {"topic": "Software engineering", "topicId": "7832", "url": "https://www.semanticscholar.org/topic/7832"}, {"topic": "Software development process", "topicId": "83", "url": "https://www.semanticscholar.org/topic/83"}, {"topic": "Software documentation", "topicId": "10212", "url": "https://www.semanticscholar.org/topic/10212"}, {"topic": "Table (information)", "topicId": "200", "url": "https://www.semanticscholar.org/topic/200"}], "url": "https://www.semanticscholar.org/paper/e0e7e01a6195e7252921116601a2e7613749a3a9", "venue": "Reliab. Comput.", "year": 2007, "obtained_utc": "2021-04-05T18:24:05.522978"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641.json: -------------------------------------------------------------------------------- 1 | {"abstract": "A. Wald has presented a model of production and a model of exchange and proofs of the existence of an equilibrium for each of them. Here proofs of the existence of an equilibrium are given for an integrated model of production, exchange and consumption. In addition the assumptions made on the technologies of producers and the tastes of consumers are significantly weaker than Wald's. Finally a simplification of the structure of the proofs has been made possible through use of the concept of an abstract economy, a generalization of that of a game. Introduction L. Walras [ 24 ] first formulated the state of the economic system at any point of time as the solution of a system of simultaneous equations representing the demand for goods by consumers, the supply of goods by producers, and the equilibrium condition that supply equal demand on every market. It was assumed that each consumer acts so as to maximize his utility, each producer acts so as to maximize his profit, and perfect competition prevails, in the sense that each producer and consumer regards the prices paid and received as independent of his own choices. Walras did not, however, give any conclusive arguments to show that the equations, as given, have a solution.", "arxivId": null, "authors": [{"authorId": "7697925", "name": "K. Arrow", "url": "https://www.semanticscholar.org/author/7697925"}, {"authorId": "2807264", "name": "G. Debreu", "url": "https://www.semanticscholar.org/author/2807264"}], "citationVelocity": 177, "citations": [{"arxivId": null, "authors": [{"authorId": "1684580", "name": "M. Fukushima", "url": null}, {"authorId": "1933923", "name": "Koichi Nabetani", "url": null}], "doi": null, "intent": ["background"], "isInfluential": false, "paperId": "0d4f94c83e6259dd6123e3007069ad4cd32dd9a6", "title": "Variational Inequality Approaches to Generalized Nash Equilibrium Problems", "url": "https://www.semanticscholar.org/paper/0d4f94c83e6259dd6123e3007069ad4cd32dd9a6", "venue": "", "year": 2008}, {"arxivId": null, "authors": [{"authorId": "2383289", "name": "A. Dilger", "url": null}], "doi": "10.1007/978-3-8350-5565-0_3", "intent": [], "isInfluential": false, "paperId": "c48f99a5fe080b892442267b0945249151cf75e8", "title": "Economics with Ethical Preferences", "url": "https://www.semanticscholar.org/paper/c48f99a5fe080b892442267b0945249151cf75e8", "venue": "", "year": 2008}], "corpusId": 16088048, "doi": "10.1017/CCOL052123736X.005", "fieldsOfStudy": ["Economics"], "influentialCitationCount": 275, "is_open_access": true, "is_publisher_licensed": false, "paperId": "e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641", "references": [{"arxivId": null, "authors": [{"authorId": "118720644", "name": "F. Zeuthen", "url": null}], "doi": "10.1007/BF01318452", "intent": [], "isInfluential": false, "paperId": "3e017aeda80b46aef77e8360b9750449acb9a572", "title": "Das Prinzip der Knappheit, technische Kombination und \u00f6konomische Qualit\u00e4t", "url": "https://www.semanticscholar.org/paper/3e017aeda80b46aef77e8360b9750449acb9a572", "venue": "", "year": 1932}, {"arxivId": null, "authors": [{"authorId": "47151484", "name": "L. Robbins", "url": null}], "doi": "10.1007/978-1-349-12761-0_6", "intent": [], "isInfluential": false, "paperId": "7b5f21f84c312d0278e4b45d53d9f9cb0a724201", "title": "On the Elasticity of Demand for Income in Terms of Effort", "url": "https://www.semanticscholar.org/paper/7b5f21f84c312d0278e4b45d53d9f9cb0a724201", "venue": "", "year": 1930}], "title": "EXISTENCE OF AN EQUILIBRIUM FOR A COMPETITIVE ECONOMY", "topics": [{"topic": "Archive", "topicId": "2451", "url": "https://www.semanticscholar.org/topic/2451"}, {"topic": "Download", "topicId": "19481", "url": "https://www.semanticscholar.org/topic/19481"}, {"topic": "Copy (object)", "topicId": "8956", "url": "https://www.semanticscholar.org/topic/8956"}], "url": "https://www.semanticscholar.org/paper/e937fc6b51ab16bfdb3d7cde90a13c7e12e2c641", "venue": "", "year": 1954, "obtained_utc": "2021-04-05T18:24:13.491173"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/ecb1df457d4514feed7fb71a2499113ba87abbb6.json: -------------------------------------------------------------------------------- 1 | {"abstract": "ion Rules (A) Abstract to eliminate redundancy. (B) Abstract to improve clarity. (C) Otherwise, don\u2019t abstract. We are concerned about spatial correlation in potato chip consumption. We want to test whether per capita potato chip consumption in a county is correlated with the average per capita potato chip consumption among other counties in the same state. First we must define the \u201cleave-out\u201d mean of per capita consumption for each county: egen total_pc_potato = total(pc_potato), by(state) egen total_obs = count(pc_potato), by(state) gen leaveout_state_pc_potato = (total_pc_potato pc_potato) / (total_obs 1) We can now test whether pc_potato is correlated with leaveout_state_pc_potato. If so, we may need to adjust how we compute the standard errors in our model. We perform our analysis and are comforted to find little evidence of spatial correlation. But what if we are using the wrong level of aggregation? Maybe spatial correlation will show up at the level of the metropolitan area. Let\u2019s copy and paste the code above and then adapt it to use metropolitan area instead of state as the level of aggregation:", "arxivId": null, "authors": [{"authorId": "8731644", "name": "Matthew Gentzkow", "url": "https://www.semanticscholar.org/author/8731644"}, {"authorId": "122795272", "name": "Jesse M. Shapiro", "url": "https://www.semanticscholar.org/author/122795272"}], "citationVelocity": 0, "citations": [{"arxivId": "1609.00037", "authors": [{"authorId": "145801932", "name": "G. Wilson", "url": null}, {"authorId": "46557320", "name": "J. Bryan", "url": null}, {"authorId": "3032890", "name": "K. Cranston", "url": null}, {"authorId": "3468920", "name": "J. Kitzes", "url": null}, {"authorId": "3469128", "name": "Lex Nederbragt", "url": null}, {"authorId": "3146120", "name": "Tracy K. Teal", "url": null}], "doi": "10.1371/journal.pcbi.1005510", "intent": [], "isInfluential": false, "paperId": "f0e432ffd9040b38ec5d6b238b9b5ad91134b093", "title": "Good enough practices in scientific computing", "url": "https://www.semanticscholar.org/paper/f0e432ffd9040b38ec5d6b238b9b5ad91134b093", "venue": "PLoS Comput. Biol.", "year": 2017}, {"arxivId": null, "authors": [{"authorId": "2364509", "name": "Jeremy Freese", "url": null}, {"authorId": "20856436", "name": "Molly M. King", "url": null}], "doi": "10.1177/2378023117739216", "intent": [], "isInfluential": false, "paperId": "84cfa9eba63c1b9913177d337ba3b9d867055ed6", "title": "Institutionalizing Transparency", "url": "https://www.semanticscholar.org/paper/84cfa9eba63c1b9913177d337ba3b9d867055ed6", "venue": "", "year": 2018}], "corpusId": 62408223, "doi": null, "fieldsOfStudy": ["Computer Science"], "influentialCitationCount": 0, "is_open_access": false, "is_publisher_licensed": false, "paperId": "ecb1df457d4514feed7fb71a2499113ba87abbb6", "references": [{"arxivId": null, "authors": [{"authorId": "153498389", "name": "F. P. Brooks", "url": null}], "doi": "10.1145/800027.808439", "intent": [], "isInfluential": false, "paperId": "617e2d3a42c23a758daf8dd51ab82f89d171ef54", "title": "The Mythical Man-Month", "url": "https://www.semanticscholar.org/paper/617e2d3a42c23a758daf8dd51ab82f89d171ef54", "venue": "", "year": 1975}, {"arxivId": null, "authors": [{"authorId": "11146678", "name": "W. H. Inmon", "url": null}], "doi": null, "intent": [], "isInfluential": false, "paperId": "d448a33c77562dd0bc001da91336a0160a141272", "title": "Building the data warehouse", "url": "https://www.semanticscholar.org/paper/d448a33c77562dd0bc001da91336a0160a141272", "venue": "", "year": 1992}], "title": "Code and Data for the Social Sciences: A Practitioner's Guide", "topics": [{"topic": "Ions", "topicId": "1189", "url": "https://www.semanticscholar.org/topic/1189"}, {"topic": "Redundancy (engineering)", "topicId": "520284", "url": "https://www.semanticscholar.org/topic/520284"}, {"topic": "Cut, copy, and paste", "topicId": "30582", "url": "https://www.semanticscholar.org/topic/30582"}, {"topic": "WHAT IF", "topicId": "998497", "url": "https://www.semanticscholar.org/topic/998497"}, {"topic": "Rule (guideline)", "topicId": "4540", "url": "https://www.semanticscholar.org/topic/4540"}, {"topic": "Science", "topicId": "14543", "url": "https://www.semanticscholar.org/topic/14543"}, {"topic": "Social Sciences", "topicId": "27820", "url": "https://www.semanticscholar.org/topic/27820"}, {"topic": "GEN1 wt Allele", "topicId": "78221", "url": "https://www.semanticscholar.org/topic/78221"}], "url": "https://www.semanticscholar.org/paper/ecb1df457d4514feed7fb71a2499113ba87abbb6", "venue": "", "year": 2014, "obtained_utc": "2021-04-05T18:24:01.845919"} -------------------------------------------------------------------------------- /tests/fixtures/graph/paper_ds/ef86c229bc2249a8c7a4a4777c95a426f102c365.json: -------------------------------------------------------------------------------- 1 | {"abstract": "Journal policy on research data and code availability is an important part of the ongoing shift toward publishing reproducible computational science. This article extends the literature by studying journal data sharing policies by year (for both 2011 and 2012) for a referent set of 170 journals. We make a further contribution by evaluating code sharing policies, supplemental materials policies, and open access status for these 170 journals for each of 2011 and 2012. We build a predictive model of open data and code policy adoption as a function of impact factor and publisher and find higher impact journals more likely to have open data and code policies and scientific societies more likely to have open data and code policies than commercial publishers. We also find open data policies tend to lead open code policies, and we find no relationship between open data and code policies and either supplemental material policies or open access journal status. Of the journals in this study, 38% had a data policy, 22% had a code policy, and 66% had a supplemental materials policy as of June 2012. This reflects a striking one year increase of 16% in the number of data policies, a 30% increase in code policies, and a 7% increase in the number of supplemental materials policies. We introduce a new dataset to the community that categorizes data and code sharing, supplemental materials, and open access policies in 2011 and 2012 for these 170 journals.", "arxivId": null, "authors": [{"authorId": "2598812", "name": "V. Stodden", "url": "https://www.semanticscholar.org/author/2598812"}, {"authorId": "9094808", "name": "P. Guo", "url": "https://www.semanticscholar.org/author/9094808"}], "citationVelocity": 23, "citations": [{"arxivId": null, "authors": [{"authorId": "33479343", "name": "J. Cohen", "url": null}, {"authorId": "2761507", "name": "J. Wong", "url": null}], "doi": "10.1097/MLR.0000000000000811", "intent": [], "isInfluential": false, "paperId": "e1be2ddf3798ffe8fad85439ac22ebddfa57709c", "title": "Can Economic Model Transparency Improve Provider Interpretation of Cost-Effectiveness Analysis? A Response.", "url": "https://www.semanticscholar.org/paper/e1be2ddf3798ffe8fad85439ac22ebddfa57709c", "venue": "Medical care", "year": 2017}, {"arxivId": null, "authors": [{"authorId": "50568398", "name": "Damien Irving", "url": null}], "doi": "10.1175/BAMS-D-15-00010.1", "intent": [], "isInfluential": false, "paperId": "cb4274bcf4b179c985c4a96ebd79e0732bb04231", "title": "A Minimum Standard for Publishing Computational Results in the Weather and Climate Sciences", "url": "https://www.semanticscholar.org/paper/cb4274bcf4b179c985c4a96ebd79e0732bb04231", "venue": "", "year": 2016}], "corpusId": 12415146, "doi": "10.1371/journal.pone.0067111", "fieldsOfStudy": ["Business", "Medicine"], "influentialCitationCount": 3, "is_open_access": true, "is_publisher_licensed": true, "paperId": "ef86c229bc2249a8c7a4a4777c95a426f102c365", "references": [{"arxivId": null, "authors": [{"authorId": "1741160881", "name": "John B. Shoven", "url": null}, {"authorId": "1741097181", "name": "Sita Nataraj Slavov", "url": null}], "doi": "10.1515/9783486731620-002", "intent": ["background"], "isInfluential": false, "paperId": "dfc0519026a20ab20b7f62602cc90f9addb73b33", "title": "I", "url": "https://www.semanticscholar.org/paper/dfc0519026a20ab20b7f62602cc90f9addb73b33", "venue": "Edinburgh Medical and Surgical Journal", "year": 1824}, {"arxivId": null, "authors": [{"authorId": "39121624", "name": "K. Simmons", "url": null}, {"authorId": "38227534", "name": "D. Sutter", "url": null}], "doi": "10.1007/978-0-933876-12-5_6", "intent": ["methodology"], "isInfluential": false, "paperId": "a7e100143f26a303a38ae9365f692cdc69206549", "title": "Lessons Learned and the Path Forward", "url": "https://www.semanticscholar.org/paper/a7e100143f26a303a38ae9365f692cdc69206549", "venue": "", "year": 2012}], "title": "Toward Reproducible Computational Research: An Empirical Analysis of Data and Code Policy Adoption by Journals", "topics": [{"topic": "Journal", "topicId": "20500", "url": "https://www.semanticscholar.org/topic/20500"}, {"topic": "Societies, Scientific", "topicId": "27366", "url": "https://www.semanticscholar.org/topic/27366"}, {"topic": "Policy", "topicId": "60001", "url": "https://www.semanticscholar.org/topic/60001"}, {"topic": "Societies", "topicId": "27360", "url": "https://www.semanticscholar.org/topic/27360"}, {"topic": "Silo (dataset)", "topicId": "130506", "url": "https://www.semanticscholar.org/topic/130506"}], "url": "https://www.semanticscholar.org/paper/ef86c229bc2249a8c7a4a4777c95a426f102c365", "venue": "PloS one", "year": 2013, "obtained_utc": "2021-04-05T18:24:32.610986"} -------------------------------------------------------------------------------- /tests/fixtures/store/json/s2authors/2051526200.json: -------------------------------------------------------------------------------- 1 | {"aliases": [], "authorId": "2051526200", "influentialCitationCount": 0, "name": "Shmargaret Shmitchell", "papers": [{"paperId": "6d9727f1f058614cada3fe296eeebd8ec4fc512a", "title": "On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? \ud83e\udd9c", "url": "https://www.semanticscholar.org/paper/6d9727f1f058614cada3fe296eeebd8ec4fc512a", "year": 2021}], "url": "https://www.semanticscholar.org/author/2051526200"} -------------------------------------------------------------------------------- /tests/fixtures/store/json/s2authors/80806115.json: -------------------------------------------------------------------------------- 1 | {"aliases": [], "authorId": "80806115", "influentialCitationCount": 0, "name": "Hedy Lamarr", "papers": [{"paperId": "fe0bf72ba4d260c3b8af6c293322227bf666ed65", "title": "English TV actress (Spooks, Kingdom, 'Wire in the Blood', Outcasts).", "url": "https://www.semanticscholar.org/paper/fe0bf72ba4d260c3b8af6c293322227bf666ed65", "year": 2014}, {"paperId": "8addf7156fea02b214e64a4e7084239bb5c61efc", "title": "10. HOLLYWOOD FILMS", "url": "https://www.semanticscholar.org/paper/8addf7156fea02b214e64a4e7084239bb5c61efc", "year": 2011}, {"paperId": "30600ee228fe7d745e188770ce87dc2469685822", "title": "1 THE CONCEPT OF SPREAD SPECTRUM", "url": "https://www.semanticscholar.org/paper/30600ee228fe7d745e188770ce87dc2469685822", "year": null}, {"paperId": "955020ba0484e949ffcaffba5358e2ea85112c4e", "title": "Ecstasy and Me: my life as a woman", "url": "https://www.semanticscholar.org/paper/955020ba0484e949ffcaffba5358e2ea85112c4e", "year": 1966}], "url": "https://www.semanticscholar.org/author/80806115"} -------------------------------------------------------------------------------- /tests/graph/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mirandrom/PyS2/9bf44f0ad16d9ccdeadd4cff719eda2a8e42cc84/tests/graph/__init__.py -------------------------------------------------------------------------------- /tests/graph/test_builder.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from unittest import TestCase 3 | from ..context import models, rm_tree 4 | from ..context import JsonDS, S2Graph, S2GraphBuilder, MaxHopHopper 5 | 6 | from betamax import Betamax 7 | from requests import Session 8 | from requests.exceptions import HTTPError 9 | import pytest 10 | 11 | with Betamax.configure() as config: 12 | config.cassette_library_dir = 'tests/fixtures/cassettes' 13 | 14 | 15 | def load_s2graph(): 16 | # this datastore contains 58 papers connected to the paper with PaperId 17 | # '8d8844106e7bc83d49ea3544ab2dfc74cd8f258a' (Code Review For and By 18 | # Scientists) by at most two hops. Each S2Paper object also has their 19 | # citations, references, and authors truncated to two to keep the 20 | # foot print of this test relatively low. 21 | paper_ds = JsonDS.load_papers("tests/fixtures/graph/paper_ds") 22 | paper_ds = {k:v for k,v in paper_ds.items()} 23 | colliding_paperId = list(paper_ds.keys())[0] 24 | paper_ds[colliding_paperId].paperId = "collision" 25 | s2graph = S2Graph(papers=paper_ds) 26 | return s2graph 27 | 28 | 29 | class TestGraphBuilder(TestCase): 30 | def setUp(self): 31 | self.save_path = Path('tests/fixtures/graph/tmp_builder.pkl') 32 | self.builder = S2GraphBuilder(graph=load_s2graph(), 33 | hopper=MaxHopHopper(2), 34 | ) 35 | self.builder.save_path = self.save_path 36 | self.root_paperId = '8d8844106e7bc83d49ea3544ab2dfc74cd8f258a' 37 | self.session = Session() 38 | self.missing_paperId = 'c4e3be316ce0d5dfc9ec7b19298e9483484cc252' 39 | self.missing_paperId_404 = 'paper' 40 | self.missing_paperId_429 = 'c4e3be316ce0d5dfc9ec7b19298e9483484cc252' 41 | self.addCleanup(lambda: rm_tree(self.save_path)) 42 | 43 | def test_builder(self): 44 | # integrated-ish test 45 | self.builder.from_paper_id(self.root_paperId) 46 | # save/load 47 | self.builder.save() 48 | self.builder.load(self.save_path) 49 | # handling unknown refs 50 | unknown_ref = models.S2Reference(title='Unknown reference') 51 | self.builder._add_to_queue(unknown_ref, self.root_paperId, 'citation') 52 | # get paper with 429 53 | with Betamax(self.session).use_cassette('paper_429'): 54 | self.builder.api_kwargs['session'] = self.session 55 | self.builder.api_kwargs['retries'] = 0 56 | with pytest.raises(HTTPError): 57 | _ = self.builder._get_paper(self.missing_paperId_429) 58 | # get paper with 404 59 | with Betamax(self.session).use_cassette('paper_404'): 60 | self.builder.api_kwargs['session'] = self.session 61 | with pytest.raises(HTTPError): 62 | _ = self.builder._get_paper(self.missing_paperId_404) 63 | # get paper not in datastore 64 | with Betamax(self.session).use_cassette('paper'): 65 | self.builder.api_kwargs['session'] = self.session 66 | _ = self.builder._get_paper(self.missing_paperId) 67 | # test recursion error 68 | self.builder.discovered_from[self.root_paperId] = (self.root_paperId, "citation") 69 | with pytest.raises(RecursionError): 70 | self.builder._get_gpath(self.root_paperId) 71 | 72 | -------------------------------------------------------------------------------- /tests/store/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mirandrom/PyS2/9bf44f0ad16d9ccdeadd4cff719eda2a8e42cc84/tests/store/__init__.py -------------------------------------------------------------------------------- /tests/store/test_json.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from unittest import TestCase 3 | import pytest 4 | from ..context import rm_tree, JsonDS 5 | 6 | 7 | class TestJson(TestCase): 8 | def setUp(self): 9 | fixtures = Path("tests/fixtures/store/json") 10 | self.pds_path = fixtures / "s2papers" 11 | self.pds_path_tmp = fixtures / "s2papers_tmp" 12 | self.ads_path = fixtures / "s2authors" 13 | self.ads_path_tmp = fixtures / "s2authors_tmp" 14 | assert self.pds_path.exists() 15 | assert self.ads_path.exists() 16 | assert not self.pds_path_tmp.exists() 17 | assert not self.ads_path_tmp.exists() 18 | self.addCleanup(lambda: rm_tree(self.pds_path_tmp)) 19 | self.addCleanup(lambda: rm_tree(self.ads_path_tmp)) 20 | 21 | def test_pds(self): 22 | # create new pds (paper datastore) 23 | pds_tmp = JsonDS.load_papers(self.pds_path_tmp) 24 | assert pds_tmp.json_dir.exists() 25 | 26 | # load existing ds and check values; testing contains and len methods 27 | pds = JsonDS.load_papers(self.pds_path) 28 | assert "a04fc380c61040c7ffa21375bf2a0c9d30b674a4" in pds 29 | assert "bdfa1a62c964f19b5ce000d7812ba9f66456a4a4" in pds 30 | assert "c656a68a2bf155fa1a8ef4dd38a0af2cac3911da" in pds 31 | assert len(pds) == 3 32 | 33 | # copy values into temp pds; testing iter, set, and get methods 34 | for k,v in pds.items(): 35 | pds_tmp[k] = v 36 | for k in pds_tmp.keys(): 37 | assert pds[k] == pds_tmp[k] 38 | 39 | # delete key and check for keyerrors 40 | p = pds_tmp.pop(k) 41 | with pytest.raises(KeyError): 42 | _ = pds_tmp[k] 43 | 44 | # enforce_id behavior 45 | with pytest.raises(KeyError): 46 | wrong_key = k[:-1] 47 | pds_tmp[wrong_key] = p 48 | 49 | # check for type errors 50 | p = pds[k] 51 | for invalid_value in [k, 0, None, p.dict(), p.json()]: 52 | with pytest.raises(TypeError): 53 | pds_tmp[k] = invalid_value 54 | for invalid_key in [0, None]: 55 | with pytest.raises(TypeError): 56 | _ = pds_tmp[invalid_key] 57 | 58 | def test_ads(self): 59 | # create new ads (author datastore) 60 | assert not self.ads_path_tmp.exists() 61 | ads_tmp = JsonDS.load_authors(self.ads_path_tmp) 62 | assert ads_tmp.json_dir.exists() 63 | 64 | # load existing ds and check values; testing contains and len methods 65 | assert self.ads_path.exists() 66 | ads = JsonDS.load_authors(self.ads_path) 67 | assert "80806115" in ads 68 | assert "144794037" in ads 69 | assert "2051526200" in ads 70 | assert len(ads) == 3 71 | 72 | # copy values into temp pds; testing iter, set, and get methods 73 | for k,v in ads.items(): 74 | ads_tmp[k] = v 75 | for k in ads_tmp.keys(): 76 | assert ads[k] == ads_tmp[k] 77 | 78 | # delete key and check for keyerrors 79 | a = ads_tmp.pop(k) 80 | with pytest.raises(KeyError): 81 | _ = ads_tmp[k] 82 | 83 | # enforce_id behavior 84 | with pytest.raises(KeyError): 85 | wrong_key = k[:-1] 86 | ads_tmp[wrong_key] = a 87 | 88 | # check for type errors 89 | a = ads[k] 90 | for invalid_value in [k, 0, None, a.dict(), a.json()]: 91 | with pytest.raises(TypeError): 92 | ads_tmp[k] = invalid_value 93 | for invalid_key in [0, None]: 94 | with pytest.raises(TypeError): 95 | _ = ads_tmp[invalid_key] -------------------------------------------------------------------------------- /tests/test_api.py: -------------------------------------------------------------------------------- 1 | from betamax import Betamax 2 | from requests import Session 3 | from requests.exceptions import HTTPError 4 | from unittest import TestCase 5 | import pytest 6 | from .context import api 7 | 8 | 9 | with Betamax.configure() as config: 10 | config.cassette_library_dir = 'tests/fixtures/cassettes' 11 | 12 | 13 | class TestApi(TestCase): 14 | def setUp(self): 15 | self.session = Session() 16 | self.paperId = "c4e3be316ce0d5dfc9ec7b19298e9483484cc252" 17 | self.paperId_404 = 'paper' 18 | self.paper_url = api.build_url(self.paperId, "paper") 19 | self.authorId = "144794037" 20 | self.authorId_404 = 'author' 21 | self.author_url = api.build_url(self.authorId, "author") 22 | 23 | def test_get_paper(self): 24 | with Betamax(self.session).use_cassette('paper'): 25 | p = api.get_paper(self.paperId, session=self.session) 26 | assert p.paperId == self.paperId 27 | 28 | def test_get_paper_with_return_json(self): 29 | with Betamax(self.session).use_cassette('paper'): 30 | p = api.get_paper(self.paperId, session=self.session, 31 | return_json=True) 32 | assert p['paperId'] == self.paperId 33 | 34 | def test_get_paper_with_404(self): 35 | with Betamax(self.session).use_cassette('paper_404'): 36 | with pytest.raises(HTTPError): 37 | api.get_paper(self.paperId_404, session=self.session) 38 | 39 | def test_get_paper_with_429(self): 40 | with Betamax(self.session).use_cassette('paper_429'): 41 | with pytest.raises(HTTPError): 42 | api.get_paper(self.paperId, session=self.session, 43 | wait=0, retries=1) 44 | 45 | def test_get_author(self): 46 | with Betamax(self.session).use_cassette('author'): 47 | a = api.get_author(self.authorId, session=self.session) 48 | assert a.authorId == self.authorId 49 | 50 | def test_get_author_with_return_json(self): 51 | with Betamax(self.session).use_cassette('author'): 52 | a = api.get_author(self.authorId, session=self.session, 53 | return_json=True) 54 | assert a['authorId'] == self.authorId 55 | 56 | def test_get_author_with_404(self): 57 | with Betamax(self.session).use_cassette('author_404'): 58 | with pytest.raises(HTTPError): 59 | api.get_author(self.authorId_404, session=self.session) 60 | 61 | def test_get_author_with_429(self): 62 | with Betamax(self.session).use_cassette('author_429'): 63 | with pytest.raises(HTTPError): 64 | api.get_author(self.authorId, session=self.session, 65 | wait=0, retries=1) 66 | 67 | def test_build_url(self): 68 | # public paper endpoint 69 | url = api.build_url(self.paperId, 'paper') 70 | assert url == f"{api.API_URL}/paper/{self.paperId}" 71 | # partner paper endpoint 72 | url = api.build_url(self.paperId, 'paper', True) 73 | assert url == f"{api.PARTNER_URL}/paper/{self.paperId}" 74 | # public author endpoint 75 | url = api.build_url(self.authorId, 'author') 76 | assert url == f"{api.API_URL}/author/{self.authorId}" 77 | # partner author endpoint 78 | url = api.build_url(self.authorId, 'author', True) 79 | assert url == f"{api.PARTNER_URL}/author/{self.authorId}" 80 | 81 | def test_build_session(self): 82 | # default no session and no api key 83 | session = api.build_session(None, None) 84 | assert 'x-api-key' not in session.headers 85 | # custom session and no api key 86 | session = api.build_session(Session(), None) 87 | assert 'x-api-key' not in session.headers 88 | # custom session and arg api key 89 | arg_api_key = '123' 90 | session = api.build_session(Session(), arg_api_key) 91 | assert session.headers['x-api-key'] == arg_api_key 92 | # custom session and session api key 93 | session = Session() 94 | session_api_key = '456' 95 | session.headers['x-api-key'] = session_api_key 96 | session = api.build_session(session, None) 97 | assert session.headers['x-api-key'] == session_api_key 98 | # custom session and session+arg api key (allow overriding) 99 | custom_session = Session() 100 | custom_session.headers['x-api-key'] = session_api_key 101 | session = api.build_session(session, arg_api_key) 102 | assert session.headers['x-api-key'] == arg_api_key 103 | assert custom_session.headers['x-api-key'] == session_api_key 104 | --------------------------------------------------------------------------------