Я играю с RDF и, в частности, как получить доступ к информации, хранящейся в хранилище rdf. Огромное отличие от традиционной реляционной базы данных состоит в отсутствии предопределенной схемы: в реляционной базе данных вы знаете, что таблица имеет эти столбцы, и вы можете технически сопоставить каждую строку экземпляру класса. Класс имеет хорошо определенные методы и четко определенные атрибуты.Рекомендации по доступу к данным без схемы?
В системе без схемы вы не знаете, какие данные связаны с данной информацией. Это похоже на таблицу базы данных с произвольным и не предопределенным количеством столбцов, и каждая строка может иметь данные в любом количестве этих столбцов.
Как и ObjectRelational Mappers, есть объектные RDF-карты. RDFAlchemy и SuRF - это те, с которыми я играю сейчас. В основном, они предоставляют вам объект Resource, методы и атрибуты которого предоставляются динамически. Это имеет смысл ... однако, это не так просто. Во многих случаях вы предпочитаете иметь четко определенный интерфейс и иметь больший контроль над тем, что происходит, когда вы устанавливаете и получаете данные на объекте модели. Наличие такого общего доступа затрудняет, в некотором смысле.
Другое дело (и самое главное) я отметил, что, даже если ввообще, данные схемы менее, как ожидается, обеспечить произвольную информацию о ресурсе, на практике вы более или менее знают «классы информации «которые, как правило, вместе. Конечно, вы не можете исключить наличие дополнительной информации, но это, в некоторых случаях, является исключением, а не нормой, хотя исключение достаточно разумно, чтобы быть слишком разрушительным для строгой схемы. В rdf-представлении статьи (например, как в каналах RSS/ATOM) вы знаете условия ваших описанных ресурсов, и вы можете сопоставить их с четко определенным объектом. Если вы предоставите дополнительную информацию, вы можете определить расширенный объект (унаследованный от базовой), чтобы предоставить доступ к расширенной информации. Таким образом, в некотором смысле, вы имеете дело с данными, не имеющими схемы, с помощью «объектов, ориентированных на схему», вы можете расширить , когда вы хотите увидеть конкретную дополнительную информацию, которая вас интересует.
Мой вопрос относительно вашего опыта использования реальных практик использования данных без использования схемы. Как они сопоставляются с объектно-ориентированным миром, чтобы вы могли использовать его профессионально и не приближаясь к «голой части» без хранения схемы? (в терминах RelDB, не используя слишком много SQL и непосредственно возиться со структурой таблицы)
Является ли доступ обременительным, чтобы он был очень общим (например, атрибуты подключаемого устройства SuRF «являются самым высоким, наиболее специализированным уровнем, доступ к вашим данным) или наличие специализированных классов для конкретных согласованных удобных схем также является хорошим подходом, но, тем не менее, существует риск распространения классов для доступа к новым и неожиданным связанным данным?
Теперь это ОГРОМНЫЙ вопрос – rossipedia
Для длины или сложности? :П –