{"id":13790770,"url":"https://github.com/proycon/codemeta-server","last_synced_at":"2025-04-23T04:43:27.112Z","repository":{"id":57680233,"uuid":"474048353","full_name":"proycon/codemeta-server","owner":"proycon","description":"Server for codemeta, in memory triple store, SPARQL endpoint and simple web-based visualisation for end-user","archived":false,"fork":false,"pushed_at":"2025-03-10T12:37:35.000Z","size":1963,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-22T10:21:09.827Z","etag":null,"topics":["codemeta","json-ld","schema-org","software-metadata"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/proycon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null}},"created_at":"2022-03-25T14:45:09.000Z","updated_at":"2025-03-10T12:36:57.000Z","dependencies_parsed_at":"2025-03-07T13:21:28.084Z","dependency_job_id":"434d073d-93fc-4535-8796-15b93e190f7d","html_url":"https://github.com/proycon/codemeta-server","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proycon%2Fcodemeta-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proycon%2Fcodemeta-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proycon%2Fcodemeta-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/proycon%2Fcodemeta-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/proycon","download_url":"https://codeload.github.com/proycon/codemeta-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250372920,"owners_count":21419722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codemeta","json-ld","schema-org","software-metadata"],"created_at":"2024-08-03T22:00:51.071Z","updated_at":"2025-04-23T04:43:27.092Z","avatar_url":"https://github.com/proycon.png","language":"Python","funding_links":[],"categories":["By organization"],"sub_categories":[],"readme":"[![Project Status: Active -- The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![Latest release in the Python Package Index](https://img.shields.io/pypi/v/codemeta-server)](https://pypi.org/project/codemeta-server/)\n\n# Codemeta Server\n\nCodemeta server provides a simple portal to software tools, based on software\nmetadata in [codemeta](https://codemeta.github.io) and\n[schema.org](https://schema.org). It is implemented as an in-memory RDF triple\nstore and provides an API (including SPARQL endpoint) for querying. It builds\nupon the [codemeta2html](http://github.com/proycon/codemeta2html) and\n[codemetapy](http://github.com/proycon/codemetapy) libraries, which implement\nmost of the functionality. Automatic harvesting of software metadata can be\naccomplished via\n[codemeta-harvester](https://github.com/proycon/codemeta-harvester).\n\n**Note:** If you want a static site instead of a triple-store backed web application, then \nyou dont need codemeta-server and can just use [codemeta2html](http://github.com/proycon/codemeta2html).\n\nFeatures:\n\n* Web-user interface for end-users (i.e. everything from [codemeta2html](http://github.com/proycon/codemeta2html)):\n    * rich [RDFa](https://www.w3.org/TR/rdfa-primer/) data (codemeta/schema.org/etc) embedded in the HTML,\n      expressing as much of the input linked data as possible. This means though we visualise for humans, we do \n      not sacrifice on machine parsability and semantic interpretability.\n    * index pages (card view \u0026 table view)\n    * one dedicated page per software source project\n    * client-side filtering (faceted search) capabilities\n    * direct access to the underlying JSON-LD and Turtle serialisations per source project and for the complete data graph as a whole\n    * responsive layout suitable for different devices and screen-sizes\n    * Integrates some badges (aka shields) like for GitHub, Repostatus\n    * minimal amount of external web calls (only for github/gitlab badges and for external resources references directly by the software metadata itself)\n    * minimal client-side javascript, also usable without (except for filtering)\n* Simple server-side search/query facilities\n* Advanced query facilities using SPARQL:\n    * SPARQL endpoint\n    * [YASGUI](https://github.com/TriplyDB/YASGUI) front-end for end-users.\n* JSON-LD and turtle serialisations for all data, full support for content negotiation\n* Supports various extensions to codemeta:\n    * [Software Types and Services](https://github.com/proycon/codemetapy#software-types-and-services)\n\nThis software is developed in the scope of the [CLARIAH-PLUS project](https://clariah.nl), a\n`Dockerfile`  for the CLARIAH Tool Discovery pipeline, including both the\nharvester and this server and API powering the CLARIAH Tool Store, can be found\nhere: https://github.com/CLARIAH/tool-discovery .\n\n## Installation\n\n`pip install codemeta-server`\n\n## Usage\n\nIn development scenarios, you can run `codemeta-server` as follows:\n`\ncodemeta-server --graph data.json --baseuri http://localhost:8080/ --baseurl http://localhost:8080/ --port 8080\n`\nCheck ``codemeta-server --help`` for help on all the options.\n\nThe file `data.json` is produced by [codemetapy](https://github.com/proycon/codemetapy) (possibly via [codemeta-harvester](https://github.com/proycon/codemeta-harvester) and contains the full linked data graph of all tools you want to show.\nSay you have ``codemeta.json`` files for  two resources, then you can use codemetapy to create a graph as follows:\n\n``\ncodemetapy --baseuri http://localhost:8080/ --graph resource1.codemeta.json resource2.codemeta.json \u003e data.json\n``\n\nIf you have no codemeta files at all yet, then still you can use codemetapy (via\n[codemeta-harvester](https://github.com/proycon/codemeta-harvester) to automatically extract metadata from other known schemas.\n\nFor production scenarios, you'll want to run codemeta-server via WSGI/ASGI, check the Dockerfile in https://github.com/CLARIAH/tool-discovery .\n\n## Screenshots\n\nExcerpt of a tool index in the default 'card' view:\n\n![Index - card view](screenshot_index_cards.jpg)\n\nExcerpt of a tool index in the table view:\n\n![Index - table view](screenshot_index_table.jpg)\n\nAn example page for a specific tool:\n\n![Tool page](screenshot_page.jpg)\n\nThe SPARQL frontend (Yasgui):\n\n![SPARQL frontend](screenshot_sparql.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproycon%2Fcodemeta-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproycon%2Fcodemeta-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproycon%2Fcodemeta-server/lists"}