8000 Migrating non-existing vCard terms to a separate solid-extension-to-vcard vocab · Issue #8 · solid/contacts · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Migrating non-existing vCard terms to a separate solid-extension-to-vcard vocab #8

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

Closed
michielbdejong opened this issue Mar 10, 2025 · 17 comments

Comments

@michielbdejong
Copy link
Collaborator

As suggested in https://lists.w3.org/Archives/Public/semantic-web/2025Mar/0012.html - since it seems that the vcard:AddressBook we are currently using is a bit of a dead end, we might switch to foaf:AddressBook.

I would like to give this a shot, but starting with an invitation for community feedback.

We could for instance take:

  • a few weeks to vote about this (details tbd)
  • if accepted, take until the end of 2025 for implementations to add read-support for the new class(es)/predicate(s).
  • then maybe take until the end of 2029 for implementations to write data with the new class(es)/predicate(s) but still stay able to read the old one(s).

Would that be a reasonable playbook for a possible migration like this?

@csarven
Copy link
Member
csarven commented Mar 10, 2025

Better start with the use cases to understand where things could go.


I don't find foaf:AddressBook to be a good/adequate path considering the key part is about vCards, and there is no compelling reason to mix vCard and FOAF's needs/approaches in this arbitrary way.

If a class is really desired, existing http://rdfs.org/sioc/types#AddressBook may be sufficient, which acts as a collection/container. See also http://rdfs.org/sioc/spec/#sec-modules-types

One of the things that's being sought as I understand it is about expressing a container/collection, i.e., the addressbook holding vcards, and the other thing is about its discovery.

For the collection, generally "Container contains CardA, CardB" could work. (or "Collection items CardA, CardB" etc..)

This is similar to CardDAV's Address Book Data Model.

Alternatively, vCard's "Group hasMember VCard" can be used to both collect and discover the vCards.

For some systems, the class will be sufficient (like SPARQL query, or specs explicitly stating to look up that class), but generally, for follow-your-nose kind of exploration, a property indicating that something has an addressbook/cardlist etc.

@michielbdejong
Copy link
Collaborator Author

there is no compelling reason to mix vCard and FOAF's needs/approaches in this arbitrary way

Thanks for bringing this up. We're already mixing the vcard ontology with dc, acl, and schema, and foaf seems pretty on-topic to me, so I don't think adding it as a fifth one should be a deal breaker.

a "Container contains CardA, CardB" works

I don't think I understand what you are proposing here, is the purpose to remove the need for an AddressBook class?

@michielbdejong
Copy link
Collaborator Author

If a class is really desired, existing http://rdfs.org/sioc/types#AddressBook may be sufficient, which acts as a collection/container.

Ah, thanks for updating your comment, I understand better now. Sure, if we already had a desire to switch addressbooks from a Thing to a container, then it would make sense to take this opportunity to do so. So let's investigate that question in a separate issue: #9.

If we decide we want to stick to the current design of our AddressBook class, then I think sioc is not an option because of the difference between a Thing and a container, and since vcard isn't either, I think our best option for hosting our AddressBook class (in its current design) would still be foaf as was already proposed, since it feels on-topic and it's W3C controlled, but happy to hear more proposals, if we think we can find a better home for it.

@csarven
Copy link
Member
csarven commented Mar 11, 2025

What's the relationship between a vcard:AddressBook (or foaf:AddressBook) and vcard:VCard? How does that FYN currently happen? Is it specific to some set of applications, one application, a set of use cases, a spec? Once an AddressBook is discovered, how are the VCards discovered?

sioct:AddressBook (which actually exists, and better to reuse than squat or invent yet another, no?) in all likelihood is going to act very much like vcard/foaf:AddressBook.

Again, perhaps first write the use cases, or define what vcard:foaf:AddressBook really is, as well as its relationship to or inverse from vcard:VCard (or specific kinds of), then go from there. SIOC is a W3C Member submission: https://www.w3.org/submissions/sioc-spec/ .

A "container" is still a "thing", and depending on what that container is, the property that helps to discover its contained objects is usually available (e.g., dcterms:hasPart, ldp:contains, as:items, sioc:container_of).

My point is that, just defining the class is not going to be enough unless its use is intended to be very narrow in scope. For it to be generally useful, what's needed:

  • property to the instance of an addressbook
  • class for the addressbook
  • property to discover cards

The properties alone would be sufficient for FYN. Class can be useful for other cases (like querying for instance).

So, sioct:AddressBook + sioc:container_of + vcard:VCard (or its kinds) would literally solve this problem right now, but it is impossible to discuss this further meaningfully without actually writing out what's really needed. Just saying foaf:AddressBook is a possibility is not a strong argument as I see it, considering all of the above that's mentioned. YMMV.

@michielbdejong
Copy link
Collaborator Author
michielbdejong commented Mar 11, 2025

How does that FYN currently happen?

@csarven if you're asking this because you don't know, then see #11. I agree the documentation is a bit lacking, and we should improve it. But that's a separate topic, we can discuss that there.

Furthermore, if you have a proposal for improvement of how this client-client spec works, then you can comment on #9 and/or open a separate issue about it. But let's not get tempted to reinvent the wheel if there's no need for it, because the way this works and how the current client-client spec serves its use cases has been stable for at least 5 years, and it is not up for discussion. At least not in this discussion - let's stay on-topic about the ontology migration please!

I added this topic (the ontology migration, that is) to the CG call agenda for next week: https://hackmd.io/NR7hHvEbQcKDBHEJUh4hXg#Moving-AddressBook-from-vcard-to-foaf

@csarven
Copy link
Member
csarven commented Mar 11, 2025

I've mentioned and asked a bunch of things but you seem to have sidestepped the most of it.

If you just want a Class, I pointed you to the existing sioct:AddressBook. You seem to be dismissing that because it doesn't match your issue's question about whether to "migrate" to FOAF, which by the way, is still very much hypothetical, and still needs discussion, use cases, and consensus to introduce to FOAF - not to forget, a vocabulary that is not particularly maintained since the migration to schema.org. That's all meanwhile you're drafting a "plan" with dates and everything for the migration. It seems to be that you have made up your mind, so I don't know what you're really after other than trying to get agreement as opposed to taking just a moment to consider and discuss what may be really needed here. I'm all ears to your definition of foaf:AddressBook (with zero guarantee that it will actually happen) in contrast to sioct:AddressBook.

Let me just say that I don't have a horse in this race. As I've said earlier, all that I brought up are considerations to unpack whatever you think you are trying to do.

It seems I've overstayed my welcome in this issue, so, I'll bow out and let you work it out from here.

@timbl
Copy link
Contributor
timbl commented Mar 12, 2025

I strongly disagree with the proposal to migrate from the W3C vcard: ontology (http://www.w3.org/2006/vcard/ns#) to FOAF.

  • vcard: was designed for contact information
  • vcard: is specified to be able to convert to and from and back with industry-standard VCARDs which are ubiquitous
  • There is a bunch of code - in SolidOS and elsewhere which uses vcard:
  • There is a bunch of data in my pods and systems which is in vcard:

"A dead end" in what sense? Not being maintained? Let's maintain it.

@melvincarvalho
Copy link
Member

Seems like the main issue is just structuring a vCard collection with some categories (‘Personal’, ‘Work’, etc.). If we’re keeping vCard, let’s define AddressBook cleanly. The real question is how change control works in practice—if it’s possible, it should help apps evolve quickly.

@michielbdejong
Copy link
Collaborator Author

Discussed in today's CG call. We'll migrate to a newly created 'Solid extension to vcard' vocabulary.
Instead of waiting to end of 2025, we will switch to read/write as soon as all known instances of all known applications have updated.

@michielbdejong michielbdejong changed the title Migration from the W3C vCard to the W3C FOAF ontology? Migrating non-existing vCard terms to a separate solid-extension-to-vcard vocab Mar 19, 2025
@melvincarvalho
Copy link
Member

Discussed in today's CG call

Link

@michielbdejong
Copy link
Collaborator Author

Namespace URL and commonly used prefix tbd. I'll create the ontology description, the PR to SolidOS, and the PR to Solid Data Modules soon.

@melvincarvalho
Copy link
Member

@michielbdejong I totally agree that devs need to be able to work without blockers. But just out of curiosity—what exactly would break if we simply kept things as vcard:AddressBook? I mean, does anything in the application actually stop working? We've been using vcard:AddressBook for 10 years now, and as far as I know, nothing has broken. So, would waiting a year for this term really be such a big issue?

@michielbdejong
Copy link
Collaborator Author
michielbdejong commented Mar 20, 2025

Given positive reaction so far from IETF, let's see if we can get edit https://www.w3.org/2006/vcard/ns# with the terms in #12. If that fails, we can still do the migration [EDIT: if the SolidOS team agrees and accepts our PR to do so].

@michielbdejong
Copy link
Collaborator Author

Great news, vcard:Addressbook and the other 5 terms are now present in https://www.w3.org/2006/vcard/ns with a clear note saying they are not present in the IETF vcard standard. So no migration necessary anymore! :) Closing this.

@csarven
Copy link
Member
csarven commented May 7, 2025

It'd be great if you can provide any references to:

Who decided to add it?

Who added it?

Who was informed about the update?

How were you informed about the update?

@michielbdejong
Copy link
Collaborator Author

Yes, the discussion got to https://lists.w3.org/Archives/Public/semantic-web/2025Mar/0143.html and then @pchampin did the hard work of getting it updated! :)

@melvincarvalho
Copy link
Member

Great work @michielbdejong !

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

No branches or pull requests

4 participants
0