Skip to content

aeonSolutions/OpenScience-Dataverse-API-C-library

Repository files navigation

Donate Say Thanks trackgit-views

Navigation | AeonLabs Main Index >> Main Page - Open Source Code Software >> Dataverse API C library

Goto Open Science Research   Last update 24-09-2024
Change Language

CodeFactor Dataverse API C++ library

current project Total: > 300 work.h
current version: 0.5

I start working again on this project later this year in 2024. In the meantime looking for sponsors to pay for the required work necessary for the successful completion of this project.

I have also available here, on Github, a C++ library for the GitHub API (data repository). To view it click here.

This is a C++-based library intended for embedded firmware development, however, it can be easily ported and made compatible with any platform or operating system. see the WIKI for more information.


The Dataverse Project is an open-source web application to share, preserve, cite, explore, and analyze research data. It facilitates making data available to others and allows you to replicate others' work more easily. Researchers, journals, data authors, publishers, data distributors, and affiliated institutions all receive academic credit and web visibility. Funded by Harvard University and Powered by Open Scholar.

The Official Dataverse chat
Dataverse Chat on Matrix


Test the API
There's a test code .ino file available for Arduino-compatible microcontrollers, such as EspressIF's ESP32, to test connectivity with a dataverse API. Link to the code:
https://github.com/aeonSolutions/Aeonlabs-Arduino_Hardware_Test_Code/tree/main/dataverse_api_test_upload

Dataverse API in another coding language

Goto dataverse.org for another coding language that best suits your coding style and needs. Currently, there are client libraries for Python, Javascript, R, Java, and Julia that can be used to develop against Dataverse Software APIs

https://guides.dataverse.org/en/5.12/api/client-libraries.html


Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/aeonSolutions/OpenScience-Dataverse-API-C-library. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct. Don't forget to read AeonLabs's Wiki before using any code or electronics available here on Github. Thank you.


Coding standards

Please make sure tests pass before committing, and to add new tests for new additions.


Instalation & usage

To learn how to install and use this library, go to the wiki page here or by clicking on the top menu.

There's an ongoing research project to develop a "Proof of Concept of a Smart DAQ Device able to Upload Live Experimental Sensor Data to a Data Repository with a Unique Data Fingerprint" that discusses an innovative proof-of-concept method for management of collected experimental data in real-time and compatible with any open environment. The proposed proof-of-concept smart DAQ device has the minimum hardware characteristics to handle data measurements collection from sensors locally connected to it, store it on a local CSV or SQLite database file and finally connect and synchronize data measurements collected with a data repository hosted remotely on a Dataverse.


For more general information

Email Dataverse.org with software installation questions. Please note, that response time is generally 24 business hours. Follow Dataverse.org on Twitter: @dataverseorg


For developers and Dataverse Repositories

Report issues and contribute to dataverse.org's code: Report bugs and add feature requests in GitHub Issues or use GitHub pull requests, if you have some code, scripts or documentation that you'd like to share. If you have a security issue to report, please email [email protected].

Ask a question or start a discussion: A great place to publicly share feedback, ideas, feature requests, and troubleshoot any issues is in the Dataverse Users Community.

Join #dataverse on chat.dataverse.org to chat with the Dataverse community in real-time, or leave a message that will be logged at https://view.matrix.org/alias/%23dataverse:matrix.org

The Official Dataverse chat
Dataverse Chat on Matrix


Academic Credit & Best Practices

By depositing data into a Dataverse repository, which can be customized or embedded into a website with Dataverse.org's Theme + Widgets feature, researchers make their datasets more discoverable to the scientific community. Widgets are available at the Dataverse collection and dataset level and can be embedded in any website to help others find a scholar's datasets more easily.

By increasing research data's visibility with the Dataverse Project, researchers can get recognition and proper academic credit for their scholarly work through a data citation. These citations also help ensure that when research data is published, funder and publisher requirements are met, and data is reused by other scholars, replicated for verification, and tracked to measure usage and impact over time, which can help fund future research.

A data citation in a Dataverse repository has seven components:

  • author name(s)
  • year (date published in the Dataverse repository)
  • title
  • global persistent identifier: DOI or Handle
  • publisher (repository that published the dataset)
  • version number
  • universal numerical fingerprint (UNF): for tabular data

Here is an example of a replication data citation from Political Analysis, Hanmer, Banks, and White, 2013:

Hanmer, Michael J.; Banks, Antoine J., White, Ismail K., 2013, "Replication data for: Experiments to Reduce the Over-reporting of Voting: A Pipeline to the Truth", doi:10.7910/DVN/22893, Harvard Dataverse, V2, UNF:5:eJOVAjDU0E0jzSQ2bRCg9g==

See more detailed information about the Dataverse Project's Data Citation Standard.


Library API Implementation Progress


Wiki? Endpoint URL Implemented? Notes
Dataverses POST 'api/dataverses/$id' Y -
- GET api/dataverses/$id Y -
- GET api/dataverses/$id/contents Y -
- - DELETE api/dataverses/$id N -
- - POST api/dataverses/$id/datasets N -
- - POST api/dataverses/$identifier/actions/:publish N -
Datasets GET api/datasets/$id/versions Y -
- GET /api/datasets/$id/locks Y -
- - DELETE api/datasets/$id N -
- - POST api/dataverses/$id N -
- GET PUT api/datasets/$id/versions/:draft? Y -
- - POST PUT api/datasets/$id/actions/:publish?type=$type N -
MetadataBlocks GET api/metadatablocks Y -
- GET api/metadatablocks/$identifier Y -
Upload file POST /api/datasets/:persistentId/add?persistentId= Y Add a file to a dataset


Author

You can get in touch with me on my LinkedIn Profile:

Miguel Tomas

LinkedIn Link

You can also follow my GitHub Profile to stay updated about my latest projects: GitHub Follow


Be supportive of my dedication and work towards technology education and buy me a cup of coffee

The PCB Design Files I provide here for anyone to use are free. If you like this Smart Device or use it, please consider buying me a cup of coffee, a slice of pizza or a book to help me study, eat and think new PCB design files.



License

Before proceeding to download any of AeonLab's open-source code for software solutions and/or open hardware electronics for smart devices and data acquisition make sure you are choosing the right license for your project. See AeonLabs Solutions for Open Hardware & Open Source Code for more information. For commercial business solutions contact AeonLabs ℹ️ using the contacts above. Thank you 🙏.

About

This is a C++ library for the Dataverse API compatible with Arduino and ESP32 microcontrollers

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages