Slow query when using transitive and property path in owl

Hi,

I have a slow query:

select  ?registrering ?virksomhet where {
   values (?registrering) {(<http://difi.oep.dump/journalpost/16125095>)(<http://difi.oep.dump/journalpost/16121527>)}
   ?registrering arkiv:arkivskaperTransitive ?virksomhet .

}

arkiv:arkivskaperTransitive is parentTransitive o arkivskaper and parentTransitive is simply the transitive super-property of parent.

Our data looks a bit like this:

<http://difi.oep.dump/journalpost/16125095> arkiv:parent [arkiv:arkivskaper <....>]

But could also be

<http://difi.oep.dump/journalpost/16125095> arkiv:parent [
   arkiv:parent [arkiv:arkivskaper <....>]
]

The query plan for the query is as follows:

From all
Distinct [#1.1M]
`─ Projection(?registrering, ?virksomhet) [#1.1M]
   `─ HashJoin(?registrering) [#1.1M]
      +─ Union [#685K]
      │  +─ MergeJoin(?pjzmgjba) [#228K]
      │  │  +─ Scan[PSOC](?pjzmgjba, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/arkivskaper>, ?virksomhet) [#57K]
      │  │  `─ Scan[POSC](?registrering, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/parent>, ?pjzmgjba) [#228K]
      │  `─ MergeJoin(?sowdgyag) [#457K]
      │     +─ PropertyPath(?registrering -> ?sowdgyag, minLength=1, sorted by=?sowdgyag) [#457K]
      │     │  +─ Scan[POSC](?registrering, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/parent>, ?sowdgyag) [#228K]
      │     `─ Scan[PSOC](?sowdgyag, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/arkivskaper>, ?virksomhet) [#57K]
      `─ VALUES (?registrering) {
         +─ ( http://difi.oep.dump/journalpost/16125095 )
         `─ ( http://difi.oep.dump/journalpost/16121527 )
         }

Which looks very slow to me. If I rewrite the query to expand the OWL and disable reasoning it is much faster:

Explaining Query:

select  ?registrering ?virksomhet where {
   values (?registrering) {(<http://difi.oep.dump/journalpost/16125095>)(<http://difi.oep.dump/journalpost/16121527>)}
   ?registrering arkiv:parent* / arkiv:arkivskaper ?virksomhet .

}

The Query Plan:

From all
Distinct [#0]
`─ Projection(?registrering, ?virksomhet) [#0]
   `─ MergeJoin(?unoezzqv) [#0]
      +─ Sort(?unoezzqv) [#0]
      │  `─ DirectHashJoin(?registrering) [#0]
      │     +─ VALUES (?registrering) {
      │     │  +─ ( http://difi.oep.dump/journalpost/16125095 )
      │     │  `─ ( http://difi.oep.dump/journalpost/16121527 )
      │     │  }
      │     `─ PropertyPath(?registrering -> ?unoezzqv, minLength=0, sorted by=?registrering) [#3.5M]
      │        +─ Scan[PSOC](?registrering, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/parent>, ?unoezzqv) [#228K]
      `─ Scan[PSOC](?unoezzqv, <http://www.arkivverket.no/standarder/noark5/arkivstruktur/arkivskaper>, ?virksomhet) [#57K]

Any suggestions for how to make this faster without doing the rewrite?

Cheers,
Håvard