Am 27.08.2015 um 04:12 schrieb Karen Coyle:
> I, too, am puzzled about the semantics of this. To me it says:
> <some resource> <has a contributor> x
> x is a Contributor
> x has role <role>
> x has agent <agent>
> x obviously doesn't *have* an agent in the way that it has a role --
STOP. The only thing obvious is that exactly this is stated. So
we have to adapt our understanding of the nature of x to fit
our understanding to the statement. The obstacle seems to be
the clash between the meaning of bf:Contributor and our understanding
of "contributor" and it was already proposed to change the label
of the class to more properly reflect whats really going on in
> <agent> is the identifier for x. But I don't see how x can *be* both x
> AND some agent. In this example "x" represents the contributor, and
> <agent> also represents the contributor. Or, if you look at it in terms
two meanings of "contributor" in one sentence. Too bad.
> of what entity is being described, it comes down to "x has agent <x>"
> because they are talking about the same thing. (This seems to call for
> I think this is one of the tricky aspects of using blank nodes. It isn't
> that they represent a blank -- they represent a specific thing that, at
> that moment in time, has no name. But it's still a thing. It's not, as
> it has been called here, a data structure. So the bnode x is a real
Reading the RDF primer it seems to be perfectly legal to model any
"compound data structure" this way. We only have to realize what the
"thing" is which is described by that graph.
We want to give a precise description of the relation between our
resource and the agent (leaving out for now that the identifier
proposal might tend to introduce another intermediate node separating
the agent from that what we can tell about him) and therefore we
record the role (and may annotate this or give references in cases
where the identification is tricky or non obvious). If we read that
backwards we are describing the contribution of the agent with
respect to the given resource. So viewing the "x" from above as
of class bf:Contribution (please for one moment don't confuse that
with an actual article in a proceedings volume) makes at least as
much sense as naming it a bf:Contributor.
We could go a step further and express that "x" is an area where
/cataloguers/ add value by identifying agents and their roles alike.
Then maybe a good class name for "x" would be bf:RoleDescription
(kind of a "document"?) or bf:RoleIdentification (more like fixing
the outcome of an "action"?).
There is an asymmetry: So much can be told about the agent and
on the other hand specifying the role is just some tiny statement.
So especially humans do want to know that there is a relation to
Shakespeare first (and which Shakespeare) before they want to
be bothered by noticing the nature of the relation. So having
a property named bf:contributor or bf:hasContributor is accommodating
this kind of human zigzag behavior. But we wouldn't go that far
as providing our Shakespeare graph with some impressing list of
roles which back-link to our resource (I have outlined exactly
that way of modeling in authority records when it comes to
identifiers and schemes).
So if a RoleDescription implicitly has a link to a resource like in
x [ a bf:RoleDescription;
hasRole xyz:writerOfForweord ;
appliesToAgent ... ;
how do we streamline that when embedding it into a description of
our <someResource> (leaving out the then implicit
withRespcectToResource property or rather emplying an inverse
property for that)? Naming properties with "has..." usually
stress the next hop, can we think of a property name which
indicate that we'll eventually arrive at an agent?
Would use of genitives in property names be legitimate like in
<agent's role> / <agent's contribution> [
a bf:RoleDescription / bf:RoleIdentification / bf:Contribution ;
Mot only PROV-O but also FRBRoo switches from a static view
(describing results of actions manifest somewhere) to a
dynamic view (describing the relevant actions themselves with
consequences as to where dates and places are to be recorded).
Should we altogether abandon the perspective that an agent has
illustrated a resource (like an frbr:expression - way to
immaterial to be pencilled on if you start to think of it)
in favor of a view of /events/ performed by our agents
which (in a possibly complex chain of further events not detailed
in library descriptions) have some recognizable outcome in
the entities we describe?
Of course there is an easy technical way to enforce sanity in
the class Names by just stating the obvious and not trying any
<some resource> bf:hasAgentWithRole [
a bf:AgentWithRole ;
has role <role>
has agent <agent> ].