Re: Using PROV-O to represent ontology processing, extraction and reasoning operations

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