Earlier quoted context omitted.
> And if you add the "standardized fields" thing it also matches the REST interface+RDBMS+SQL comparison the OP made. The standardization in REST is basically "read stuff" and "write stuff". For everything else you're supposed to look up the API docs and write a specialised client. I can query a SPARQL endpoint for a list of people and their friends, sorted by age - without knowing anything about that endpoint . I ca…
"Standardized fields" here meant columns in a relational database, things you can index and look up quickly. "Birth date" would be such a field that you'd hope would be standardized, for example. > I can query a SPARQL endpoint for a list of people and their friends, sorted by age - without knowing anything about that endpoint. No you can't. I am certain that you can't. To do this, you would need: - A social networki…
Then please point me to that standard. In RDF, that woukd be FOAF for example.
> A social networking service that uses SPARQL
- People to actually use that service
Yes, for querying an endpoint, I need an endpoint. No way.
My point is that even if I have such an endpoint as a REST API, I can't directly go on to query it because I'll first have to write a specific client tailored to its API and data model first, then think about how I convert it into my own. If I want to match up accounts from Facebook, Twitter and Mom-and-Pop-BBS, I'll have to deal with three different APIs and three different data models. If those sites provided SPARQL endpoints, I'd only have one of them.
> Knowing the schema that would represent things like "friend" and "age"
Defined by FOAF, see above.
> A model of permissions that indicates that somehow you're allowed to know the age of people's friends (seriously, how are you allowed to know this)
That's the responsibility of the endpoint, not mine. I don't see why that would be a hard problem (I figure you'd define permissions on different RDF properties and types) but I admit I don't know much about it.
>A way to express that permission in your SPARQL query
I send my (authenticated) query and if I don't have sufficient permissions, the server will hopefully return "nope". Why would I need to send more?
Yes, some sort of authentication is obviously needed, but there are enough standards to use for that (any sort if HTTP auth method, OAuth, OpenID etc)
Note my point wasn't that I can query endpoint X out of the blue and expect to get all the data - but that I don't have to write specific code to deal with endpoint X. Obviously I have to get permission somehow, but ideally, the only endpoint-specific thing I have to do is to fill out a registration form.
Depending on the use-case, you might not even need auth at all if your endpoint is restricted. We also have authless, restricted REST endpoints today that seem to work well: They're called web pages.