solid / vocab

Solid Vocabularies
https://solid.github.io/vocab/
42 stars 14 forks source link

attributing app which generated the content - as:generator #17

Closed elf-pavlik closed 8 years ago

elf-pavlik commented 8 years ago

I would like to include in content, which I publish on The Web, attribute apps which I used for generating given content. So far as:generator seems to me like an appropriate property.

@melvincarvalho I would also use that later myself for statistics on how much i use which app and using it as factor in prioritizing how I express my gratitude to contributors of given app :gift:

csarven commented 8 years ago

PROV-O provides an ample of expressivity for this UC.

If there is nothing "Solid centric" here, I propose closing this issue.

elf-pavlik commented 8 years ago

I see prov:wasGeneratedBy with domain prov:Entity and range prov:Activity. @csarven could you write a short snippet showing how to express that particular application generated given document?

elf-pavlik commented 8 years ago

as:generator seems similar to HTML meta tag https://www.w3.org/TR/html5/document-metadata.html#meta-generator

csarven commented 8 years ago

It can be represented with varying expressivity. See example below (which can be enriched further with, e.g., attribution, associations, derivations, timestamps, labels..):

<http://csarven.ca/dokieli>
  a prov:Entity ;
  prov:wasGeneratedBy :activity .

:activity
  a prov:Activity ;
  prov:generated <http://csarven.ca/dokieli> ;

the activity can use qualified usage:

  prov:qualifiedUsage [
     a prov:Usage ;
     prov:entity  <http://csarven.ca/dokieli> ;
     prov:hadRole  :article .
  ] ;
  prov:qualifiedUsage [
     a prov:Usage ;
     prov:entity  <https://github.com/linkeddata/dokieli> ;
     prov:hadRole  :authoring .
  ] .

or unqualified:

  prov:used <https://github.com/linkeddata/dokieli> .

or both.

<https://github.com/linkeddata/dokieli> a prov:Entity .

In this example, it is pointing at the repository of the tool that was used. Alternatively, one can point at the script in particular that produced the article, or even articulating it around the user action e.g., 'Save'. Or going even further with everything else that's associated in the data pipeline and toolchain used in retrieval, transformations, generations, derivations, to publishing..

elf-pavlik commented 8 years ago

Thanks! Can I do it with a single property ldp:Resource - ??? -> solid-app:Application without need for an explicit activity in between? Something as simple as HTML

<meta name=generator content="Dokieli">

or

@prefix as: http://www.w3.org/ns/activitystreams#

<http://csarven.ca/dokieli> as:generator <https://github.com/linkeddata/dokieli>

BTW

The AWWW says that everything of importance deserves a URI. Go ahead and give yourself a URI. You deserve it! — http://dig.csail.mit.edu/breadcrumbs/node/71

I think Dokieli deserves a URI which returns Linked data description of it. Maybe https://apps.solidplatform.org/dokieli ?

csarven commented 8 years ago

If you only want to capture which tool was used to generate some content, perhaps PROV-O is excessive. But then again it is just a matter of using prov:wasGeneratedBy and prov:used.

The generation of some content is not always clearly defined eg., which tools, processes, and actors are actually involved? Can the generation be reproduced given same input? For instance, dokieli (eg do.js) doesn't itself generate anything but rather an entity materialises due to a combination of events between the user and their Web browser on some data and its state.

Aside: https://dokie.li/ will have a DOAP soon

Are we okay to close this issue? Is there anything that's really Solid or LDP specific here?