Skip to content
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

Relative URI, ..., Graphs and IO support #379

Open
wants to merge 34 commits into
base: scala-3
Choose a base branch
from

Conversation

bblfish
Copy link
Member

@bblfish bblfish commented Sep 21, 2022

suporting Graphs with relative URLs in a type-safe way: two rGraphs cannot be merged.
(requires rURI, rTriple too).

This allows one to have specialised IO that create rGraphs or produce formats with relative URLs.

@namedgraph
Copy link

What's the use of relative URI support? It goes beyond standard RDF.

@bblfish
Copy link
Member Author

bblfish commented Oct 12, 2022

What's the use of relative URI support? It goes beyond standard RDF.

Just a quick philosophical point: Standards define agreed upon conventions, they don't limit what is possible, or else there could be no evolution.

Relative Graphs are useful for LDP when posting to a container, and a number of other use cases. This addition is typesafe in that it makes sure relative graphs, relative triples and relative uris are supersets of graphs, triples and URIs and that certain things cannot be done with relative graphs, such as merging them with another graph. So this makes it easier to work with those things and avoids mistakes that could arise by mistakenly taking the union of a relative graph and another one.

@namedgraph
Copy link

It feels like you are conflating the syntax level (where relative URIs are useful) with the conceptual RDF model.

@bblfish
Copy link
Member Author

bblfish commented Oct 12, 2022

It feels like you are conflating the syntax level (where relative URIs are useful) with the conceptual RDF model.

Perhaps you are right here. Perhaps there is no need for a relative graph, and one should rather have a stream of relative triples. Ie, there is no need to index relative triples, ...

Otherwise I am not sure there is confusion since relative graphs and normal graphs are different types.

@bblfish
Copy link
Member Author

bblfish commented Oct 12, 2022

@namedgraph and others following this, to make sense of my sentence

Otherwise I am not sure there is confusion since relative graphs and normal graphs are different types.

especially for those coming from Set theory, it might help to have an intuitive presentation of the difference between set theory and type theory. Thorsten Altenkirch's talk on Naive Type theory does just that https://www.youtube.com/watch?v=bNG53SA4n48

Then with that in mind you may also want to look in particular at the opaque types documentation of Scala 3, as that is being used here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants