- From: Chris Mungall <cjmungall@lbl.gov>
- Date: Tue, 28 Nov 2017 19:13:53 -0800
- To: Simon Cox <Simon.Cox@csiro.au>
- Cc: Graham Klyne <gk@ninebynine.org>, semantic-web <semantic-web@w3.org>
- Message-ID: <CAN9AifsWwBwgqGgjECRkZmfWbvADKwZtw8frYTiowJOxA_fudQ@mail.gmail.com>
Thanks Simon - the ssn docs are really clear, this is a good example. On Tue, Nov 28, 2017 at 4:40 PM, <Simon.Cox@csiro.au> wrote: > Also see https://www.w3.org/TR/vocab-ssn/#PROV_Alignment_class where acts > of observation/sampling/actuation are modelled as sub-classes of > prov:Activity. > > -----Original Message----- > From: Graham Klyne [mailto:gk@ninebynine.org] > Sent: Wednesday, 29 November, 2017 03:51 > To: Chris Mungall <cjmungall@lbl.gov> > Cc: semantic-web <semantic-web@w3.org> > Subject: Re: Using PROV-O to represent ontology processing, extraction and > reasoning operations > > 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:14:24 UTC