Набор тезисов, которые я как-то понял по итогам обсуждений с
vvagr,
algebraic_brain,
justy_tylor (начало этого обсуждения, как я помню, заложил
avlasov, который подкинул "понимание ISO 15926, как типов" в наших питерских беседах несколько месяцев назад -- но тогда я сам вообще ничего не понял про описываемые ниже механизмы, хотя "дух высказывания" про "модель данных -- это типы в языке программирования" мне был интуитивно вполне понятен и я эти несколько месяцев просто "не знал, но верил". В конце концов, EXPRESS -- это ведь как раз про типы!):
1. Дано: Часть 7 говорит, что ISO 15926 -- это FOL (при этом мы пока игнорируем часть 8, про которую явно сказано, что это уже не суть, а "возможная реализация"). Требуется: определить, как сделать "язык запросов" для RDL -- язык запросов, работающий не в OWL или EXPRESS, а в родных для ISO 15926 понятиях.
2. Из опыта: язык запросов -- это обычный язык программирования, полный по Тьюрингу. Ибо любой язык запросов должен бы дорасти до полного языка программирования. Например, хорошим языком программирования является Питон. Итого: требуется сообразить, как FOL связан с вычисляемым языком программирования.
3. Есть тезис о связи типов (алгебраических --
http://en.wikipedia.org/wiki/Algebraic_data_type) языка программирования, логических высказываний и декартово замкнутых категорий --
http://www.haskell.org/haskellwiki/Curry-Howard-Lambek_correspondence. Важное замечание от
algebraic_brain, которому я склонен верить: "алгебраические типы по настоящему можно понять только с использованием теории категорий". Я тут сразу расслабляюсь, и заявляю, что по-настоящему я сам тут ничего не понимаю -- но в предыдущем обсуждении этого вопроса о языке я интуитивно спросил "может ли здесь помочь теория категорий?" (
http://community.livejournal.com/dot15926/11924.html). Оказалось, может -- хотя и косвенно: способствуя пониманию алгебраических типов.
4. Теперь нужно четко сказать, что у нас "язык запросов" будет не с регулярными выражениями, а с pattern matching --
http://en.wikipedia.org/wiki/Pattern_matching.
5. Редактор у нас будет профессиональный -- то есть не типа Word для сугубо литературного творчества, в котором консоль на Visual Basic выведена куда-то глубоко под капот, а типа Vim или Emacs, то есть для программирования. В редакторе будет консоль для запросов/фильтров/поисков/команд/скриптов/всего, чего угодно! Программирование на .15926L вполне возможно -- хоть "запросов", хоть чего другого.
6. [еретизм он]Ежели мы договорились, что ISO 15926 -- это система типов языка (что обсуждалось у нас в этом комьюнити уже десяток раз), то и хранилище данных для этих типов может быть не из semantic web. Например, можно смотреть не на triple store, как мы пытались раньше, а на key-value persistence.[еретизм офф]
7. Часть 8 с OWL/SPARQL и другие реализации (XMpLant, например), мы считаем "внешними", и делаем к ним мэппинг. То есть для каждой иной (не нашей) реализации делается адаптер, и мы для нее выглядим белыми и пушистыми реализационно. А сущностно -- так мы не только белые и пушистые, мы вообще ангельские, ибо работаем в терминах шаблонов, родных терминах ISO 15926.
Как всегда, говоря "язык", я говорю не о нотации. Нотация может быть хоть в Питоне, хоть controlled English, хоть фрагментами на Haskell -- это сейчас неважно. Главное, что стало понятно, что такое "язык ISO 15926".