Re: Annotations and the Graph

Hi Randall,

Apologies if my responses have seemed a bit curt. I am just frustrated by
all of the use case-fu that seems to be bogging us down. Remarks in-line.

On Wed, Oct 28, 2015 at 5:38 PM, Randall Leeds
>
> It is exactly this interpretation of motivations that I would like to
> specify so that the interpretation is not idiosyncratic but normative.
>

I'm pretty certain that's a bad idea. No one is actually going to agree on
the scope and meaning of 'comment', 'remark', 'bookmark', etc. Part of the
problem is that while there is obvious overlap with these concepts and the
concept of an annotation it isn't clear at all that all comments are
annotations. Counter-examples exist. For instance, if you and I are
discussing a baseball game and I comment on the performance of the pitcher,
it is difficult to assert that I also annotated the pitcher's performance.

It seems to me that annotations are limited to recorded discourse but
comments have no such limitation.

There is also the issue of contingent facts. That the body of an annotation
plays the role of a comment is a contingent fact to the whole of the
annotation. We can imagine a universe where the body plays some other role
in the context of the annotation yet the particular content of the
annotation has remained the same, e.g., the body plays the role of
explanation. How would we decide when to use a comment predicate instead of
an explanation predicate? Isn't relatedTo a simpler relationship?


> I believe that reifying that interpretation results in a dataset that is
> eminently more consistent with how I would like to query it in practice,
> e.g. ask a server for <Article, comment, ?> and get back all the objects
> (structure of which are unspecified, as per the extensibility we've both
> pointed to).
>

This is a very brittle form of retrieval. You're reduced to hunting for the
string label of a particular predicate. This is not a semantic query and is
going to both miss pertinent results and retrieve non-relevant results. At
least with a query like <?, motivatedBy, <commenting>> you might have a
chance of grabbing annotations whose conceptual relationships between body
and target are related to the motivation represented by the string
"commenting".


> I don't see that anywhere in the model specification, unless you infer
> some particular relatedTo predicate from an arbitrary vocabulary from the
> English language description, "conveys that the body is related to the
> target".
>

That is indeed it. The entire model is built around this inference (to the
point that I'd hardly call it an inference).

Keep in mind that reasoners do not just rely on the model but also whatever
inferencing rules the programmer sees fit to add in. My interpretation of
the English in the introduction is that body relatedTo target is a valid
inference. Within my own domain I can also easily argue that inferring
motivation subclassOf relatedTo is a valid interpretation (I would actually
go so far as to use the predicate 'annotates'), especially if it serves
some search retrieval function. However it's not so easy to argue that this
should be the normative interpretation because myCommunity:Commenting =/=
oa:Commenting. It's actually difficult to say with authority what was the
user intention unless I'm operating in an annotation system that only
allows its annotators one or two intentions.


> In our current model this is not true, and that's why I raised this thread.
>

For very practical reasons, anyone storing annotations in a triple store
will do so as a named graph. It makes retrieval, search, and serialization
much easier. If one doesn't store it this way (with regards to graph
databases anyway) then one quickly runs into one of RDF's worst
decidability problems -- document composition.


> The annotation is the root of a contiguous graph fragment. It cannot, for
> example, convey disjoint subgraphs. It is not a dataset, it is a particular
> resource.
>

You're right, it's not a set and set theoretic approaches won't work. It
is, however, structured data. One of the primary drawbacks to RDF is that
there are no clear boundaries where a document may begin or end. I believe
that this is by design -- RDF is not a document language. It's an
information language and an open problem that has not been resolved to my
knowledge is how to compose the information in the graph into a
human-readable document. This problem can be attenuated (but not fixed) by
storing particular graph fragments as named graphs


> I still don't understand why those motivations are not themselves, or do
> not imply normative relations, between the bodies and targets.
>

Because it's hard to make that leap. The particular role a body plays in
relation to a target beyond annotating is very difficult to establish. It's
hard for me to picture an annotation client that successfully captures such
granular information. You're not likely to get the information from the end
user, yet you're in the awkward position of trying to capture the intention
with the annotation. Motivation at least abstracts it away to the point
that only the motivation might be incorrect. If you collapse the annotation
node into the wrong predicate then the entire graph fragment becomes false
(or really that assertion is false and everything related to it moot).


> The annotation provides a subject for extended attributes about the
> activity, I'm still just asking why one of those attributes, which is about
> the reason for relating the bodies and targets, cannot be interpreted in a
> consistent way to imply a particular relation.
>

The key is "consistent". I don't believe it's possible. People do not mean
the same thing when the use the same word. Even a term like "tagging"
easily becomes overloaded if we believe it indicates something about the
content of the body, e.g., its a simple string mono- or bi-gram as opposed
to a URL.

Regards,

Jacob

Received on Thursday, 29 October 2015 13:54:00 UTC