我正在使用 Gnome 技术编写一个桌面应用程序,并且我已经到了开始计划语义桌面支持的阶段。
经过大量的头脑风暴、草拟想法和模型、写笔记和阅读大量有关 RDF 和相关主题的内容后,我终于想出了一份计划草案。
我决定做的第一件事是定义我将 URI 提供给资源的方式,这就是我想听听您的建议的地方。
我的程序由两部分组成:
1) 在较低级别上,定义了一个 RDF 模式。它是一组标准的类和属性,可能需要更多选项的用户进行扩展(使用翻译成 RDF 的定义语言)。
2) 在高层次上,用户使用这些类和属性定义资源。
低层没有问题,因为数据模型是公开的:即使用户决定添加新内容,也非常欢迎分享,让其他人的应用程序有更多的功能。问题出在第二部分。在更高级别,用户定义任务、会议、约会、计划和时间表。这些可能是私有的,并且用户可能更喜欢在 URI 中包含任何信息来揭示信息的来源。
所以这是我心中的问题:
1) 我应该使用哪个 URI 方案?我没有网站或任何网页,所以使用 http 没有意义。使用任何其他标准 IANA 注册的 URI 似乎也没有意义。我一直在考虑两种选择:对公共资源使用一些自定义的、我自己的 URI 方案名称,对私有资源使用裸 URN,如下所示:
urn : random_name_i_made_up : some_private_resource_uuid
但我想知道自定义 URI 方案是否是一个好的决定,我愿意听取你的想法:)
2)如何隐藏私有资源?一方面,URI 告诉任务来自哪里可能非常有用,尤其是当任务在人们之间共享和委派时。另一方面,它不考虑隐私。然后我在想,我可以/应该根据用户设置使用两种不同的 URI 样式吗?这会造成一些不一致。我不确定在这里做什么,因为我对 URI 没有任何经验。希望你能给我一些建议。