incf-nidash / nidm-specs

Neuroimaging Data Model (NIDM): describing neuroimaging data and provenance
nidm.nidash.org
Other
33 stars 30 forks source link

Should prov:Agent have any child terms? #433

Closed khelm closed 6 years ago

khelm commented 6 years ago

This originates from a discussion with @cmaumet and @smpadhy. In prov, it's possible for a prov:agent to be either a prov:entity or a prov:activity. This means that certain terms could appear in two parts of the graph, which creates difficulties. One proposal is to give prov:agent no child terms, but to treat prov:agent as more of a specialization of a role that carries responsibility in a certain activity.

satra commented 6 years ago

@khelm - i'm going to clarify the description as:

it's possible for a prov:agent to also be either a prov:entity or a prov:activity.

it's still a single node that has two types. i think that's still fine from a graph perspective. although i missed the call, it would be helpful to clarify what the difficulties would be.

cmaumet commented 6 years ago

Hi @satra! I think @khelm means the graph of the ontology not the one of the provenance document itself.

satra commented 6 years ago

@cmaumet - but many ontologies have classes that subclass from multiple items.

as examples: in prov itself: https://www.w3.org/TR/2013/REC-prov-o-20130430/#Usage in stato:

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

obo:CL_0000578 a owl:Class ;
    rdfs:label "experimentally modified cell in vitro"^^xsd:string ;
    obo:IAO_0000111 "experimentally modified cell in vitro"^^xsd:string ;
    obo:IAO_0000115 "A cell in vitro that has undergone physical changes as a consequence of a deliberate and specific experimental procedure."^^xsd:string ;
    obo:IAO_0000412 obo:cl.owl,
        obo:obi.owl ;
    obo:OBI_0000312 obo:OBI_0000094 ;
    rdfs:subClassOf [ a owl:Restriction ;
            owl:onProperty obo:OBI_0000312 ;
            owl:someValuesFrom obo:OBI_0000094 ],
        obo:CL_0000000,
        obo:OBI_0000047 .
khelm commented 6 years ago

@satra - that's true, there are ontologies that allow multiple parents and the child inherits all of the relationships of the parent terms. I think there are two issues here: 1) allowing multiple parents makes things more complicated since each graph path then has to be carefully examined for logical inconsistencies (not that we wouldn't do that anyway).

But more importantly 2) A thing is characterized as an prov:agent when describing a specific prov:activity. A thing is not inherently an prov:agent.

satra commented 6 years ago

@khelm: i think 1 is a necessary part of knowledge representation (kr). if things were trees it would be very limiting for kr. in fact one of the limiting pieces of graphs is their discrete nature. one can easily imagine something being more like a than b, or most often a than b, thus having more qualifiers, but in the semantic realm one would define a class that describes this shapeshifting relationship (or probabilistic/fuzzy nature) and then something inherits from this class.

2) A thing is characterized as an prov:agent when describing a specific prov:activity. A thing is not inherently an prov:agent.

yes. for something to be a prov:agent it needs to bear responsibility. as an example, nidm:fsl can be a subclass of nidm:software which is a subclass of prov:entity, but can also be an agent when a prov document is written. in an ontology, i don't expect something to be a prov:agent unless that entity or activity always bears responsibility for an activity. most things don't always bear a specific responsibility. thus the agency would come from the prov document or following prov rather than in nidm.owl.

the owl file could create a constraint saying that something that is a nidm:software could also be a prov:agent. but i don't think that is necessary at the level of nidm presently.

such agency would be resolved on the basis of prov-related queries.

khelm commented 6 years ago

@satra: regarding multiple parents - I agree that the single-parent rule is limiting for KR. In this case, it's not really a concern since the terms would just sit under prov:agent so there isn't all that much logic to be inherited.
Regarding agents - yes, that's the issue, no thing is always just a prov:agent and bears specific responsibility so that's why I was thinking that we shouldn't have any child terms of prov:agent. I don't think it's necessary for there to be anything in the ontology that says that this specific prov:entity can also be a prov:agent since there are no restrictions on which entities could be agents and therefore we would have to make that assertion for every thing.

satra commented 6 years ago

@khelm - i agree that we should not derive from prov:agent in nidm experiment.

khelm commented 6 years ago

ok, thanks!