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

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 Saturday, 25 November 2017 18:47:15 UTC