- From: Sven Lieber (UGent-imec) <Sven.Lieber@UGent.be>
- Date: Wed, 29 Apr 2020 16:14:43 +0000
- To: "public-prov-comments@w3.org" <public-prov-comments@w3.org>
- Message-ID: <93a4efe2d2a34f809fd4371804a94808@xmail102.UGent.be>
Dear all,
I'm trying to model the annotation of something with something by someone using PROV concepts.
The problem I am facing is that whatever I want to annotate might be an entity or an activity and similarly the annotation might be an entity or an activity.
The only solution I have so far is to introduce new terms but I wonder if it is possible to only rely on PROV concepts and still model the annotations in a single consistent way.
Consider the example where
1. Alice wants to annotate a report with two keywords and the order matters
2. Bob wants to annotate a project with two keywords and the order matters
3. Carol wants to annotate a report with two related projects and the order matters
Each such annotation could have more metadata like the time period where the annotation existed.
# keywords as entities as they are created by someone at some point in time
ex:keyword1 a ex:Entity .
ex:keyword2 a ex:Entity .
ex:report1 a ex:Entity .
ex:project1 a prov:Activity .
ex:project2 a prov:Activity .
ex:alice a prov:Agent .
ex:bob a prov:Agent .
ex:carol a prov:Agent .
# solution 1: Annotation activity "using" annotations
# problem: the annotation might not be an entity, the third example with Carol is not possible. Also not entirely PROV as a new predicate 'ex:annotate' is used
ex:annotationActivity1 a prov:Activity ;
prov:wasAssociatedWith ex:alice ;
ex:annotate ex:report1 ;
prov:qualifiedUsage [
a prov:Usage ;
prov:entity ex:keyword1 ;
ex:rank 1
] ;
prov:qualifiedUsage [
a prov:Usage ;
prov:entity ex:keyword1 ;
ex:rank 2
] .
# solution 2: introducing new terms, one annotation activity for each annotation
# problem: Not entirely PROV as new predicates are used
ex:annotationActivity1 a prov:Activity ;
prov:wasAssociatedWith ex:alice ;
ex:annotate ex:project1 ;
ex:annotateWith ex:keyword1 ;
ex:rank 1 .
# solution 3: the annotation as entity
# problem: how to link to the annotated thing and to the annotation?
ex:annotationAliceReport1Keyword1 a prov:Entity
prov:wasGeneratedBy ex:someActivity ;
prov:wasAttributedTo ex:alice .
# solution 4: prov entities to represent activities
# problem: how to link the activity to its entity representation? More in general I also wonder how one is supposed to express the provenance of activities since they are disjoint with entities
ex:annotationActivity2 a prov:Activity ;
prov:wasAssociatedWith ex:bob ;
prov:qualifiedUsage [
prov:entity ex:project1Entity ;
prov:hadRole ex:annotated
] ;
prov:qualifiedUsage [
prov:entity ex:keyword1 ;
prov:hadRole ex:annotation ;
ex:rank 1
] .
Of course the solution shouldn't be overly complex so in worst case I would just go with solution 2.
Thanks for any insight,
Sven
Kind regards,
SVEN LIEBER
PhD researcher semantic intelligence
IDLab<http://idlab.technology/>, imec<https://imec.be/> research group at Ghent University<https://www.ugent.be/en>
AA-tower | Technologiepark Zwijnaarde 122 | 9052 Ghent, Belgium
t: +32 9 331 49 59
[iconmonstr-globe-5-24]<https://sven-lieber.org/> [iconmonstr-twitter-5-24] <https://twitter.com/SvenLieber> [iconmonstr-linkedin-5-24] <https://www.linkedin.com/in/sven-lieber-1b2b70131/> [iconmonstr-key-11-24] <https://sven-lieber.org/pgp-key>
Attachments
- image/png attachment: image001.png
- image/png attachment: image002.png
- image/png attachment: image003.png
- image/png attachment: image004.png
Received on Wednesday, 29 April 2020 16:15:02 UTC