vivo-project / VIVO

VIVO is an extensible semantic web application for research discovery and showcasing scholarly work
http://vivoweb.org
BSD 3-Clause "New" or "Revised" License
205 stars 129 forks source link

The Dynamic API ontology #3617

Open chenejac opened 2 years ago

chenejac commented 2 years ago

Is your feature request related to a problem? Please describe. The dynamic API ontology should simplify definition of custom action invoked from the custom entry forms. Therefore, this ontology should be part of solution which will enable easy customization of a VIVO instance.

Describe the solution you'd like Proposed list of entities:

Tasks

Additional context The draft version of the ontology available at https://github.com/vivo-project/Vitro/blob/sprint-dynapi-2022-feb/home/src/main/resources/rdf/tbox/filegraph/vitro-dynamic-api.owl

The draft version of the individuals available at https://github.com/vivo-project/Vitro/blob/sprint-dynapi-2022-feb/home/src/main/resources/rdf/abox/filegraph/dynamic-api-individuals.n3

chenejac commented 2 years ago

Are type and cardinality defined as properties of Parameter? If we define that some Parameter type is a person instance, should we enable definition of SPARQLQuery for getting a subset of all persons from database (e.g. just from some institution). This certain case may be better to define in Validator assigned to a Parameter (through the hasValidator property).

Should the Validator class include hasSHACLCoreRule and hasSHACLSPARQLRule properties? Not sure SHACL notation is the best for the on the fly validation of the data provided by VIVO users. If someone has an example of this, please provide in the comments below. Anyway, we need some notation for defining validation rules for provided data from the custom entry forms. Otherwise, we will need to create a lot of subclasses of Validator Java class for any validation, and it is not scalable for VIVO users who are not Java developers.

chenejac commented 2 years ago

We should consider adding heading and description data properties in the Action class. It might be useful in generic user interface for custom entry forms. Also, multilingual error message (if validation failed) might be useful. Probably the hasErrorMessage data property should be added to the Validator class. Can someone envision some use case when validation success message is also useful? If it is added in the ontology it should be also added in the https://github.com/vivo-project/VIVO/issues/3619.