- From: Chris Mungall <cjmungall@lbl.gov>
- Date: Tue, 28 Nov 2017 19:12:29 -0800
- To: Graham Klyne <gk@ninebynine.org>
- Cc: semantic-web <semantic-web@w3.org>
- Message-ID: <CAN9Aift1vGWYPOo4dwYFsZjLrTe9ixwDb+UHBw0UMbLJnma_uQ@mail.gmail.com>
Thanks for reminding me about SWO - it has an activity branch that could serve as an additional root class as well as PROV. The SWO authors happen to know a few things about my use case as well. Point taken about there being some flexibility in pushing the semantics towards the agent/algorithm vs the activity. It seems most natural to place under activity in this particular case. On Tue, Nov 28, 2017 at 8:51 AM, Graham Klyne <gk@ninebynine.org> wrote: > I now realize I misread your original reference to "software agents". > Sorry for the noise there > > I've certainly used modelling patterns that subclass prov:Activity in some > of my work. I don't know if that's a "standard" pattern, but it seems > reasonable to me in some situations. I'm not aware of any specific > hierarchies based on prov:Activity of the kind you ask about. > > However, there are ontologies out there that incorporate process > descriptions that could also be considered as instances of prov:Activity - > e.g. I've done some work that declares instances of CIDOC CRM "E7_Activity" > (http://www.cidoc-crm.org/Entity/e7-activity/version-6.2) that are also > instances of prov:Activity (I realize this isn't what you're asking for). > I imagine there could be some workflow-related vocabularies that might be > closer - e.g. this relating to Taverna: http://www.essepuntato.it/lode > /http://ns.taverna.org.uk/2010/scufl2 - though that is maybe too > low-level for your requirements. Googling for "scientific workflow > ontology" turns up a number of options. > > But your example seems to focus more on the kind of algorithm that is > implemented by an activity, which leads me back to thinking about the > software agent that controls it. Googling for "scientific software > ontology" throws up a few options, and this in particular caught my eye: > https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4098953/ ("The Software > Ontology"). I'd contemplate using a single prov:Activity type, but in each > case qualifying it via prov:wasAssociatedWith with an agent that includes a > fuller description of the software algorithms implemented - that way could > use existing software system categorizations. > > HTH. > > #g > -- > > > > On 25/11/2017 18:46, Chris Mungall wrote: > >> >> I had anticipated using prov:wasAssociatedWith, and not creating any new >> properties. The gap to be filled is on the side of subclasses of >> prov:Activity, >> for representing operations specific to ontology processing. >> >> Assuming such an ontology, does this rough sketch seem like a standard >> pattern? >> Is there a good analogous set of design patterns to follow (e.g. software >> compilation, scientific workflows)? >> >> ``` >> @prefix prov: <http://www.w3.org/ns/prov#> . >> @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . >> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> @prefix owl: <http://www.w3.org/2002/07/owl#> . >> @prefix obo: <http://purl.obolibrary.org/obo/> . >> @prefix opera: >> <http://example.org/OntologyProcessingExtractionReasoningOntology/> . >> >> ## Ontology header >> obo:foo.owl a owl:Ontology ; >> dc:title "..." ; >> prov:wasDerivedFrom obo:foo/foo-edit.owl ; >> prov:wasGeneratedBy obo:foo/op1 ; ## see below >> prov:wasAttributedTo obo:foo/editors ; >> ... >> >> ## Ontology provenance >> obo:foo/op1 a opera:ReasonOperation ; >> prov:used obo:foo/foo-edit.owl ; ## 'source code' >> prov:wasInformedBy <configuration??> ## what to use here? >> prov:startedAtTime "..." ; >> prov:endedAtTime "..." ; >> prov:wasAssociatedWith <github/mavenOrGithubIRIforROBOTversion??> ; >> >> ## Ontology below >> obo:FOO_0000001 a owl:Class ; >> ... >> ``` >> >> >> On 25 Nov 2017, at 0:29, Graham Klyne wrote: >> >> Is there any reason that http://www.w3.org/TR/prov-o/#wasAssociatedWith >>> doesn't work for you? >>> >>> My recollection of PROV discussions is that involvement of human, >>> software and >>> other agents in an activity was intended to be captured using this (or >>> qualifiedAssociation structures - cf. >>> http://www.w3.org/TR/prov-o/#qualifiedAssociation). >>> >>> (IIRC, the "qualifiedAssociation" and similar structures -- >>> http://www.w3.org/TR/prov-o/#description-qualified-terms -- were >>> introduced to >>> avoid application-dependent (not a priori defined) sub-properties, which >>> would >>> break OWL-QL compatibility of PROV, with attendant reasoning performance >>> challenges.) >>> >>> #g >>> -- >>> >>> On 24/11/2017 22:15, Chris Mungall wrote: >>> >>>> Many ontologies such as those in the life-sciences have complex >>>> multi-step >>>> release pipelines: for example, using an OWL reasoner to assert direct >>>> inferred >>>> subClassOf axioms, adding owl annotations, verifying using SPARQL. It >>>> would be >>>> useful to capture the full operation graph, so that the provenance of >>>> the >>>> released ontology was explicit. >>>> >>>> PROV-O would provide the main framework for doing this. PROV-O >>>> predicates could >>>> be used directly. Existing standards could be used to represent the >>>> software >>>> agents involved. AFAICT there is a gap for an ontology for representing >>>> the >>>> ontology processing operations (subclasses of prov:Activity). >>>> >>>> Is there an existing effort that could be piggy-backed on here? This >>>> could be >>>> subsumed into an effort that seeks to represent for example >>>> transformations >>>> between named graphs. Alternatively, the ontology build pipeline could >>>> be >>>> conceived either as a software release process or a scientific >>>> workflow. For the >>>> latter, there are a number of ontologies but it's not clear we'd get >>>> any benefit >>>> using these rather than PROV-O directly. >>>> >>>> If there is no existing work being done here, I'll propose a draft of >>>> activity >>>> classes and design patterns, and we can do a demo implementation in our >>>> ontology >>>> release tool [ROBOT](https://github.com/ontodev/robot). But I'd rather >>>> not >>>> duplicate any existing efforts. >>>> >>> >>
Received on Wednesday, 29 November 2017 03:13:05 UTC