В чем разница между REST и LDP?
Прежде всего, я новичок в этом...REST, RDF, LDP и т. д.
Я мог бы получить представление о REST и RDF неопределенным образом:
- REST - это среда, в которой все является ресурсом, а сложные запросы на стороне клиента преобразуются в структурные запросы на основе URI, и с помощью методов HTTP мы получим результаты в формате ресурса RDF: XML или формате json.
- RDF - это структура, объясняющая реляционную структуру или, другими словами, концептуальную модель веб-ресурса.
- LDP, похоже, такой же, как REST, использует протоколы HTTP для взаимодействия с ресурсами RDF. Я понимаю, что HTTP-протоколы используются для связи с веб-сервисами и получения результатов в HTML, JPEG, PNG или любом другом формате, даже XML. Тогда что такое ЛДП? - Это как-то обновляет XML, используя методы HTTP. Разве это не может быть сделано в обычной архитектуре. кроме ЛДП?
1 ответ
LDP, Linked Data Platform, представляет собой спецификацию W3C, определяющую стандартный способ взаимодействия серверов и клиентов с ресурсами (прежде всего ресурсами RDF) по HTTP. В частности, в нем вводятся понятия "контейнеры", "источники RDFS" и "не-RDFSources" (или двоичные файлы).
Это может помочь воспринимать RDFSource как документ, вроде веб-страницы HTML. Только контент - это не HTML, это график (набор RDF-троек) с одним и тем же URI субъекта. Вместе тройки в этом документе обычно описывают или составляют конкретную сущность или объект. Таким образом, их можно рассматривать как свойства объекта. Документ может быть выражен в RDF XML, в Turtle, JSON-LD или, возможно, в других форматах. Эти свойства могут быть буквальными значениями или ссылками на другие ресурсы.
LDP реализует архитектуру RESTful, поэтому то, как вы просматриваете этот RDFSource, зависит от того, как вы запрашиваете его в своем запросе к серверу. Если вы просите, чтобы ресурс был выражен в JSON-LD, вы должны получить JSON-LD-представление ресурса. Если вы просите это как Черепаха, вы должны получить представление Черепахи. Это делается путем передачи определенных HTTP-заголовков в запросе. Кроме того, RESTful-природа LDP позволяет вам использовать методы HTTP (GET,POST,PUT,DELETE) для взаимодействия с ресурсами различными способами.
Контейнер также является источником RDFS, но он позволяет вам управлять членством. Контейнеры могут иметь ресурсы участников. Вы можете думать о контейнере как о папке. Только физически он не содержит RDFSources или документов. Вместо этого он имеет набор триплетов (триплетов членства), которые определяют или связывают его с членами. Контейнер можно просматривать как контейнер или как источник RDFS в зависимости от предпочтительной модели взаимодействия, указанной в заголовке запроса.
Таким образом, в принципе, вы можете думать о LDP как о способе взаимодействия с ресурсами RDF способом, аналогичным веб-сайту с папками и документами. Только все это RDF, а не XHTML. На сервере сервер может фактически управлять каждым ресурсом как реальным документом (файлом). Или, как в случае с Carbon LDP, например, он может поместить все в хранилище триплетов (хранилище / база данных RDF). Затем он просто возвращает набор троек, которые выглядят как "документ", потому что они имеют один и тот же URI субъекта, который вы использовали при выполнении запроса RESTful. Поскольку Carbon LDP управляет всеми этими "документами" в хранилище триплетов, он также может обеспечить поддержку запросов SPARQL для всего (хотя поддержка SPARQL не является частью спецификации LDP).
Таким образом, по сути, LDP обеспечивает очень "сетевой" (или RESTful) способ работы с данными RDF. Вы делаете HTTP-запросы к URI, и они преобразуются в ресурсы (контейнеры или RDFSources), которые затем можно использовать для получения всех троек. И, конечно, вы можете создавать ресурсы, обновлять их, перечислять элементы контейнера и т. Д. Таким образом, вы можете создавать веб-приложения, которые используют запросы RESTful (возможно, асинхронные запросы JavaScript или AJAX).
Одно из преимуществ, которое вы выигрываете, заключается в том, что, хотя данные, с которыми вы работаете, могут быть очень специфичными для любого конкретного приложения, которое вы строите на LDP, API-интерфейс REST, который вы используете для работы с этими данными, является стандартным и согласованным.
Еще одним преимуществом является то, что вы работаете с RDF, поэтому свойства ваших объектов, предикатов, могут связывать данные на вашем предприятии или во всемирной паутине. Это может помочь вам включить данные и обнаружить вещи, которые ваше приложение, возможно, не было специально разработано для поддержки. А также, поскольку вы работаете с моделью данных RDF, вы можете использовать уже существующие словари для своих троек, но у вас не так много хлопот со схемами.
В RDF вы можете добавлять новые тройки (новые свойства или ссылки) без необходимости обновления какой-либо схемы базы данных и соответствующего кода, необходимого для ее интерпретации. LDP имеет дело с ресурсами RDF очень общим способом - его не волнует, какие на самом деле тройки определяют или составляют ресурсы. Когда вы создаете приложение LDP, вы можете расширить такого рода общее качество в приложении таким образом, чтобы ваши данные могли постоянно изменяться и развиваться без больших затрат на обслуживание и развитие самого приложения.
Такая технология помогает вам преодолеть разрыв между текущей сетью гиперссылочных документов и сетью связанных данных, что облегчает понимание и взаимодействие компьютеров. Для получения дополнительной информации о RDF и большой разнице между гиперссылкой и связанной связью данных см . Удивительную силу ссылки в связанных данных.
Вы также можете найти несколько техническое введение в LDP в разделе Введение в: Платформа связанных данных, статью, которую я недавно написал для Dataversity.