bbcarchdev / acropolis

A toolkit for building knowledge graphs
https://bbcarchdev.github.io/acropolis
8 stars 6 forks source link

Restricted players returned when no for= parameter set on search #5

Open townxelliot opened 6 years ago

townxelliot commented 6 years ago

Resources which are restricted to particular audiences are shown as results for searches which don't specify an audience (for=) parameter.

As an example, this search:

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham

returns the proxy http://acropolis.org.uk/9f987d22b7684fcd9b99fd4abb895383#id as a result. This proxy has a player:

<http://acropolis.org.uk/9f987d22b7684fcd9b99fd4abb895383#id> mrss:player <http://shakespeare.acropolis.org.uk/programmes/LRPI646P/player> .

That player has a licence which restricts its usage to a particular audience:

<http://shakespeare.acropolis.org.uk/programmes/LRPI646P/player> dct:license <http://shakespeare.acropolis.org.uk/terms#id>

This licence (http://shakespeare.acropolis.org.uk/terms#id) has the label "Accessible only by authorised users in formal education in the UK" and this RDF:

<http://shakespeare.acropolis.org.uk/#members>
    a odrl:Group ;
    rdfs:label "Authorised users of the BBC Shakespeare Archive Resource"@en-gb .

<http://shakespeare.acropolis.org.uk/terms>
    dct:license <http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/> ;
    a foaf:Document ;
    foaf:primaryTopic <http://shakespeare.acropolis.org.uk/terms#id> .

<http://shakespeare.acropolis.org.uk/terms#id>
    a odrl:Policy ;
    rdfs:label "Accessible only by authorised users in formal education in the UK"@en-gb ;
    odrl:permission <http://shakespeare.acropolis.org.uk/terms#play> .

<http://shakespeare.acropolis.org.uk/terms#play>
    a odrl:Permission ;
    odrl:action odrl:play ;
    odrl:assignee <http://shakespeare.acropolis.org.uk/#members> .

According to Inside Acropolis (https://bbcarchdev.github.io/inside-acropolis/#conditional-access), this should mean that http://acropolis.org.uk/9f987d22b7684fcd9b99fd4abb895383#id shouldn't show up unless you set a for= parameter on the search, e.g.:

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham&for=http://shakespeare.acropolis.org.uk/%23members

But the proxy is shown regardless of whether you set that parameter. In other words, these searches return identical results:

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham&for=http://shakespeare.acropolis.org.uk/%23members

vs.

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham

It also occurred to me that this may be due to the query not being a media query, as I've set no media= parameter (meaning the for= parameter is ignored). So I tried these:

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham&for=http://shakespeare.acropolis.org.uk/%23members&media=http://purl.org/dc/dcmitype/MovingImage

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham&for=http://shakespeare.acropolis.org.uk/%23members&media=video

http://acropolis.org.uk/index.ttl?q=Five%20to%20Eleven%20Cyril%20Luckham&media=http://purl.org/dc/dcmitype/MovingImage

None of these queries returns any results. I would expect the first and second queries to return a single proxy resource and the third to return none.

Please clarify whether this is a bug, or if it is intended behaviour and I have misunderstood the documentation.