I tend to agree, the cost of doing a redirect is low in comparison to
serializing and transporting what might be a rather large aggregation.
> I really don't think that the majority of resource map discover will
> be done in this way. The methods for listing resource maps are likely
> to be implemented in a 'flavoured' manner - i.e. OAI-PMH ->
> metadataPrefix=ore_atom, metadataPrefix=ore_rdfxml, etc
Though OAI-PMH is a tried and true technology, I hope that this is
not the predominant case and that we see more ubiquitous approaches
that are more general to the entire web become the norm (Atom, plain
old RDF, RDFa).
> What might be a good compromise is to have the content negotiation
> tactic available on the URI-A, but have some method (like the fragment
> trick from 0.2) to 'guess' the resource map serialisations from the
> URI-A.
>
> i.e. from 0.2
>
> If you have http://host/thing/rem, then via the fragment trick, you
> can guess that the URI-A is http://host/thing/rem#aggregation and
> vice-
> versa
I think this whole emphasis on the "benefit of fragment identifiers"
is a bit overrated, I see no tool/client in existence yet that takes
a fragment identifier and appropriately returns just that fragment.
With "#rem", its rather inefficient to pull aggregate content (0..*)
not intended to be used to get at what is a small ResourceMap and
think its not a good idea to design into the spec as mechanism. It
should be left up to the implementer to decide if ReM and AG reside
at different URI or at the same URI and identified with fragment
id's. The spec should avoid locking implementations into solutions
that are inefficient when the implementers are providing feedback
that its an issue. I totally agree, the flexibility and granularity
introduced of being able to seperate ones Resource Map from ones
Aggregation far outweighs the cost of roundtriping to get the
aggregation for a particular ResourceMap.
>
> Likewise:
> http://host/thing/aggregation - URI-A (can use content negotiation to
> find URI-Rs)
> http://host/thing/aggregation.xml - URI-R (atom)
> http://host/thing/aggregation.rdf - URI-R (RDF/XML)
> http://host/thing/aggregation.nt - URI-R (N-Triples format)
> etc.
>
> (I am biased as I'd like to have .xml -> RDF/XML and .atom -> atom as
> it is implemented on my system, but I think the mapping above is more
> widespread/desired? if the general consensus is yes, I can swap them
> around easily enough.)
I think its bad to have file extensions identify "formats" even
though its in the cool urls recommendations. But, it appears to be a
convention. I too, don't know what a *.rdf file would contain? n3?
rdf-xml? nor do I know what a *.xml file would contain, atom? xmlrdf?
rss? xhtml? These URI will more than likely also have content types
associated with them when in html link elements (i.e. application/rdf
+xml, application/rdf+n3) and that would provide disambiguation.
Again I don't think its the spec responsibility to impose a
convention in this area, but instead rely on what happens to be most
popular ATM.
Cheers,
Mark
~~~~~~~~~~~~~
Mark R. Diggory - DSpace Developer and Systems Manager
MIT Libraries, Systems and Technology Services
Massachusetts Institute of Technology
I don't think file extensions identify formats in the Cool URI
recommendations, they simply distinguish them as separate resources
with distinct URIs. The content/mime type (somewhat) identifies
the format.
> But, it appears to be a
> convention. I too, don't know what a *.rdf file would contain? n3?
> rdf-xml? nor do I know what a *.xml file would contain, atom? xmlrdf?
> rss? xhtml? These URI will more than likely also have content types
> associated with them when in html link elements (i.e. application/rdf
> +xml, application/rdf+n3) and that would provide disambiguation.
> Again I don't think its the spec responsibility to impose a
> convention in this area, but instead rely on what happens to be most
> popular ATM.
It .atom is the more normal for atom and .xml for rdfxml then we should
perhaps change to use them in examples. Will have to work out the appropriate
Google popularity contest queries... Beyond de facto reliance upon
extension by the two most popular computing platforms (macos and windows)
it really shouldn't matter ;-)
Cheers,
Simeon
I'm not really seeing anything in the Cool URI's notes about Content
Disposition. So I feel this is outside it.
http://www.w3.org/TR/cooluris/
Neither in LOD notes:
http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial
>
> I am currently doing this for item downloads (not rmaps yet) by
> setting a Content-Disposition header in the HTTP response, it is
> automatically picked up by most browsers. (See http://www.ietf.org/
> rfc/rfc2183.txt)
I've actually been more focused on just getting the content-type
correct on my machine, which allows for Semantic Web Browsers to
properly retrieve the content, disposition immediately forces most
browsers into treating the content as a download, when that may not
be the appropriate action if its html, xml or even text.
Finally, what if, for instance, we are just talking about a static
set of files that someone wishes to place in an Apache server where
Content Disposition isn't something they can control? Thats probably
a significant portion of web publishing activity, seems like the
defaults should lean towards the suggestion of these actually being
representable as static resources that are relative to one another to
support all possible use cases.
http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/#staticRDF
Likewise, reusing existing LOD/SW technology, one might just want to
put their stuff into a triplestore and use something like pubby as an
implementation to deliver those representations.
http://www4.wiwiss.fu-berlin.de/pubby/
While a recommendation of setting content-disposition might seem
innocent at first, a proliferation of the approach might create
impedances when sharing ORE as LOD. I tried opening your link in
Firefox with Tabulator installed and it circumvented tabulator and
opened a download dialog instead.
http://archive.sers.ox.ac.uk:5000/objects/ora:admin/relationships?
format=xml
sets the request content type = application/rdf+xml
while
http://archive.sers.ox.ac.uk:5000/objects/ora:admin/relationships?
format=n3
sets it to text/plain
if that were instead text/n3 then it would engage Tabulator.
But this nailing down of mimetypes is still all new work it
appears... digging in the dirt:
http://www.w3.org/2008/01/rdf-media-types
http://thor.roe.ac.uk/quaestor/mime.html
-Mark
Starting to agree, See below, seems the use for a different uri (the
fragment that is) is just to separate the subjects in the instance.
clearly you can't expect every service out there to provide a content
negotiated rdf description of its resources to test if
"ore:aggregates </bitstream/1721.1/34155/1/69018697.pdf>;" is another
aggregation without risking the chance of pulling that resource in
its entirety.
> But what you do need is to be able to determine a URI-A from any other
> resource that may be aggregated. Otherwise, you have the problems of
> understanding a ReM that I've already laid out.
I do feel that is correct, and I'll rephrase and you can tell me if I
got it right, "Its the model that should tell you if the target of
an ore:aggregates is another aggregation or an actual resource,
right now its in the URI and not the model that this is determined
by". Some of us don't like this being in the URI because its
restrictive and we think URI should be rather opaque to the spec.
If this is the case, having some thing like ore:hasAggregation in the
Aggregation would enable this in the model where it can be enforced
irrespective of what is in the URI. ore:hasAggregation would be a
subproperty of dcterms:hasPart specifically referring to antoher
ore:Aggregation whose inverse would be ore:isAggregatedBy, while
ore:aggregates would be a SubProperty of dcterms:hasPart specifically
referring to non-aggregations and may not actually have an inverse
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ore: <http://www.openarchives.org/ore/terms/>.
</handle/1721.1/34155#WHATEVER>
dcterms:created
"2008-02-28";
dcterms:modified
"2008-03-10";
ore:describes
</handle/1721.1/34155>;
a ore:ResourceMap.
</handle/1721.1/34155>
ore:aggregates
<-------------------------- points at a resource.
</bitstream/1721.1/34155/1/69018697.pdf>;
ore:isAggregatedBy
</handle/1721.1/7629>;
ore:hasAggregation
<------------------------- new property points at another aggregation.
</handle/XXX/YYY>;
a ore:Aggregation.
This is much more useful in RDF (and enforceable and maintainable in
the actual ontology) than expecting a specific structure to the URI.
-Mark
>> What that means is that unless you can guarantee on the fragment
>> identifier being used for all URI-As, then to understand/walk the
>> structure of any aggregation, you have to action *every* aggregated
>> resource (without a fragment identifier) to determine if it is an
>> aggregation - and if it does lead to a resource map, do the same for
>> that one, etc.
>>
>
> in Atom speak, we encourage (e.g., "SHOULD") the use of
> /feed/entry/category to mark an AR as also being an A:
>
> <category scheme="http://www.openarchives.org/ore/terms/"
> term="http://www.openarchives.org/ore/terms/Aggregation"
> label="Aggregation" />
>
> similarly for RDF.
But is there a predicate for this? Please see my previous email, the
way I would see to do this in RDF would be to define a new predicate
for Aggregations rather than expecting special structure in the URI.
>
>> -- Serializations --
>>
>> Now, if - as in my experience most people are requesting - that we
>> have URI-As/URI-Ps that yield to URI-Rs without requiring an
>> additional round trip, then we have to deal with the situation
>> that we
>> may [need to] offer multiple serializations of that resource map.
>>
>> Which brings us back to the basic principles of the ORE specification
>> - leaning on the existing web infrastructure. Why can't we mandate
>> having a single URI-R for a given aggregation, that will deliver the
>> different serializations through content negotiation? Maintain a 1:1
>> mapping; if you have different URI-Rs, you have different URI-As and
>> therefore different aggregations - even if the assertions of those
>> aggregations are the same.
>>
>
> We had that in an earlier version (between 0.2 and 0.3) and pursued
> it at quite some length, but there was a general feeling that the
> resulting documents & diagrams actually came out more
> complicated than they are now.
And I still think trying to mandate a mechanism; Cool URI, content
negotiation, fragment, whatever, will be too restrictive in certain
domains (especially in the SW/LOD) and be detrimental to ore having
any traction there. If it can't be easily applied there, I'll
certainly be looking for something else because my interest is in get
DSpace functional in the domain of SW/LOD and not necessarily getting
DSpace functional on ORE. ORE is currently just a "means to an end"
in my little SW/LOD project.
Close, but the answer misses the nuance of the question. The point
is that if the object of the following statement is described in
another rdf instance) then to figure out if
</handle/1721.1/34155> ore:aggregates </bitstream/
1721.1/34155/1/69018697>;
references a resource or another aggregation, it has to be traversed
and discovered that there is and ore:Aggregation at the other end.
To get around this issue, it appears the 0.2 ore syntax document
(http://www.openarchives.org/ore/0.2/rdfsyntax) suggests the use of
the fragment "#aggregation" to identify that it is an aggreagtion is
the resource being referenced in ore:aggregates.
<http://dlib.org/dlib/february06/smith/02smith/rem/>
ore:describes
<http://dlib.org/dlib/february06/smith/02smith/rem/
#aggregation>
where
<http://dlib.org/dlib/february06/smith/02smith/rem/#aggregation>
ore:aggregates
<http://dlib.org/dlib/february06/smith/02smith.html>
The 0.3 rdfsyntax document continues on this track, However, the 0.3
data model document (http://www.openarchives.org/ore/0.3/datamodel)
uses URI that are not fragments and instead attempts to represent the
URI as Cool URI
<http://dlib.org/dlib/february06/smith/02smith/aggregation/rem.xml>
ore:describes
<http://dlib.org/dlib/february06/smith/02smith/
aggregation>
where
<http://dlib.org/dlib/february06/smith/02smith/aggregation>
ore:aggregates
<http://dlib.org/dlib/february06/smith/02smith.html>
Thus there is a discontinuity and its unclear what to expect in the
structure of the URI if an aggregation aggregates is another
aggregation.
<http://dlib.org/dlib/february06/smith/02smith/rem/#aggregation>
ore:aggregates
<http://foo.com/thing#aggregation>
or
<http://dlib.org/dlib/february06/smith/02smith/aggregation>
ore:aggregates
<http://foo.com/thing/aggregation>
And which suggests its more appropriate that URI (ReM, A, RA) are all
Opaque (which I consider a good thing). Thus, in the model, there is
no way to tell if what is aggregated at the other end is another
aggregation or a resource specifically when that Aggregation or
resource is not described locally and resides outside the current
instance of RDF. If I get it right, Graham is suggesting that it
would be beneficial to have a mechanism by which to identify if the
object of an ore:aggregates is a another aggregation or resource
within the "Aggregation" itself so the client does not have to incur
the cost of downloading the resource when attempting to resolve the
uri to determine if it is an aggregate or not. I'm suggesting
separate predicates for ,<#aggregation> ore:hasAggregation <some-
aggregation> vs <#aggregation> ore:aggregates <some-resource> would
be a solution which would be enforceable in the model and more easily
inform the client as to the nature of the object of the statement
without having to traverse and retrieve that object physically.
Mark
I concerned this is where we deviate in opinion. I'm not really
getting what a custom protocol would be and why one would need it if
the aggregated aggregations were properly predicated "differently"
than the aggregated resources in RDF, just like they can be in in
Atom with the usage of a category (which is really just a refinement
anyways? Why does one need a whole "protocol" when it can be captured
just fine in an RDF predicate? On top of this, its very analogous to
what is happening in Atom and the mapping is clear.
> If the specification doesn't take a strong stance on most of these
> issues, then it will effectively be unusable for clients in moderately
> complicated cases.
Really depends on the clients... RDF is a fairly liberal model when
you follow best practices.
> Strong specifications allow clients to trust the information they are
> given - which doesn't just help the clients, it lessens the impact on
> the internet and servers too. Of course, it won't mean everything will
> work 100% of the time due to people mis-implementing the specs - but
> you'll be able to point the blame.
think your preaching to the choir here...
> I'm sure most people will understand why aggregated aggregations
> should be marked, <!-- Rant removed by Rant Filter here -->
Sure.
-Mark
On Apr 11, 2008, at 2:19 PM, Robert Sanderson wrote:
> Okay, to throw in my pennies...
>
> ___Proxies.
>
> We need proxies. Proxies must have the semantics of "Resource R in
> Aggregation A".
>
> In RDF this means we need a new URI because it's a new resource. It
> is not Resource R. I hope that the 'follows' use case is
> convincing: R can appear in multiple aggregations, and in each it
> follows a different resource, therefore 'follows' must be refering
> to R in A, therefore we need a way to say (R in A) follows (R2 in
> A). Only URIs can appear in the subject and object slot of triples,
> therefore (R in A) needs a URI.
> We also don't need new predicates due to this.
>
> The more interesting part is what you get if you dereference URI-
> P. There has been some discussion but no decision, as far as I
An aside, I say thanks for putting your response out there, please
understand my approach is always that a healthy debate assists in
coming to consensus, and if not, at least common understanding of
differing viewpoints ;-)
Just entering into this party in the last month or so, I'm stuck
having to catchup with everything thats gone on up to this date,
unfortunately there is no transparent source for this body of
research as most of it seems to have gone on behind closed doors up
to this point. But, those who know me, know transparency is my
mantra. So, I'll drop that thread, and I will just lay down my
position on the subject of ORE's model in RDF and leave it at that.
1.) I think a specification defining URI that are not "opaque" is
overly restrictive and introduces a significant overhead in
complexity that developers will have to implement on top of the
existing RDF tool set. Its unclear when we are talking about URI-R
and URI-A, URI-AR and URI-P are we talking about opaque URI strings?
I think the spec should be blatantly and verbosely clear about this
and it should take the stance that URI are always opaque outside the
purview of the spec. Is this true? This includes not restricting
whether a URI is "internal structure (not referencable) or nested
Aggregations (referencable)".
2.) If its not the case that URI are opaque, I make the argument that
new RDF predicates are cheaper and more easily enforced in the model
and require much less development effort to work with than a wholly
custom URI syntax. Placing semantics in the URI makes it necessary to
require tooling to parse and interpret the URI, which makes the
information lost to generic SW/LOD clients and tooling like RDF
triplestores/SPARQL etc... this is very very very very very horribly
bad IMO. It will totally hinder the uptake of ORE and make it very
poorly mismatched with existing RDF/SW tooling. IMO semantics should
be reserved for the model (RDFS, OWL, Atom, whatever) and for the
record that does not necessarily include "internal structure (not
referencable) and nested Aggregations (referencable)". Why do you
consider have more predicates a "bad thing" when its where the
"rubber meets the road" in terms of modeling in RDF? Why create such
a custom and complex layer on top of something that can already model
it when applied correctly?
Finally, the point that we make for having a "distinction by
predicate" for an aggregated resource vs an aggregated aggregation is
strictly to provide for that functionality in the ORE model, not to
introduce the idea that "anyone can introduce their own distinctions"
in the model. And the idea is proposed because its not always the
case that your resources and other aggregations will be represented
in the same RDF "transmission" or "document" and to allow clients to
be better informed about following links to those "things", it would
be good to have a distinction. And following my above position, that
distinction should be in the model and not hidden in the syntax of a
URI.
Sincerely,
Mark
> ___Resolving and Aggregated Aggregations
>
> Firstly, practically every RDF triple by itself is worthless. It's
> only once they become part of a graph with common predicates that
> they become useful.
> Secondly, it's possible to do the METS approach. Put everything in
> one big bag (a single aggregation) and have some more information
> which describes the internal structure. There's lots of fun
> predicates like hasPart, hasFormat, and so on in order to establish
> more complicated internal structure rather than having to split
> everything up into millions of itsy-bitsy Aggregations/Resource
> Maps. What you can't do is then refer to the structure as a
> separate entity. If you need to do that, then you need to assign it
> a URI to identify it. If it has a URI, it should be
> dereferencable. And ta da, the split between internal structure
> (not referencable) and nested Aggregations (referencable).
1.) I think a specification defining URI that are not "opaque" is
overly restrictive and introduces a significant overhead in
complexity that developers will have to implement on top of the
existing RDF tool set.
Is this true? This includes not restricting
whether a URI is "internal structure (not referencable) or nested
Aggregations (referencable)".
IMO semantics should
be reserved for the model (RDFS, OWL, Atom, whatever) and for
record that does not necessarily include "internal structure (not
referencable) and nested Aggregations (referencable)". Why do
consider have more predicates a "bad thing" when its where the
"rubber meets the road" in terms of modeling in RDF?
Finally, the point that we make for having a "distinction by
predicate" for an aggregated resource vs an aggregated aggregation is
strictly to provide for that functionality in the ORE model, not to
introduce the idea that "anyone can introduce their own distinctions"
in the model. And the idea is proposed because its not always the
case that your resources and other aggregations will be represented
in the same RDF "transmission" or "document" and to allow clients to
be better informed about following links to those "things", it would
be good to have a distinction. And following my above position, that
distinction should be in the model and not hidden in the syntax of
URI.
Okay, I think I totally missed the real point of this!
Correct, I simply mean the spec does not define what the structure of
a URI should and leaves that open to the implementer to decide.
However, there may be recommendation or best practices on the usage
of such URI and that such should be clearly identified as such if
used within "the spec".
> Besides, any overhead from processing an invented URI schema is
> entirely dependent on what the details of such a scheme would be.
Just the word "invented" is enough to ruffle my feathers on this
subject. Your example: "ore:aggregation;http://server.com/resource"
alone presents:
1.) The requirement for the specification to define the internal
structure of a URI.
2.) And as such that development of tooling to support parsing that
representation when
<#myAggregation> ore:aggregatesAggregation <http://server.com/some/url>
<#myAggregation> ore:aggregates <http://server.com/some/other/url>
Is ultimately transparent and requires no tooling beyond an RDF
parser and an a Http Client to acquire. Besides this, if in Atom,
something like a <category> is used to identify if an ore:aggregates
points at a resource or an aggregation (as captured in the Atom
schema and not some "invented URI" why impose on the RDF community
that some invented URI be used over a properly defined, schema
enforced validate-able approach?
>
>> 2.) If its not the case that URI are opaque, I make the argument that
>> new RDF predicates are cheaper and more easily enforced in the model
>> and require much less development effort to work with than a wholly
>> custom URI syntax.
>
> New predicates add verbosity to the document (increased transfer
> time), and more interactions with the XML serialization toolkits. At
> this point, you would have to define your concept of cheaper ;)
Thats such a load of bunk... is custom code somehow guaranteed to be
more efficient than a standard parser?
> Also, it's only easily enforced in the model if the model allows it to
> be enforceable. This is the problem with the current specification -
> the ore:isAggregate (or whatever it is) predicate is not a MUST, which
> means it can't be enforced, and if you are presented with an RDF
> document that does not contain any of these predicates, how do you
> determine if they were simply omitted, or if the aggregation is truly
> not aggregating other aggregations?
Not sure what this has to do with URI, seems more schema/ontology
related.
>
> For this to be practical in the real world for anything more than a
> niche set of use cases for a niche community, this kind of details
> needs to be:
>
> a) enforceable
> b) enforced
> c) clearly and obviously described in the specification, not tucked
> away where it is easily missed
[warning... stereotyping ahead]
This is an argument on a continuum of evolutionism vs. creationism...
Evolutionist say, establish the smallest possible set of laws to
enforce on a system and see what emergent behavior arises... while
the Creationist say, define the entire mechanism, top to bottom,
written in stone, and damn all who do not comply. Seems to me, folks
that come from the RDF World ascribe to the former and those from XML
Schema world tend to the later, both could stand to learn a little
from each other.
>> Placing semantics in the URI makes it necessary to
>> require tooling to parse and interpret the URI, which makes the
>> information lost to generic SW/LOD clients and tooling like RDF
>> triplestores/SPARQL etc...
>
> If a generic client encountered the URI for an aggregation, would it
> know how to derefence the URI to obtain a ReM, and continue processing
> that ReM?
If its a #name, that is something outside the spec that suggests an
identifier referenced within the document. If its a relative or
absolute uri, it suggests that its resolvable separately from the
Aggregation, and in RDF it doesn't need to be either, it could be a
bare node or and id reference that is used to locate the ReM wholly
independent of any uri based rdf:reference, which is what Robert
Sanderson is talking about.
> Besides, these clients are bound to potentially encounter URIs that
> aren't regular http/https/ftp, etc. schemas (as there is no RDF
> specification that limits the URIs to being just that) - so wouldn't
> they have some way of coping with arbitrary URI schemas?
No not necessarily... Why overcomplicate things with such complexity.
>
>> And following my above position, that
>> distinction should be in the model and not hidden in the syntax of a
>> URI.
>
> Or it could be both. One other argument to consider is that URI-As,
> etc. can be cited... you may not be seeing those URIs only within the
> confines of a semantic document describing aggregations (or semantic
> links to those documents from resources). So you could argue that it
> should be clear from the URI that you are talking about an
> aggregation, or you can argue that the URI should be resolvable in a
> web browser and redirect / display human readable information about
> that aggregation. Either way, we would benefit from strong
> recommendations as to how this should be approached, rather than
> hoping it works itself out.
I wouldn't rely on the URI's structure, I've not ever seen an RDFS/
OWL ontology that explicitly says a URI representing this object has
to adhere to "X structure"... The closest thing I can think of is
DCMI Encoding schemes. But even then, I'm not convinced I know of any
validation engine outside of those for w3c XML Schema that might be
capable of validating such structure. And even then, I think it'd be
a real pain to get right and would be much easier to do in the
"model" rather than its "referencing mechanism".
In programming, do you code a variable that may be dereferenced by
the languages standard dereferencing mechanism, or do you make up a
wholly new and different dereferencing mechanism for that language
because you think the the byte addresses being dereferenced should
use N-1 bits instead of N bits? I don't think so. Same here, why go
outside the scope of the language to force the developers to do
unnecessary work to manufacture semantically encoded URI when they
could just use a predicate?
Ultimately, I finally got what Rob is saying about
AggrParent ore:aggregates AggrChild
AggrChild rdf:type ore:Aggregation
And I rather agree now, just define another statement about the
aggregation in the instance, it may not be "everything" about that
aggregation, it is simply "stuff about this aggregation in relation
to the current Aggregation". I.E. just add a third level to your rdf
with the statements necessary to identify that something is an
aggregation. This is something I am now adding to my prototype.
-Mark
Yep, I now grok it and agree.
> In Atom, when we aggregate resources with a mimetype, no problem:
>
> <atom:link rel="alternate" type="application/pdf" href="bla bla bla"/>
>
> The type attribute isn't rdf:type, but dc:format. Oh dear, so where
> do we put ore:Aggregation?
>
> The answer at the moment, I'm afraid, is that it has to go into an
> <rdf:Description about="bla bla bla"> block, as the *Aggregation*
> doesn't have a mime type and you can't tell a priori which resource
> map serialisation of the aggregation you're going to get. Foo on
> you, Cool URIs.
> Even if you could tell, it wouldn't be correct to say that an
> Aggregation dc:format text/atom+xml as it's the resource map that
> has that property.
I assume you wouldn't know the format until the uri was resolved
(content negotiation or plain ole http response) and you had the
header in hand. Thats not so bad if theres other detail in the RDF
suggesting the resource is another aggregation.
-Mark
(BTW, I strongly agree with Mark's comments about the introduction of a
new URI scheme. It has huge cost implications for every potential
consumer of the data, and I don't really understand why it would be
required.)
...but cutting to this point, which I admit has been worrying me a bit:
Graham said:
> > Also, it's only easily enforced in the model if the model
> allows it to
> > be enforceable. This is the problem with the current
> specification -
> > the ore:isAggregate (or whatever it is) predicate is not a
> MUST, which
> > means it can't be enforced, and if you are presented with an RDF
> > document that does not contain any of these predicates, how do you
> > determine if they were simply omitted, or if the
> aggregation is truly
> > not aggregating other aggregations?
Mark said:
> Not sure what this has to do with URI, seems more
> schema/ontology related.
Yes, I think so too.
If I understood correctly, Graham wants a way to be certain that given
only a ReM graph, an aggregated resource referred to in that graph is
_not_ itself an Aggregation.
But I'm not sure there's really any way, given (a) the "open world"/"you
never know everything about X" nature of RDF and (b) a ReM containing an
ore:aggregates triple with object URI some:resource, of knowing for sure
that that aggregated resource is not itself an Aggregation.
I can add information to my ReM to indicate that the thing identified by
some:resource _is_ an Aggregation, whether that is in the form of an
additional explicit rdf:type triple or using an alternative to
ore:aggregates with a different range so that the type can be inferred.
But I'm not sure I see how I can rule out the option that, independently
of my ReM and beknownst to me, the owner of some:resource describes
some:resource as an Aggregation.
Or have I mininterpreted the question?
Pete
---
Pete Johnston
Technical Researcher, Eduserv Foundation
Web: http://www.eduserv.org.uk/foundation/people/petejohnston/
Weblog: http://efoundations.typepad.com/efoundations/
Email: pete.j...@eduserv.org.uk
Tel: +44 (0)1225 474323
My background is in eLearning, I know that this isn't high on the list
target uses for ORE, but it would be better for all if we in eLearning
could adopt a specification being used for research outputs rather than
invent our own. For teaching and learning in general we're used to
treating resources as aggregations rather than indivisible atomic
units,-- so much so that rather than talk about aggregations having the
potential to "break open the package" we tend to focus more on how we
can package the disparate resources that are being brought together to
teach a concept.
I think it is fair to say that if ORE is to be used in teaching and
learning then re-ordering/sequencing resources cannot be described as an
"edge case". It's pretty typical for a teacher to create an aggregation
of resources and say something along the lines of: read resource A
first; then look at B,C & D (in any order) which discuss A; do
exercise/activity/assignment E (and perhaps they would go on to say: if
you do well in E then you're through to the next topic, if you don't do
well in E then here are some other resources to look at). Of course
another teacher or the student reusing this aggregation of resources
might want to modify the sequence.
At first when I heard [I think it was] Carl talk about the metadata for
the resource map giving information about who had created the resource
map and made the assertions therein, I thought that was enough to give a
provenance to the assertions made about the aggregated resources. And I
thought that was enough to allow assertions to be made that couldn't be
trusted to be generally true of the resource outside the
aggregation--after all, if it's only me who says it's an aggregation in
the first place, and if I'm not the creator of the aggregated-resources
what would I know? So I found the argument that we need proxies surprising.
Anyway, it seems to me that if proxies are the solution then perhaps the
problem is too difficult to solve this way. We have ways of specifying
the order of resources (the organization section in an IMS Content
Package manifest, IMS Simple Sequencing, and maybe there's something
from struct maps in METS?), why not say that ordering is out of scope of
ORE, but that a file in the aggregation provides information on the
desired ordering of resources for this resource map. It'ld be useful to
have a relationship type along the lines of isSequencedBy, and perhaps a
vocabulary for the types files that specify the sequence--though I would
be happy enough for those to be left as potential extensions.
Regards, Phil.
--
Phil Barker Learning Technology Adviser
ICBL, School of Mathematical and Computer Sciences
Mountbatten Building, Heriot-Watt University,
Edinburgh, EH14 4AS
Tel: 0131 451 3278 Fax: 0131 451 3327
Web: http://www.icbl.hw.ac.uk/~philb/
Hosed by aggressive clients? I wonder if the solution to that isn't to
get client developers to abide by instructions in a good old robots.txt
file. There is some precedent: the Swooglebot will attempt to fetch and
read robots.txt.
http://swoogle.umbc.edu/index.php?option=com_swoogle_manual&manual=swooglebot
Sean