- From: Chris Mungall <cjmungall@lbl.gov>
- Date: Sat, 25 Nov 2017 10:46:56 -0800
- To: "Graham Klyne" <gk@ninebynine.org>
- Cc: semantic-web <semantic-web@w3.org>
- Message-ID: <BAD65F67-F01D-4520-AE0A-32EA86E9666A@lbl.gov>
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