2013-05-29 2 views
5

Я пишу настольное приложение с использованием технологий Gnome, и я достиг стадии . Я начал планировать поддержку Semantic Desktop.Назначение URI для ресурсов RDF

После многого мозгового штурма, набросания идей и моделей, написание заметок и много читающих о RDF и смежных вопросах, я, наконец, придумал проект плана .

Первое, что я решил сделать, это определить способ предоставления URI ресурсов, и именно здесь я хотел бы услышать ваш совет.

Моя программа состоит из двух частей:

1) на нижний уровень, определяются схема RDF. Это стандартный набор классов и свойств , которые могут быть расширены пользователями, которые хотят получить дополнительные опции (используя язык определения, переведенный в RDF).

2) На высоком уровне пользователь определяет ресурсы, используя эти классы, и свойства .

Там нет никаких проблем с более низким уровнем, так как модель данных общественности: Даже если пользователь решает добавить новое содержание, она очень полезна для поделиться им и сделать приложение других людей имеют больше возможностей. Проблема заключается в со второй частью. На более высоком уровне пользователь определяет задачи, встреч, встреч, планов и расписаний. Они могут быть частными, и пользователь может предпочесть иметь любую информацию в URI, раскрывающую источник информации.

Так вот вопросы у меня на уме:

1) Какой URI схемы я должен использовать? У меня нет веб-сайта или любого веб-сайта страниц, поэтому использование http не имеет смысла. Похоже, что не имеет смысла использовать любой другой стандартный IRI-зарегистрированный URI. Я рассматривает два варианта: использовать некоторые пользовательские, мой собственный, URI имя схемы для государственных ресурсов, а также использовать голую URN для частных, что-то вроде это:

urn : random_name_i_made_up : some_private_resource_uuid 

Но мне было интересно ли пользовательская схема URI - хорошее решение, я открыт для прослушивания идей от вас :)

2) Как скрыть частные ресурсы? С одной стороны, может быть очень полезным для URI, чтобы сообщить, откуда взялась задача, особенно когда задачи разделены и делегированы между людьми. С другой стороны, это не считают конфиденциальность. Затем я подумал: могу ли я/использовать два разных стиля URI в зависимости от настроек пользователя? Это создало бы несоответствие . Я не уверен, что делать здесь, так как у меня нет никакого опыта работы с URI. Надеюсь, у вас есть несколько советов для меня.

ответ

3

1) Какую схему URI я должен использовать?

Я бы посоветовал стандарт urn:uuid:, за которым следует ваш ресурс UUID. Использование стандартов, как правило, предпочтительнее, чем для домашних решений!

2) Как скрыть частные ресурсы?

Не используйте разные схемы идентификаторов. Пытаться испечь авторизацию и контроль доступа в схему идентичности - это смешение слоев таким образом, чтобы в будущем вам было больно. Например, что происходит, если пользователь делает доступный в настоящее время частный контент (например, черновик) публичным (теперь он доступен для публикации)?

Иметь единое единообразное решение идентификатора, а затем предоставлять одну или несколько служб, которые могут или не могут разрешить данный идентификатор документа, в зависимости от контекста (идентификатор пользователя, метаданные о самом содержимом и т. Д. И т. Д.). Да, это очень похоже на HTTP-сервер, поэтому вы можете захотеть пересмотреть, есть ли встроенная служба HTTP в вашей архитектуре. Если нет, то служба, которая вам нужна, будет иметь много общего с HTTP, вам просто нужно выяснить обстоятельства, при которых идентификатор может быть разрешен к документу, что происходит, когда это невозможно или не разрешено, и т. Д.

Вы также можете рассмотреть, где вы собираетесь добавить наибольшую ценность. Повторное создание основных протоколов доступа к сервисам может быть забавным, но ваши пользователи могут получить больше пользы, если вы повторно используете стандартные компоненты на базовом уровне обслуживания и вместо этого сконцентрируетесь на инновациях и добавлении функций, когда пользователь действительно имеет доступ к объекты содержимого.

+0

Спасибо, я буду использовать UUID, как вы предлагаете. Сам URI не будет содержать никаких данных местоположения, но совместное использование ресурсов будет по-прежнему возможно: через некоторую внешнюю службу, например, HTTP/XMPP, пользователи подключаются друг к другу и могут отправлять ресурсы друг другу с помощью протокола. Затем ресурс может иметь сведения, позволяющие получить к нему доступ. Таким образом, частный ресурс по-прежнему остается частным, если не делиться с другими людьми :) – cfa45ca55111016ee9269f0a52e771

 Смежные вопросы

  • Нет связанных вопросов^_^