Server for codemeta, in memory triple store, SPARQL endpoint and simple web-based visualisation for end-user
GPL-3.0 License
Codemeta server provides a simple portal to software tools, based on software metadata in codemeta and schema.org. It is implemented as an in-memory RDF triple store and provides an API (including SPARQL endpoint) for querying. It builds upon the codemeta2html and codemetapy libraries, which implement most of the functionality. Automatic harvesting of software metadata can be accomplished via codemeta-harvester.
Note: If you want a static site instead of a triple-store backed web application, then you dont need codemeta-server and can just use codemeta2html.
Features:
This software is developed in the scope of the CLARIAH-PLUS project, a
Dockerfile
for the CLARIAH Tool Discovery pipeline, including both the
harvester and this server and API powering the CLARIAH Tool Store, can be found
here: https://github.com/CLARIAH/tool-discovery .
pip install codemeta-server
In development scenarios, you can run codemeta-server
as follows:
codemeta-server --graph data.json --baseuri http://localhost:8080/ --baseurl http://localhost:8080/ --port 8080
Check codemeta-server --help
for help on all the options.
The file data.json
is produced by codemetapy (possibly via codemeta-harvester and contains the full linked data graph of all tools you want to show.
Say you have codemeta.json
files for two resources, then you can use codemetapy to create a graph as follows:
codemetapy --baseuri http://localhost:8080/ --graph resource1.codemeta.json resource2.codemeta.json > data.json
If you have no codemeta files at all yet, then still you can use codemetapy (via codemeta-harvester to automatically extract metadata from other known schemas.
For production scenarios, you'll want to run codemeta-server via WSGI/ASGI, check the Dockerfile in https://github.com/CLARIAH/tool-discovery .
Excerpt of a tool index in the default 'card' view:
Excerpt of a tool index in the table view:
An example page for a specific tool:
The SPARQL frontend (Yasgui):