REST/HATEOAS Microformat/FOAF/Схема, специфичная для домена путаница

В службе RESTful вы можете определить ссылки на ресурсы следующим образом:

<next xmlns="http://example.org/state-machine"
  rel="http://mydomain.example.org/user"
  url="http://mydomain.example.com/user/1234"
  type="application/xml"/>

Или пример JSON-LD:

{
  "@context": {
    "name": "http://xmlns.com/foaf/0.1/name",
    "homepage": {
      "@id": "http://xmlns.com/foaf/0.1/homepage",
      "@type": "@id"
    }
  },
  "name": "Manu Sporny",
  "homepage": "http://manu.sporny.org/"
}

Или пример vCard:

<address id="hcard" class="vcard">
<p class="fn n">
<span class="given-name">First</span>
<span class="additional-name">M</span>.
<span class="family-name">Last</span>

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

  1. В приведенных выше примерах будет ли более подходящим rel="http://mydomain.example.org/user", поскольку это пользователь, специфичный для домена, или мне следует использовать что-то подобное из foaf?

    "name": "http://xmlns.com/foaf/0.1/name",@id": http://xmlns.com/foaf/0.1/homepage"
    
  2. Меня очень смущают эти RDFa, микроформаты, микроданные, схемы, vcards, hcards, foaf, http://www.productontology.org/id/, www.schema.org/name, http://rdf.data-vocabulary.org/#name, схема json и т. д. Когда я создаю свой собственный микроформат/схему, а когда использую общедоступные, определенные в этих разных областях (vCards, hcards, foaf, productontology , schema.org)? Я понимаю, что RDFa, микроформаты и т. д. на самом деле являются общедоступными метаданными о данных, но где я могу найти их полный список для использования?

  3. Если бы мне пришлось создать свою собственную ссылку, например rel="http://mydomain.example.org/user", определяющую пользовательский объект, как мне ее задокументировать? Есть ли стандарт, которому я могу следовать? В некоторых местах предлагаются удобочитаемые документы для обнаружения или, может быть, схема JSON/XML в этом месте, описывающая контракт и версию?

  4. Одно из предложений — использовать другую версию http://mydomain.example.com/v1/user/1234 для взаимодействия с другой версией спецификации службы, чтобы существующий клиент не сломался при изменении версии.

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


person Joshscorp    schedule 13.06.2013    source источник
comment
Я нашел ответ на этом сайте полезным ="nofollow noreferrer" title="почему rdf такой старый, сложный, непопулярный и до сих пор не выброшенный">answers.semanticweb.com/questions/2918/   -  person Joshscorp    schedule 14.06.2013


Ответы (2)


Когда только начал изучать RDF/Ontology, у меня такая же путаница. Есть много словарей из разных организаций. Ключ в том, чтобы использовать те, которые хорошо зарекомендовали себя и приняты другими; но также, что более важно, убедитесь, что вы используете «термины», которые представляют «семантические значения», которые вы намереваетесь иметь в виду.
Чтобы ответить на ваши конкретные вопросы: 1) вы «можете» создавать свои собственные термины, но суть в том, что, когда другие приложения анализируют ваши термины, приложению необходимо знать, что на самом деле означают ваши термины. Если вы используете FOAF:homepage, все приложения знают его семантическое значение и то, к чему оно относится, а также из этого подразумевается, что тот, кто является субъектом (субъектом в тройке rdf) FOAF:homepage, является FOAF:Person. Здесь на помощь приходят открытые связанные данные. http://linkeddata.org/

2) У меня нет большого опыта работы с RDFa/Microfromat, я понимаю, что эти технологии хотят предоставить понятные машине семантические термины на уровне HTML. Я думаю, вы, возможно, не захотите создавать свои собственные, если они уже существуют, но вы можете определить свои собственные термины в дополнение к тому, что там есть.

3) Вы можете определять термины с помощью OWL или RDFS Только что увидел это, это может быть полезно.. https://code.google.com/p/tdwg-rdf/wiki/Beginners7OWL

Но в моем проекте Light Way мы просто создаем термины, указывая пространство имен, имя термина и его значение. Вы можете следовать следующим инструкциям, чтобы определить свои термины: http://dublincore.org/documents/dcmi-terms/

JSON/XML/N3… — это просто разные форматы сериализации, и один и тот же термин может быть сериализован в разных форматах. Важно помнить, что вы определяете семантическое значение терминов, и они будут сериализованы в разные форматы. Это не значит, что формат не важен, но все форматы указывают на один и тот же термин и одно и то же значение.

4) Я сам пересматриваю свой словарный запас. Но у меня мало информации о лучших практиках.

Надеюсь, это поможет!!

person Ming Chan    schedule 13.06.2013
comment
Да, я ломаю голову над этим, и спасибо за потрясающую ссылку... Думаю, мне придется еще что-нибудь прочитать. - person Joshscorp; 14.06.2013

В RDFa есть хорошо известное выражение для этого:

<html><body vocab="http://purl.org/dc/terms/">
<div typeof="foaf:Person">
<span property="creator">manu sporny</span>
<span property="foaf:age" content="66"/>
<span property="foaf:homepage" resource="http://x.com"/>
</div>
</body></html>

Префикс "foaf" используется RDFa по умолчанию. Нет контекста для определения. Префикс «dc» используется по умолчанию, для «creator» префикс не требуется.

Это стандарт, забудьте обо всем остальном.

Список непосредственно используемых префиксов предоставлен на http://www.w3.org/2011/rdfa-context/rdfa-1.1 Вы можете найти здесь много полезных концепций, фактически все общедоступные схемы.

Обратите внимание на префикс «схема» для словаря, определенного здесь: http://schema.org/ Он особенно богат, и широко используется. Обратите также внимание, что он пытался определить микроформат, чтобы конкурировать с нотацией RDFa. Отбросьте это и используйте словарь с RDFa.

person wiki1000    schedule 11.03.2015