Re: Understanding 'chaining'

Ivan Herman wrote:
> - @rel's subject is either @about or the 'inherited' resource coming
> from the parent
> - @rev's subject is the resource sent 'down' to through the chaining
> (and taken into account, via inheritance, by the children)

I took some time to look at how Ivan's @trel/@trev proposal would affect
the test cases. Overall, his proposal makes the issues that we've been
having with @instanceof easier to address.

The following approved test cases would have to be changed based on
Ivan's @trel/@trev proposal: #49, #50, #52, #53 and #1001.

#49   - @instanceof changes to @trel
#50   - @instanceof changes to @trev
#52   - @instanceof changes to @trev
#53   - @instanceof changes to @trev
#1001 - @instanceof changes to @trel

The following on-hold test cases could be resolved based on Ivan's
@trel/@trev proposal: #46, #47, #48, and #51.

#46 - @instanceof changes to @trev
#47 - @instanceof changes to @trev
#48 - @instanceof changes to @trel
#51 - @instanceof changes to @trel (possible issue with SPARQL?)

Every test case seems to transition quite easily to Ivan's scheme and it
doesn't look like there would be a great deal of disagreement like there
is currently for @instanceof. Additionally, it would allow us to support
all of the use cases that Ben has outlined as being important. There
don't seem to be any nasty side-effects that I can see.

A couple of observations that I don't know if Ivan intended or not:

- @trel never causes the creation of a new bnode. @trel always has a
  subject, if nothing else - it's the current document.
- @trev causes the creation of a new bnode, sometimes, but the results
  are a bit confusing based on Ivan's explanation. This could be an
  issue, such as in Test Case #51, if we are to have the same
  functionality as @instanceof.

While @trel never creating a new bnode is not an issue, @trev not
creating a new bnode at times might be an issue. From what I understand,
@instanceof will create a new bnode and start chaining in the following
instance:

<body>
   <p instanceof="foaf:Document" property="foaf:topic">John Doe</p>
</body>

In the case above, the following triples should be created, per the
SPARQL in Test Case #51:

<> <foaf:topic> "John Doe" .
_:bn0 a <foaf:Document> .

Using Ivan's proposal, if we replace @instanceof with @trel, we get the
following triples:

<> <foaf:topic> "John Doe" ;
   a <foaf:Document> .

If we replace @instanceof with @trev, we get the same triples, I think?
Is this wrong, Ivan? Does the following create a new bnode or not?

<span trev="a:b" />

If not, how do we create a new bnode to start chaining? Or, more
precisely, what happens in this case:

<body>
   <p property="foaf:topic">John Doe
   </p>
   <span trev="foaf:Document" />
</body>

The confusion came in when you stated this:

> <span about="#a" rel="foaf:knows" trev="foaf:Person">
> yields
> <#a> foaf:knows [ rdf:type foaf:Person ].

and then followed it up with this:

> Note that
> <span about="#a" trel="a:b">
> and
> <span about="#a" trev="a:b">
> yield, actually, the same triples because, according our rules, <#a>
> will be sent 'down' to the children.

Those two rules seem to be in conflict with one another? For example, this:

<span about="#a" trel="a:b">

would generate this

<#a> a <a:b> .

and

<span about="#a" trev="a:b">

should generate this?

_:bn0 a <a:b> .

That's really the only issue I could find with Ivan's @trel/@trev
proposal so far. It's not a major issue, it just needs some clarification.

-- manu

-- 
Manu Sporny
President/CEO - Digital Bazaar, Inc.
blog: Over One Million Songs Available on Bitmunk
http://blog.digitalbazaar.com/2007/10/29/one-million-songs-on-bitmunk/

Received on Wednesday, 28 November 2007 07:26:09 UTC