W3C home > Mailing lists > Public > public-prov-wg@w3.org > February 2012

Re: prov-wg: Another name for Qualified?

From: Luc Moreau <L.Moreau@ecs.soton.ac.uk>
Date: Sat, 18 Feb 2012 00:41:29 +0000
To: Timothy Lebo <lebot@rpi.edu>
CC: "public-prov-wg@w3.org Group" <public-prov-wg@w3.org>
Message-ID: <EMEW3|d02b84171f51d639ed025529d5b33285o1H0fV08L.Moreau|ecs.soton.ac.uk|8D743F3E-139E-4C85-9A60-CB0B079025C4@ecs.soton.ac.uk>

On 18 Feb 2012, at 00:11, "Timothy Lebo" <lebot@rpi.edu<mailto:lebot@rpi.edu>> wrote:

On Feb 17, 2012, at 6:37 PM, Luc Moreau wrote:

Hi Tim,

On 17 Feb 2012, at 23:26, "Timothy Lebo" <lebot@rpi.edu<mailto:lebot@rpi.edu>> wrote:

On Feb 17, 2012, at 6:07 PM, Luc Moreau wrote:

Is too much for prov:?? to be prov:entity ...

That's what we started with. And I haven't seen anything else that is more compelling.

Great.  Btw, this exactly corresponds to the "names" of constituents, listed in the DM.

Is this a WD4 thing? Could you give a pointer to where "names" of constituents is discussed? I couldn't find "consti" in WD4 or WD3.

I meant the names appearing in italic, e.g;

Generation, written wasGeneratedBy(id,e,a,t,attrs) in PROV-ASN, has the following components:

  *   id: an optional identifier identifying a generation;
  *   entity: an identifier identifying a created entity;
  *   activity: an optional identifier identifying the activity that creates the entity;
  *   time: an optional "generation time", the time at which the entity was completely created;
  *   attributes: an optional set of attribute-value pairs that describes the modalities of generation of this entity by this activity.

Will we ever have a set of examples that exercises the constructs in DM (and thus, PROV-O)?
I'm worried that discussing and deciding based on minted examples prevents us from seeing the whole picture.

Agreed. It's now time to build a corpus of examples. My ProvToolbox can make some conversions. Hopefully others will create other converters.

https://github.com/lucmoreau/ProvToolbox ?
What can it do? You're short on wiki pages ;-)

Sorry, it's a tool I have been using to test ideas.
If we start an ASN collection in prov hg, I can look at feeding them through ProvToolbox to get XML to transform to RDF with an XSL.

It parses Asn, generates XML, json, and rdf (partially, sine yesterday)

I'd ask someone else to start the ASN collection, since I failed to get traction the first time around.
Apparently my organization wasn't intuitive.

I think you were ahead of us,  we are just catching Up. Maybe you could explain again your structure and how we should use it.

In particular, I'm concerned about situations where prov:entity references the subject of the qualified involvement, because it would break the underlying guidance from rdf:Statement.

Is it possible to have prov:entity refer to the subject? Revisions? qualified derivations? I've said this before, but I hope it isn't possible because some Activity should be used instead.

Isn't the class  Involvement too broad in its current form?
Shouldn't the pattern be reused under a different name for
Entity-entity relations and activity-activity relations?

I very much like this suggestion.
By "too broad in its current form", do you mean the 1) OWL axioms defining it, 2) its use, or 3) its naming?

I've had the following in http://dvcs.w3.org/hg/prov/file/8c14d0798b20/ontology/components/QualifiedInvolvement.ttl since Dec 02 2011

I was not familiar with this file.  It's not part of the provOntology.owl file :-(

This starts to make more sense to me, now, thanks!

So , to check if understand, would you see prov:Inform ( I think it's the class for wasInformedBy property) to be a subclass of ActivityInvolvement?

   a owl:Class;
   rdfs:label "QualifiedEntityInvolvement";
   rdfs:subClassOf prov:QualifiedInvolvement;
   rdfs:subClassOf [
       owl:onProperty prov:qualifiedEntity;
       owl:minCardinality 1;

   a owl:Class;
   rdfs:label "QualifiedEntityInvolvement";
   rdfs:subClassOf prov:QualifiedInvolvement;
   rdfs:subClassOf [
       owl:onProperty prov:qualifiedActivity;
       owl:minCardinality 1;

^^^ this would be "simply named" according to today's discussions with the following \/:

   a owl:Class;
   rdfs:label "EntityInvolvement";
   rdfs:subClassOf prov:Involvement;
   rdfs:subClassOf [
       owl:onProperty prov:entity;
       owl:minCardinality 1;

prov:Generation rdfs:subClassOf prov:EntityInvolvement .

prov:Used rdfs:subClassOf prov:EntityInvolvement .

prov:Association rdfs:subClassOf prov:EntityInvolvement;

    rdfs:subClassOf [ owl:onProperty prov:entity;

                      owl:allValuesFrom :Agent ] .

prov:ActivityInvolvement a owl:Class; rdfs:label "ActivityInvolvement"; rdfs:subClassOf prov:Involvement; rdfs:subClassOf [ owl:onProperty prov:activity; owl:minCardinality 1; ]; .

The _unstated_ intent is that prov:entity and prov:activity are subproperties of rdf:object .

I understand now the design.
I feel we have made good progress tonight,

I made the changes at http://dvcs.w3.org/hg/prov/file/ecc2d07239a3/ontology/components/Involvement.ttl




Professor Luc Moreau
Electronics and Computer Science
University of Southampton
Southampton SO17 1BJ
United Kingdom

On 17 Feb 2012, at 22:57, "Timothy Lebo" <lebot@rpi.edu<mailto:lebot@rpi.edu>> wrote:

As an RDFer, the following doesn't look too bad.
Ontology-ers will hate it (which is ironic, since they should only be worried about the axioms and not the tokens).

    a prov:Activity;

    prov:used           :in;
    prov:usage [
       a prov:Usage;
       prov:?? :in;           # <--- Suggestions for this predicate very much welcome!

    prov:generated :out;
    prov:generation [
       a prov:Generation;
       prov:?? :out;

Short. And parallels even more nicely. I'm sold, Luc!


On Feb 17, 2012, at 5:09 PM, Luc Moreau wrote:

Hi Paul,

s/Qualified// on properties too

hadQualifiedXXX -> hadXXX

And if you said s/had//

hadQualifiedXXX -> XXX

Professor Luc Moreau
Electronics and Computer Science
University of Southampton
Southampton SO17 1BJ
United Kingdom

On 17 Feb 2012, at 21:51, "Paul Groth" <p.t.groth@vu.nl<mailto:p.t.groth@vu.nl>> wrote:

Hi Luc

I think we agree that Qualified shouldn't be in front of the class names. In the ontology they aren't.

The question is what the predicate should be between the activity and the Involvement subclass?

I'm open to suggestions.

On Feb 17, 2012, at 22:35, Luc Moreau <L.Moreau@ecs.soton.ac.uk<mailto:L.Moreau@ecs.soton.ac.uk>> wrote:

Hi Tim, Paul
Still in the spirit of simplification

used vs Usage
wasGeneratedBy vs Generation

Why do we need Qualified? If you say QualifiedGeneration, ...
I always expect a UnqualifiedGeneration ..  But there is no such class.



Professor Luc Moreau
Electronics and Computer Science
University of Southampton
Southampton SO17 1BJ
United Kingdom

On 17 Feb 2012, at 18:57, "Timothy Lebo" <lebot@rpi.edu<mailto:lebot@rpi.edu>> wrote:

On Feb 17, 2012, at 11:20 AM, Paul Groth wrote:

Hi Tim, Jim,

I like the suggestion a lot. [English teacher verification is good :-) ] Indeed, I was thinking that all the "had" in the ontology were a bit verbose. A blank node may indeed be the best way solve it for having long types.

Blank nodes should not be any way to solve URI length (or any other problem; they should be avoided at all costs).
Any occurrence of bnodes in my examples could  just as easily be URIs. I'm just using them for abbreviation to show the structure.

I'm not sure how you interpreted my example as using bnodes to solve a length problem. Could you explain?

A couple of questions in your examples:

- You have the prov:generated relationship but I don't see that in the ontology file although I do see it in the ProvRDF page? This is issue #98, which has no resolution http://www.w3.org/2011/prov/track/issues/98

Thanks for pointing that out. I agree with the issue and think that it should be added to the ontology as an owl:inverse of prov:wasGeneratedBy.
(oh, I created the issue. Glad that I still agree with it!)
Though, I'm expecting push back on an inverse being added to the ontology.

- You use the relation prov:entity and not prov:hadQualifiedEntity.

prov:entity was the initial stand in. And I'm bringing it up again because it's a "whole lot shorter".

This also isn't in the ontology or this a suggestion?

resurrected suggestion.

I'm trying to think of other shorter names that convey the same meaning as qualified involvement.

For the class or predicates? For the class, go "Involvement". Short.
For the predicate, "qualifiedGeneration / Use" is worth the length in my opinion, because it parallels prov:generated / prov:used in a natural way.


Just for less typing but clearly I don't want to open a huge debate there.

If anyone, comes up with suggestions that would be great. I'll try to think of some myself. But again this may be too picky

thanks for the quick response,

Jim McCusker wrote:
To be clear, we're using "qualified" as a verb, not a noun, which is why
we can drop "had".


On Feb 17, 2012 8:50 AM, "Timothy Lebo" <lebot@rpi.edu<mailto:lebot@rpi.edu>
<mailto:lebot@rpi.edu>> wrote:

Although it doesn't shorten it up much, I think it is _much_ clearer
if we drop "had".

prov:hadQualifiedGeneration -> prov:qualifiedGeneration

This changes the statement from a passive to active, which will make
all of my writing teachers happy.
The Activity qualified its Generation.

This also parallels the unqualified form nicely ("generated" and
"qualifiedGeneration") -- a fork in the road with two routes that a
client can follow, depending on how much detail they want.:

a prov:Activity;
prov:generated :my_entity;
prov:qualifiedGeneration [
a prov:Generation;
prov:entity :my_entity;
:foo :bar;

QualifiedInvolvement -> Involvement still makes _complete_ sense,
since it is inherently qualifying the binary relation. Being an
Involvement _means_ that you're being pointed at with some
subproperty of prov:qualifiedInvolvement (e.g. qualifiedGeneration)
AND you're pointing to the (rdf:object) involvee with, say, prov:entity.

As for the predicates hanging off of the Involvement, we started
with just:

:my_activity prov:qualifiedGeneration [
a prov:Generation;
prov:entity :my_entity;

but we run into a slight hiccup when we're qualifying the
Involvement between two Entities b/c we don't know which is the
rdf:subject and which is the rdf:object of the binary relation we're
qualifying. However, these situations start to leave core, and a
qualified involvement between two entities should be some Activity,
so we can avoid the degenerate Entity-Entity case.


On Feb 16, 2012, at 8:53 AM, Paul Groth wrote:

Hi All,

The idea behind QualifiedInvolvement is great and it's been
resolved for a while so I don't want to open it up.

but.... could we get a better name?

The name is long, especially for the properties. So you have to

ex:activity1 prov:hadQualifiedGeneration ex:g1.
ex:g1 prov:hadQualifiedEntity ex:e1.
ex:g1 prov:wasGeneratedAt [owlTime:inXSDDateTime

could we shorten them up somehow? Any suggestions?

Received on Saturday, 18 February 2012 00:42:13 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:58:12 UTC