{"id":898,"date":"2020-11-30T19:55:08","date_gmt":"2020-11-30T19:55:08","guid":{"rendered":"https:\/\/smartdatamodels.org\/?page_id=898"},"modified":"2025-01-09T14:53:45","modified_gmt":"2025-01-09T13:53:45","slug":"data-models-contribution-api","status":"publish","type":"page","link":"https:\/\/smartdatamodels.org\/index.php\/data-models-contribution-api\/","title":{"rendered":"Data Models Contribution API"},"content":{"rendered":"<h2>FULL TEST: Check the whole data model repository<\/h2>\n<p>Instructions after the form<\/p>\n\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f8707-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"8707\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/index.php\/wp-json\/wp\/v2\/pages\/898#wpcf7-f8707-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"8707\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f8707-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7cf_hidden_group_fields\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_hidden_groups\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_visible_groups\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_repeaters\" value=\"[]\" \/><input type=\"hidden\" name=\"_wpcf7cf_steps\" value=\"{}\" \/><input type=\"hidden\" name=\"_wpcf7cf_options\" value=\"{&quot;form_id&quot;:8707,&quot;conditions&quot;:[],&quot;settings&quot;:{&quot;animation&quot;:&quot;yes&quot;,&quot;animation_intime&quot;:&quot;200&quot;,&quot;animation_outtime&quot;:&quot;200&quot;,&quot;conditions_ui&quot;:&quot;normal&quot;,&quot;notice_dismissed&quot;:&quot;true&quot;,&quot;notice_dismissed_rollback-cf7-5.9.4&quot;:true,&quot;notice_dismissed_rollback-cf7-5.9.5&quot;:true,&quot;notice_dismissed_rollback-cf7-6.1.4&quot;:true}}\" \/><input type=\"hidden\" name=\"redirect_nonce\" value=\"e5b29da8bd\" \/><input type=\"hidden\" name=\"wpcf7cfpdf_hidden_name\" value=\"document-pdf\" \/><input type=\"hidden\" name=\"wpcf7cfpdf_hidden_reference\" value=\"d3206de5\" \/><input type=\"hidden\" name=\"wpcf7cfpdf_hidden_date\" value=\"04112026\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<style>\n.wpcf7-form {\n background-color: #ffffff;\n border: 3px solid #000000;\n box-shadow: 0px 9px 21px 6px rgba(0,0,0,0.5);\n padding: 2em;\n overflow: none !important;\n}\n\n.wpcf7-form .wpcf7-text,\n.wpcf7-form .wpcf7-textarea {\n background-color: transparent;\n border-bottom: 1px solid #001;\n border-top: 1px solid transparent;\n border-left: 1px solid transparent;\n border-right: 1px solid transparent;\n margin-bottom: 40px;\n outline: none;\n transition: 0.4s border;\n}\n\n.wpcf7-form-control[type=\"text\"] {\n max-length: none !important;\n}\n\n.wpcf7-form .wpcf7-text:focus,\n.wpcf7-form .wpcf7-textarea:focus,\n.wpcf7-form .wpcf7-text:hover,\n.wpcf7-form .wpcf7-textarea:hover {\n border: 1px dashed #001;\n}\n<\/style>\n<div class=\"divTable\" style=\"border: 0px solid #000;\">\n\t<div class=\"divTableBody\">\n\t\t<div class=\"divTableRow\">\n\t\t\t<div >\n\t\t\t\t<p>This form validates a submission of a data model and provides feedback in case is not compliant with the <a href=\"https:\/\/smartdatamodels.org\/index.php\/coding-data-models\/\" target = \"_blank\">guidelines<\/a> and the <a href =\"https:\/\/docs.google.com\/presentation\/d\/e\/2PACX-1vTs-Ng5dIAwkg91oTTUdt8ua7woBXhPnwavZ0FxgR8BsAI_Ek3C5q97Nd94HS8KhP-r_quD4H0fgyt3\/pub?start=false&loop=false&delayms=3000#slide=id.p1\" target = \"_blank\">contribution manual<\/a> and also whether the properties are already used in other data models\n\t\t\t\t<\/p>\n\t\t\t\t<p><label> URL (Url of the Github repository, such as <a href=\"https:\/\/github.com\/smart-data-models\/dataModel.DataQuality\/tree\/master\/DataQualityAssessment\" target = \"_blank\">https:\/\/github.com\/smart-data-models\/dataModel.DataQuality\/tree\/master\/DataQualityAssessment<\/a>)<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"datamodelRepoUrl\"><input size=\"40\" maxlength=\"240\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"datamodelRepoUrl\" \/><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"divTableCell\">\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"divTableRow\">\n\t\t\t<div class=\"divTableCell\">\n\t\t\t\t<p><label> MAIL (We use your mail for providing feedback on your submission).<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" value=\"\" type=\"email\" name=\"email\" \/><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"divTableCell\">\n\t\t\t\t<p>TESTS TO PERFORM (Choose one test and the tests that are depend on it will also be tested. Full check by default).<br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"testnumber\"><span class=\"wpcf7-form-control wpcf7-radio\"><span class=\"wpcf7-list-item first\"><label><input type=\"radio\" name=\"testnumber\" value=\"Full check\" checked=\"checked\" \/><span class=\"wpcf7-list-item-label\">Full check<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"radio\" name=\"testnumber\" value=\"File structure check\" \/><span class=\"wpcf7-list-item-label\">File structure check<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"radio\" name=\"testnumber\" value=\"Schema is properly documented\" \/><span class=\"wpcf7-list-item-label\">Schema is properly documented<\/span><\/label><\/span><span class=\"wpcf7-list-item\"><label><input type=\"radio\" name=\"testnumber\" value=\"Examples check\" \/><span class=\"wpcf7-list-item-label\">Examples check<\/span><\/label><\/span><span class=\"wpcf7-list-item last\"><label><input type=\"radio\" name=\"testnumber\" value=\"Other files check\" \/><span class=\"wpcf7-list-item-label\">Other files check<\/span><\/label><\/span><\/span><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"divTableRow\">\n\t\t\t<div class=\"divTableCell\">\n\t\t\t\t<p>OUTPUT FORMAT\n\t\t\t\t<\/p>\n\t\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"yamlOutput\"><span class=\"wpcf7-form-control wpcf7-radio\"><span class=\"wpcf7-list-item first\"><label><input type=\"radio\" name=\"yamlOutput\" value=\"Json\" checked=\"checked\" \/><span class=\"wpcf7-list-item-label\">Json<\/span><\/label><\/span><span class=\"wpcf7-list-item last\"><label><input type=\"radio\" name=\"yamlOutput\" value=\"Yaml\" \/><span class=\"wpcf7-list-item-label\">Yaml<\/span><\/label><\/span><\/span><\/span>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t\t<div class=\"divTableCell\">\n\t\t\t\t<p>&nbsp;\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n<p><span class=\"wpcf7-form-control-wrap wpgdprc\"><span class=\"wpcf7-form-control wpcf7-wpgdprc wpcf7-validates-as-required\"><span class=\"wpcf7-list-item\"><input type=\"checkbox\" name=\"wpgdprc\" value=\"1\" aria-required=\"true\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">By using this form you agree with the storage and handling of your data by this website.<\/span><\/span><\/span>    <\/span><br \/>\n<input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Submit\" \/><br \/>\nAfter clicking it will appear a message confirming the submission\n<\/p>\n<p>It will take an instant to redirect to the results\n<\/p><p style=\"display: none !important;\" class=\"akismet-fields-container\" data-prefix=\"_wpcf7_ak_\"><label>&#916;<textarea name=\"_wpcf7_ak_hp_textarea\" cols=\"45\" rows=\"8\" maxlength=\"100\"><\/textarea><\/label><input type=\"hidden\" id=\"ak_js_1\" name=\"_wpcf7_ak_js\" value=\"99\"\/><script>document.getElementById( \"ak_js_1\" ).setAttribute( \"value\", ( new Date() ).getTime() );<\/script><\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n\n<p><strong>Parameters<\/strong>: (Mandatories)<\/p>\n<ul>\n<li>datamodelRepoUrl: The link to the data model repository repository on github (see example)<\/li>\n<li>mail: your mail<\/li>\n<li>testnumber: different tests you can choose from based on your need. Some tests depend on the others\n<ul>\n<li>File structure check: to check the file structure of the repository, such as whether the url given is reachable, whether the least required files are in the repository (schema.json file and one jsonld example under examples folder)<\/li>\n<li>Schema is properly documented: to check the validation and content in schema.json file<\/li>\n<li>Examples check: to check the validation and content of files under the examples folder (Currently only example.json and example-normalized.json file supported)<\/li>\n<li>Other files check: to check the validation and content of other files, such as notes.yaml and ADOPTERS.yaml<\/li>\n<li>Full check: to do the full checks above, by default and better not to change<\/li>\n<\/ul>\n<\/li>\n<li>yamlOutput: True \/ False<\/li>\n<\/ul>\n<p><strong>Output<\/strong>:<\/p>\n<p>It will output the message under the processing of check; detailed information are stored in the json file, which is reachable by clicking the link.<\/p>\n<p>Real time message will be displayed when the specific check is before, during, after the process. You can find the errors or suggestions followed by each check if there&#8217;s any. Once the program is done, there is the statistic about the full check like &#8220;4 tests needed to run, 3 passed, 1 failed, 0 left&#8221;.<\/p>\n<p>A json\/yaml payload for schema.json check has 4 sections as below:<\/p>\n<p><em><span class=\"treeLabel objectLabel\" aria-labelledby=\"default\" data-level=\"0\">documentationStatusOfProperties <\/span><\/em><span class=\"treeLabel objectLabel\" aria-labelledby=\"default\" data-level=\"0\">(report of the individual status of the property description)<br \/>\n<\/span><\/p>\n<ul>\n<li>x-ngsi: Boolean. Describes if the description contains property, relationship or geoproperty in the description.<\/li>\n<li>x-ngsi_text: Text. Further explanations about x-ngsi value.<\/li>\n<li>documented: Boolean. If the description of the property reaches 15 chars.<\/li>\n<li>text: Text. complementary information about the documentation (it could be either incomplete or nonexisting)<\/li>\n<\/ul>\n<p><em><span class=\"treeLabel stringLabel\" aria-labelledby=\"default\" data-level=\"0\">schemaDiagnose <\/span><\/em><span class=\"treeLabel stringLabel\" aria-labelledby=\"default\" data-level=\"0\">(Global diagnose, needs to be zero wrong to get data model accepted)<br \/>\n<\/span><\/p>\n<ul>\n<li>summary of how well documented are the properties<\/li>\n<\/ul>\n<p><span class=\"treeLabel objectLabel\" aria-labelledby=\"default\" data-level=\"0\">alreadyUsedProperties<br \/>\n<\/span><\/p>\n<ul>\n<li>Properties used in other data models<\/li>\n<\/ul>\n<p><span class=\"treeLabel objectLabel\" aria-labelledby=\"default\" data-level=\"0\">availableProperties<\/span><\/p>\n<ul>\n<li>Properties never used in the initiative<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FULL TEST: Check the whole data model repository Instructions after the form Parameters: (Mandatories) datamodelRepoUrl: The link to the data model repository repository on github (see example) mail: your mail testnumber: different tests you can choose from based on your need. Some tests depend on the others File structure check:&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/smartdatamodels.org\/index.php\/data-models-contribution-api\/\">More&#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-898","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":12420,"url":"https:\/\/smartdatamodels.org\/index.php\/test-your-data-model\/","url_meta":{"origin":898,"position":0},"title":"Test your data model","author":"maestro","date":"24\/01\/2025","format":false,"excerpt":"FULL TEST: Check the whole data model repository Instructions after the form Parameters: (Mandatories) datamodelRepoUrl: The link to the data model repository repository on github (see example) If you want all reported tests passed or just the errors mail: your mail (you'll receive a mail with Output: It will return\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1221,"url":"https:\/\/smartdatamodels.org\/index.php\/procedure-for-adding-new-data-model\/","url_meta":{"origin":898,"position":1},"title":"Procedure for adding new data model","author":"maestro","date":"02\/01\/2021","format":false,"excerpt":"Supposedly the data model meets the contribution manual requirements these steps should be taken If there is to create new subject warn these points: Rename 'main' branch to 'master' Check that the page for the repo is published. It could take to github up to 5 minutes since you enable\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2735,"url":"https:\/\/smartdatamodels.org\/index.php\/new-incubated-data-models\/","url_meta":{"origin":898,"position":2},"title":"New incubated data models","author":"maestro","date":"23\/06\/2021","format":false,"excerpt":"If you want to contribute to any existing data model just make a Pull Request on its repository with your changes (minimum: On the schema.json and in one of the examples) If you want to contribute to a new data model you have to fill out the form below (we\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":126,"url":"https:\/\/smartdatamodels.org\/index.php\/coding-data-models\/","url_meta":{"origin":898,"position":3},"title":"Check the whole data model repository","author":"maestro","date":"17\/03\/2020","format":false,"excerpt":"The data models are composed of: Manually contributed Json schema describing the technical properties of the model and their descriptions Some examples in JSON and JSON-LD (example.json, example.jsonld, example-normalized.json and example-normalized.json) Optional Manually contributed: The authors (CONTRIBUTORS.yaml) Manually contributed: Current adopters of the data model (ADOPTERS.yaml) Manually contributed: Customization of\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10256,"url":"https:\/\/smartdatamodels.org\/index.php\/procedure-to-create-a-new-version-of-the-pysmartdata-models-package\/","url_meta":{"origin":898,"position":4},"title":"Procedure to create a new version of the pysmartdata models package","author":"maestro","date":"30\/01\/2024","format":false,"excerpt":"1.- Take the code from utils repository 1.1.- Find out the code in the repository https:\/\/github.com\/smart-data-models\/data-models\/tree\/master\/pysmartdatamodels The dist folder is not necessary 2.- Create a test version and test there 2.1.- Update the model-assets files (smartdatamodels.json (descriptors of the properties, located here, more than 90 Mb), official_list_of_data_models.json (Official list located\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/smartdatamodels.org\/wp-content\/uploads\/2024\/01\/pysmartdatamodels_code.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":10282,"url":"https:\/\/smartdatamodels.org\/index.php\/procedure-to-extend-pysmartdatamodels-package\/","url_meta":{"origin":898,"position":5},"title":"Procedure to extend pysmartdatamodels package","author":"maestro","date":"25\/02\/2024","format":false,"excerpt":"A: Create a version in the test.pypi.org A.1: Create the new function A.2: Add a test in .\/test\/test_pysmartdatamodels.py. A.3: Add the entry in the changes_log.md A.4: Modify the README.md A.4.1: Modify the README.md including an example of code A.4.2: Modify the README.md including the explanation of the new function in\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/pages\/898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/comments?post=898"}],"version-history":[{"count":18,"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/pages\/898\/revisions"}],"predecessor-version":[{"id":12138,"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/pages\/898\/revisions\/12138"}],"wp:attachment":[{"href":"https:\/\/smartdatamodels.org\/index.php\/wp-json\/wp\/v2\/media?parent=898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}