Having caught up on this very illuminating thread, I think Ray was onto
something when he clearly separated the URI and non-URI cases:
On Jul 16, 2014, at 5:39 PM, "Denenberg, Ray" <[log in to unmask]> wrote:
> I think the advice is:
>
> (1) don't use a URI to identify a bf:Identifier. Treat it as a blank
> node.
>
> (2) Only a non-URI identifier (e.g. isbn) should be treated a
> bf:Identifier. (I.e. a URI should not be treated as a bf:Identifer.
> Thus the property bf:uri should be eliminated.)
Aside from discussions of how useful or not it is to have non-URI
identifiers, it seems there is little debate that something like the
bf:Identifer way of talking about non-URI identifier is fine.
For the URI case I think the thread conflates two use cases that can't
be supported in the same way:
URI Identifier Use Case 1: "I want to assert that another URI identifies
the same resource and have this work well in LOD". In this case
owl:sameAs is clearly the useful/practical way to implement and follows
common LOD practice (as Rob suggests).
URI Identifier Use Case 2: "I want to describe the origins, provenance,
etc. of a URI (in a similar way to other forms of identifier)". This use
case is not supported by simple owl:sameAs suggestion. The problem is
how to talk about URIs because in RDF they aren't first class citizens,
they are simply ways to talk about resources. How can we associate the
provenance properties that a bf:Identifier has with a URI without
generating bad semantics? I think that a robust answer must use some
kind of reification --- the way out of the "the first rule of identifier
club is that you can't talk about identifiers" conundrum.
I'll use an example from Thomas and Rob to think about these 2 use cases:
On 7/17/14 12:17 PM, Robert Sanderson wrote:
>Thomas Berger wrote:
>> Now consider
>> <http://example.org/persons/kcoyle> a bf:person;
>> bf:identifier [
>> bf:schema "VIAF";
>> bf:identifierValue "195531823";
>> bf:identifierValueURI <http://viaf.org/viaf/195531823>
>> ].
It seems that here the bf:identifierValueURI is a sleight of hand for
bf:identifies (inverse of bf:identifier) and thus implies (though
doesn't explicitly include):
> Or ... <http://example.org/persons/kcoyle> owl:sameAs
> <http://viaf.org/viaf/195531823> .
The bf:identifierValueURI form is both somewhat circular and hard to
compute on without bf-specific understanding. It thus doesn't serve use
case 1 well.
One could argue that the bf:schema and bf:identifierValue properties are
redundant in the example above (implied by the URI itself). However, I
don't think that argument could be made for other predicates such as
bf:identifierAssigner, bf:identifierStatus so let's imagine a slightly
different example (following Thomas's form):
<http://example.org/persons/kcoyle> a bf:person ;
bf:identifier [
a bf:Identifier ;
bf:identifierAssigner "Simeon" ;
bf:identifierValueURI <http://example.com/people/kc>
].
where the bf:identifierAssigner is not redundant and cannot be expressed
in the simple owl:sameAs form.
Does this form meet use case 2? I think it does because although the RDF
spec does not include the notion of reification of a Resource, it
follows the rdfs pattern that is blessed for the reification of a
statement [2], where the correspondence is:
rdf:Statement class <-> bf:Identifier class
rdf:subject predicate <-> bf:identifierValueURI predicate
But now, let's take a step back and look at the current bf spec with
bf:identifierValue [3]:
<http://example.org/persons/kcoyle> a bf:person ;
bf:identifier [
a bf:Identifier ;
bf:identifierAssigner "Simeon" ;
bf:identifierValue "http://example.com/people/kc"
].
I can feel the knee-jerk "yuck" to see a URI in quotes but this is
actually a very clean reification of the identifier. None other than
TimBL in 2004 suggested use of a literal form for a URI in reification
[4] and included the notion of reification of URIs as "Symbols" (though
the community has not gone that way). A benefit of this form over the
bf:identifierValueURI form (or, say, reification of an owl:sameAs
statement) is that the quoted value is immune to expansion or reduction
of owl:sameAs equivalences in a processing/query/inference system. I
think this form meets use case 2 well though it is terrible for use case 1.
It is ugly and I think I'm going to get some flak for even mentioning
this... but I wonder whether to meet the two use cases of both useful
LOD _and_ describing URI provenance then one needs to do both owl:sameAs
and something like the current bf:identifierValue? Can you say data
duplication:
<http://example.org/persons/kcoyle> a bf:person ;
owl:sameAs <http://example.com/people/kc> ;
bf:identifier [
a bf:Identifier ;
bf:identifierAssigner "Simeon" ;
bf:identifierValue "http://example.com/people/kc"
].
Fire away,
Simeon
P.S. Then, of course, there is the question of how "same-as" an
owl:sameAs really is [5], but we can leave that for another day ;-)
[1] http://bibframe.org/vocab/Identifier.html
[2] http://www.w3.org/TR/rdf-schema/#ch_reificationvocab
[3] http://bibframe.org/vocab/identifierValue.html
[4] http://www.w3.org/DesignIssues/Reify.html
[5] http://www.w3.org/2009/12/rdf-ws/papers/ws21
|