-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define opposite of #PreferInboundReferences #392
Comments
What is the use case for this optimization? I see it in the abstract but am struggling to see the compelling practical use case. Aside from that, I think the notion of outbound references being opposite to inbound references is not true in the sense that they are being used with |
Use Case To scope in terms of PCDM (though the same holds true for practically every other partitioning construction), if there is a Book that has many Pages, the direction of the predicate in the information management system is likely to be Page is_part_of Book. The Book will have a lot of information as well, besides the long list of Pages. So ... If you care only about the Book, and not the information about the individual Pages (such as a search result), then requesting only OutboundReferences (the default) is useful. If you care about everything at once, then you can add include=InboundReferences. However if you only want the list of InboundRefs (e.g. the page list to construct a thumbnail strip) you have to get the entire information about the Book as well. By requesting include=Inbound;omit=Outbound, you would get only the inbound references, thereby fulfilling the use case. Issue 1 I agree that data properties are different from annotation and object properties (obviously), but in terms of the core RDF model, I don't think there's a significant difference for this use case. The default case (OutboundProperties) is all predicates that are defined that have the resource as subject, and the inverse is all predicates that are defined that have the resource as object. That can only be relationships, as literals cannot be the subject of triples in RDF 1.1. So ... I think InboundReferences and OutboundReferences are parallel, even if OutboundReferences include triples with both literals and resources as object. Issue 2 I agree that OutboundRefs is an optimization. It's just defining a name for the default case, such that it can be used explicitly rather than only via the API as a default. Issue 3 Isn't this also true for inbound? If there is a server managed triple (SMT) that creates a relationship between a resource and its creating user, then there is an inbound SMT. Indirect containers also create a bunch of triples that might otherwise be just regular triples. So I agree there is an issue to be discussed, but I disagree that it is unique to OutboundRefs. |
And on a practical point, we need this functionality and would prefer an integrated solution, but of course we can define our own Prefer URI if its not a Fedora concern. |
There may also be a sticking point about blank nodes here as a set of statements for which the resource identifier is neither the the subject nor the object? |
I think blank nodes are by definition excluded, as they cannot be referenced outside of their own document. That would also be an issue for InboundReferences though, no? |
For the use case above would this not suffice?
Or would the purpose of I can say that blank nodes are definitely an issue for |
Although the semantics of including both If we wanted to make sure of the "depending upon the implementation" part we could make the specification more explicit to say that the extra include preferences SHOULD be interpreted independently of any of the LDP include/exclude preferences. However, my sense is that we have so far avoided being that prescriptive and these are only SHOULD/MAY requirements anyway. |
Given @acoburn's and @zimeon's insights here, I think we're inclined to defer here, unless @azaroth42 feels like there's a thread here that should be specified (or maybe addressed in a non-normative note?). Wading into the combinations of |
Decision in 10/31/18 editor's call: We think this is addressed by the recipe in #392 (comment). Closing this issue. |
Sorry for tossing this over the wall and running ... but ... would it be possible to define the opposite of
http://fedora.info/definitions/fcrepo#PreferInboundReferences
(one imagines#PreferOutboundReferences
) for use withomit
?Then if the client wanted only the inbound references because it has already requested the outbounds with a regular request, the API would support:
The text was updated successfully, but these errors were encountered: