Correct use of the oac:annotates property

19 views
Skip to first unread message

Rainer Simon

unread,
Feb 7, 2012, 11:38:35 AM2/7/12
to oac-discuss
Dear list,

I was wondering about the correct use of the oac:annotates property
(http://www.openannotation.org/spec/beta/#DM_PropsRels).

Since oac:hasTarget and oac:hasProperty are the mandatory properties
to use according to the baseline spec, oac:annotates doesn't really
seem to provide additional information. Also, the way it's introduced
in the spec document (AFAIK simply as a means to demonstrate that one
may have additional relations between Body and Target) doesn't really
make its proper use clear, I think.

Is oac:annotates simply an optional predicate for those who wish to
create an explict link between Body and Target?

Thx,
Rainer

Robert Sanderson

unread,
Feb 7, 2012, 12:08:03 PM2/7/12
to oac-d...@googlegroups.com
Hi Rainer,

Yes oac:annotates is just a placeholder in the document that should be
replaced with more explicit relationship between body and target (or
any other resources, such as between two targets). I'll make that
more clear in the document.

Thanks!

Rob

Rainer Simon

unread,
Feb 7, 2012, 3:10:46 PM2/7/12
to oac-discuss
Hi Rob,

thanks for the clarification - that definitely answers my question.

An additional note: Alex Dutton (also involved with Pelagios) has
recently posted on the issue of "annotation typing". Wouldn't this
then be just the right mechanism to express the type of relationship
between body and target? I.e. instead of

<body> oac:annotates <target>

we'd have something like

<body> <findspot> <target>

to express the fact that the body is a document describing the
findspot of the thing described by <target> (with "findspot" coming
from a suitable archaeological vocabulary.)

Cheers,
Rainer

Vladimir Alexiev

unread,
Feb 8, 2012, 3:48:12 AM2/8/12
to oac-d...@googlegroups.com
On Tuesday, 7 February 2012 22:10:46 UTC+2, Rainer Simon wrote:
<body> <findspot> <target>
to express the fact that the body is a document describing the
findspot of the thing described by <target>
 
Hi Rainer! 

I think it's better to represent the place explicitly. This could come from a thesaurus such as GeoNames, or can be a specific GPS location.
I think that annotations are not independent entities. They are about the target (or can be shared between several targets). They say something about the target and would not exist without it (philosophically speaking).
But places exist independently from things that may have been found there.

So using CRM, you can represent this as:

<place> a crm:E53_Place. 
<target> crm:P53_has_former_or_current_location <place>.

You could use a specific sub-property like this:
  ext:P53_was found_at rdf:subPropertyOf crm:P53_has_former_or_current_location.
  <target> ext:P53_was found_at <place>.

Or if you want to include more info about the find event:
<finding> a E7_Activity; 
  P7_took_place_at <place>; 
  P4_has_time-span [P82_at_some_time_within "1950"^^xsd:gYear];
  P14_carried_out_by <finder>.
<target> P12i_was_present_at <finding>.

You can find a cross-linked CRM reference at http://personal.sirma.bg/vladimir/crm/entity_list_cleaned.html

IMHO annotations should be used to express "free text plus a bit more". They should not be used for "standard" relations about time, place, production, actors...


Rainer Simon

unread,
Feb 8, 2012, 4:34:31 AM2/8/12
to oac-discuss
Hi Vladimir,

That's true of course - but our case is slightly different (and
probably my example didn't really make that clear). Anyways: in our
project, the point is to create cross-links between existing Cultural
Heritage datasets by adding "external metadata", as it were.

I.e. people might have very different data, modeled in different
formats (from structured CIDOC-CRM data, to images, to plain Web
pages). In order to create cross-connections, the idea is now to
"annotate" place references in that data with structured place
identifiers (from Pleiades - a Gazetteer just like Geonames, but
focused on the ancient Mediterranean). Hence the choice of OAC is also
a "philosophic" one to some extent - simply to express the fact that
we do not want to mess with the data itself, but simply "attach a
marker" to it - which, in a sense, is what annotation is about.

In that regard, our annotations also don't express a standard
relationship. They express the fact that someone (a human, an
automated script) _asserts_ there is a relation between a piece of
content/data/media and the place described by the Gazetteer entry.
(I.e. the Gazetter entry _is about_ the data fragment). AND we want to
type the annotation to say: the nature of the annotation is such that
it expresses a particular kind of relationship (such as findspot,
origin, etc.) The relationship property could very well come from
CIDOC, but also other vocabs such as Concordia (http://
gawd.atlantides.org/terms/).

<IMHO annotations should be used to express "free text plus a bit
more".>

In that case I disagree. IMO this would leave out the entire use case
of automated annotation, e.g. where thesaurus terms are assigned to
text (but which I would nonetheless consider annotation).

Cheers,
Rainer
> You can find a cross-linked CRM reference athttp://personal.sirma.bg/vladimir/crm/entity_list_cleaned.html
> and graphical use examples athttp://personal.sirma.bg/vladimir/crm-graphical

Vladimir Alexiev

unread,
Feb 14, 2012, 10:35:42 PM2/14/12
to oac-d...@googlegroups.com
Hi Rainer!

My main point is that imho, a <place> is NOT an oac:Body.
- I take oac:Body to mean "someone said something about <target>".
- so this is not philosophically right: "someone said <place> about
<target>"
- this is right: "someone said about target: '<place> is the findspot' "

So you can attach the <place> to oac:Body, but you shouldn't make them the
same node.

> our annotations express the fact that someone (a human, an


> automated script) _asserts_ there is a relation between a piece of
> content/data/media and the place described by the Gazetteer entry.

I'd model it like this:
<ann> oac:hasBody <body>; oac:hasTarget <target>; dcterms:creator
<someone>.
and then there are 4 options (+ is pro, - is cons):

1. Direct property
<body> findspot <place>.
+ simplest
- doesn't sound right (<body> was not found in <place>, but <target> was)
- to find what was said, you need slightly complex logic: sparql for
select * {<body> ?prop ?obj}
and then filter out oac: properties

2. Reification
<body> rdf:predicate findspot; rdf:object <place>.
+ can discover what is said in a simpler way:
select * {<body> rdf:predicate ?prop; rdf:object ?obj}
- people are scared of it because W3C says reification is obsolete

3. Named graph
<body> {<target> findspot <place>}.
+ packs what was said
- some argued that's not sufficiently established yet

4. Encoded
<body> cnt:chars "<target> findspot <place>"; dc:format "n3".
- hides the triples in a string, defeats semantic repository indexing and
query optimizations. IMHO the worst approach

--

ASIDE:
There is crm:E13_Attribute_Assignment:
someone says that an object has a certain attribute, which may or may not be
in fact true.
It's illustrated at
http://personal.sirma.bg/vladimir/crm-graphical/#attribute_assignment

But as I argue in
http://personal.sirma.bg/vladimir/crm/art/PropertyTypesAndAnnotations.html#s
ec-3_1_
it's too weak to pin-point what is being talked about, since you can't
specify the relation.

You can say
<aa> a E13_Attribute_Assignment;
P140_assigned_attribute_to <target>;
P141_assigned <place>.
But you can't say the relation is ext:P53_was_found_at


Rainer Simon

unread,
Feb 15, 2012, 2:48:30 AM2/15/12
to oac-discuss
Hm. This is turning into a long thread ;-) Your modeling suggestions
sound good, thx! But I still don't entirely agree with some of your
base assumptions...

<snip>
- I take oac:Body to mean "someone said something about <target>".
- so this is not philosophically right: "someone said <place> about
<target>"
- this is right: "someone said about target: '<place> is the findspot'
"
</snip>

That's IMO not quite correct. One of the base assumptions of OAC is
that the author of the annotation is not necessarily the author of the
body! See spec:

"Contrary to the prevailing view, in which the author of the
Annotation and the author of the Body are the same, the Annotation,
Body, and Target can have different authorship."

That's certainly the case in our scenario. Therefore, what the
annotation expresses is this:

"Someone said that <body> (= the IR from the gazetteer) is about the
<target> (=the fragment in the data or media)"

Otherwise I think your modelling suggestions make sense, as I said!
Just one question: We do also have partners (in fact the majority) who
assign "untyped" annotations. I.e. no "findspot", "origin", or
whatever relation. Just the plain statement that the gazetteer entry
is about the data. Any thoughts on how we can find a model that
accomodates both cases, but results in the same graph structure? (In
order to allow transparent querys over untyped/typed annotations
alike.)

One way might be to use your 3rd option, and simply use an
rdfs:seeAlso as predicate. But this would IMO feel like an uninspired
fallback. And it also feels somewhat convoluted for the simple thing
we're trying to express.

Cheers,
Rainer
Reply all
Reply to author
Forward
0 new messages