- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Fri, 28 Jan 2022 10:15:19 -0500
- To: public-webid@w3.org
- Message-ID: <3c669e43-a928-9e64-e905-79ba6c05a95a@openlinksw.com>
On 1/28/22 2:55 AM, Henry Story wrote:
>
>> On 27. Jan 2022, at 19:51, Martynas Jusevičius<martynas@atomgraph.com> wrote:
>>
>> On Thu, Jan 27, 2022 at 7:19 PM Jacopo Scazzosi<jacopo@scazzosi.com> wrote:
>>> Hi all,
>>>
>>>> Could we come to a consensus that content negotiation is optional for
>>>> current and future WebID work?
>>> I agree that it should remain optional, as per the current WebID spec/draft:
>>>
>>> a) conneg tends to be incompatible with hosting of static resources
>>> b) conneg comes with its own complexity, which should not be forced upon
>>> adopters of the spec
> Content-negotiation works with static resources too.
>
> You can have 1 static resource served with 1 mime type and a client can content negotiate
> in order to receive that mime-type, or you can have multiple ones.
> There is documentation on the W3C Web site to help with how to set that up with Apache.
> https://www.w3.org/TR/swbp-vocab-pub/
>
> I serve my WebID profile following that in
> Turtle, N3, NTriples and RDF/XML.
>
> https://bblfish.net/people/henry/card#me
>
> But I could also just have published Turtle if I wanted to.
>
>>> In practice, this entails that a client asking for a specific serialization
>>> format might:
>>>
>>> - receive a response in the requested format
>>> - receive a "406 Not Acceptable" response if the requested format is not
>>> supported by the publisher but basic conneg is
>>> - receive the response in a different format if the publisher does not support
>>> conneg
>>>
>>> I'm happy with all three implications.
>> I think at this point we need to put the prose behind us and make HTTP
>> request/response examples for each use case, in order to remove any
>> ambiguity. Request examples:
>>
>> 1. No format preference (canonical format is Turtle)
>>
>> GET /webid
>>
>> 2. Canonical format (Turtle) is preferred
>>
>> GET /webid
>> Accept: text/turtle, application/rdf+xml;q=0.8
>>
>> 3. Non-canonical RDF format is preferred and supported by the server
>>
>> GET /webid
>> Accept: application/rdf+xml, text/turtle;q=0.8
>>
>> 4. Non-canonical RDF format is preferred and *not* supported by the server
>> a. without fallback
>>
>> GET /webid
>> Accept: application/rdf+xml
>>
>> b. with Turtle as fallback
>>
>> GET /webid
>> Accept: application/rdf+xml, text/turtle;q=0.8
>>
>> 5. HTML is preferred and supported by the server
>>
>> GET /webid
>> Accept: text/html, text/turtle;q=0.8
>>
>> 6. HTML is preferred and *not* supported by the server
>> a. without fallback
>>
>> GET /webid
>> Accept: text/html
>>
>> b. with Turtle as fallback
>>
>> GET /webid
>> Accept: text/html, text/turtle;q=0.8
> Thanks Martynas Jusevičius, that is a good summary.
>
> The spec just tells us what the mime type by default is, so that
> client writers can have some idea of the minimal requirements they
> need to satisfy for interoperability.
>
> Without the default, clients would need to have 10 parsers around,
> and it actually keeps growing now with RDF* for example recently, N3 soon,
> We may then even want clients to take GRDDl into account.
> Here are just the RDF mime types I have registered for my server
> https://github.com/co-operating-systems/Reactive-SoLiD/blob/master/src/main/scala/run/cosy/http/RDFMediaTypes.scala
>
> I am in favor of having clients support many formats. For example
> this is what my server (when working as a client) uses when making
> requests at present
> https://github.com/co-operating-systems/Reactive-SoLiD/blob/master/src/main/scala/run/cosy/http/RdfParser.scala#L33
Hi Henry,
>
> But if we want people to be able to join the community easily, we can’t
> just before they even get going ask them to write 20 parsers for the
> same data structure. I think it is obvious how that would put people off.
I do believe anyone has every indicated, insinuated, or implied what
you've stated above.
Making WebID-Profile Document Type specificity doesn't in anyway 20
parsers, or the like.
From my vantage point, we can guide adopters though the process by
keeping the following distinct and loosely-coupled:
1. WebID specs
2. WebID Profile Doc specs
3. WebID-TLS protocol
4. Client implementation guidelines
5. Server implementation guidelines
BTW -- How about a narrative that starts with WebID Profile Document
rather than a WebID? That way, Relative HTTP URLs comes into play as the
basis for constructing WebIDs.
*JSON-LD Example.
*
|## JSON-LD Start ## { "@context": { "@base": "#", "name": { "@id":
"http://schema.org/name", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" }, "sameAs": {
"@id": "http://www.w3.org/2002/07/owl#sameAs", "@type": "@id" },
"description": { "@id": "http://schema.org/description", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" },
"mainEntityOfpage": { "@id": "http://schema.org/mainEntityOfpage",
"@type": "@id" }, "mainEntity": { "@id": "http://schema.org/mainEntity",
"@type": "@id" }, "title": { "@id": "http://schema.org/title", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" } }, "@graph":
[{ "@id": "#netid", "@type": "http://schema.org/Person", "sameAs": [
"https://twitter.com/kidehen#netid",
"https://linkedin.com/in/kidehen#netid" ], "name": { "@value": "Kingsley
Uyi Idehen", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" },
"description": { "@value": "A document about me", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" },
"mainEntityOfpage": { "@id": "doc", "@type":
"http://schema.org/WebPage", "mainEntity": "#netid", "title": {
"@value": "A Personal Profile Document", "@type":
"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString" } } }] } ##
JSON-LD End ##|
*RDF-Turtle Example.*
## RDF-Turtle Start ##
@prefix schema: <http://schema.org/> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix like: <http://ontologi.es/like#> .
@prefix twitter: <https://twitter.com/kidehen#> .
@prefix linkedIn: <https://linkedin.com/in/kidehen#>.
@prefix : <#> .
:doc
a schema:WebPage;
schema:title "A Personal Profile Document"@en ;
schema:mainEntity :netid .
## About Me
:netid
a schema:Person ;
schema:name "Kingsley Uyi Idehen"@en ;
schema:description "A document about me"@en ;
owl:sameAs linkedIn:netid, twitter:netid ; # changed linkedin:netid to
linkedIn:netid
schema:mainEntityOfpage :doc .
## RDF-Turtle End ##
Both examples turn this mailing post into a WebID-Profile Document.
What's the problem with that?
WebIDs and WebID-Profile Documents are of co-equal importance in this
journey. Fixating on "WebID" is rife with problems that have stalled
adoption en masse.
Note, I am no stranger to Solid -- FWIW.
Kingsley
>
> I actually wrote up a little table in August showing how defaults on
> the server translate to requirements on the client
>
> https://github.com/w3c/WebID/issues/3#issuecomment-898951657
>
> Since we already have so many deployed WebIDs and it is
> central to the Work on Solid, I think that we would need
> to do some empirical work to find out what the options are
> for a way forward.
>
> I think we should be guided by interoperability needs of applications
> that have real momentum. Otherwise this could well be a ”number of
> angels that can fit on a pinhead” type discussion.
>
> Henry
>
>>> Best regards,
>>> Jacopo.
>>>
>>>
>
--
Regards,
Kingsley Idehen
Founder & CEO
OpenLink Software
Home Page:http://www.openlinksw.com
Community Support:https://community.openlinksw.com
Weblogs (Blogs):
Company Blog:https://medium.com/openlink-software-blog
Virtuoso Blog:https://medium.com/virtuoso-blog
Data Access Drivers Blog:https://medium.com/openlink-odbc-jdbc-ado-net-data-access-drivers
Personal Weblogs (Blogs):
Medium Blog:https://medium.com/@kidehen
Legacy Blogs:http://www.openlinksw.com/blog/~kidehen/
http://kidehen.blogspot.com
Profile Pages:
Pinterest:https://www.pinterest.com/kidehen/
Quora:https://www.quora.com/profile/Kingsley-Uyi-Idehen
Twitter:https://twitter.com/kidehen
Google+:https://plus.google.com/+KingsleyIdehen/about
LinkedIn:http://www.linkedin.com/in/kidehen
Web Identities (WebID):
Personal:http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i
:http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
Attachments
- application/pkcs7-signature attachment: S/MIME Cryptographic Signature
Received on Friday, 28 January 2022 15:15:36 UTC