Dereferencing URLs in RDF Languages #7
AdamSobieski
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Introduction
Drawing inspiration from pointers in computer-programming languages like C and C++, proposed for RDF languages is that the
*symbol could be used to dereference URLs into: IRIs, literals, triples, quads, graphs, and datasets.Single IRIs
Let us consider the following syntax:
The
*symbol indicates to dereference the URL. The URLhttp://www.data.org/example/1.uris, for example, resolves to:This would result in:
Similarly, a URL could be dereferenced in the predicate or object position of a triple. That is:
would result in:
Multiple IRIs
What if a resource of type
text/uri-listprovided multiple IRIs?Multiple triples would be generated as a result of the multiple URIs/IRIs occurring in a
text/uri-listresource.So, for the following syntax:
and with the URL
http://www.data.org/sets/dogs.urisresolving to:the following triples would result:
Similarly, a URL could be dereferenced in the predicate or object position of a triple. That is:
would result in:
Literals
With a new MIME type,
application/literal, literals could be represented as URL-addressable resources and processed into RDF-inline literals. This would work for literals of all sizes, from small text strings to very large data blobs.So, for the URL
http://www.data.org/example/3.lit, a Web server might serve:which would result in:
A Web server might, alternatively, serve:
which would result in:
A Web server might, alternatively, serve:
which would result in:
By encoding literals' datatypes as MIME-type parameters, HTTP content negotiation could include datatypes, enabling content negotiation with respect to numerical precision and units of measure, for examples.
Other possibilities include: multiple MIME types, e.g.,
application/literal+jsonorapplication/literal+cbor, could be utilized to encode, alongside data, the other components of RDF literals; and new HTTP response headers could encode the other components of RDF literals.Single Triples
Considering graphs with one triple, we could make use of RDF formats like
text/turtle.The following syntax:
with the URL
http://www.data.org/example/4.ttlresolving to:would result in:
Multiple Triples
What if the graph returned by a dereferenced URL contained multiple triples?
The following syntax:
with the URL
http://www.data.org/example/5.ttlresolving to:would result in:
Blank Nodes
What if developers could dereference URLs into blank-node contexts?
The following syntax:
with the URL
http://www.data.org/example/weather.ttlresolving to:would result in:
The node in the dereferenced URL's resource indicated using a fragment identifier would be the one merged into the containing blank node.
Collections
What about lists?
Ideally, the one or more IRIs in a
text/uri-listresource would become the elements of the list.TriG
In TriG, using the
*syntax, in addition to all of the above possibilities, one could also:Dynamic Content
Web servers can generate dynamic content of types
text/uri-list,application/literal, andtext/turtle.Multipart MIME Messages, Archive Files, and Packages
In addition to absolute and relative URLs using the HTTP URL scheme, the Web, one could use the
cid:URL scheme for multipart MIME messages or relative URLs for resources within archive files or packages.Conclusion
What do you think about these ideas? Thank you.
All reactions