Типы баз данных
<<  Открытые данные минфина россии Порядок применения инструмента переноса данных в «1С:ERP»  >>
Декларативные способы преобразования исходных данных в онтологии
Декларативные способы преобразования исходных данных в онтологии
Содержание
Содержание
Актуальность
Актуальность
Метрики независимые от данных
Метрики независимые от данных
Контексты данных, подлежащие преобразованию
Контексты данных, подлежащие преобразованию
Императивный подход
Императивный подход
?
?
Постановка задачи преобразования
Постановка задачи преобразования
Компоненты преобразования
Компоненты преобразования
Преобразования без промежуточных состояний
Преобразования без промежуточных состояний
Конвейер
Конвейер
Пример преобразования
Пример преобразования
Пример преобразования: описание диаграммы IDEF0
Пример преобразования: описание диаграммы IDEF0
Пример преобразования: описание диаграммы классов UML
Пример преобразования: описание диаграммы классов UML
Пример преобразования: Фрагмент RDF-описания диаграммы IDEF0
Пример преобразования: Фрагмент RDF-описания диаграммы IDEF0
Пример преобразования: правило 1
Пример преобразования: правило 1
Примеры запросов на языке SPARQL
Примеры запросов на языке SPARQL
Альтернатива представлению RDF: N-Triples
Альтернатива представлению RDF: N-Triples
Пример преобразования: правило 2
Пример преобразования: правило 2
Формализация преобразования (1)
Формализация преобразования (1)
Формализация преобразования (2)
Формализация преобразования (2)
Функциональный подход
Функциональный подход
Haskell – чисто функциональный подход
Haskell – чисто функциональный подход
Формализация преобразования (3)
Формализация преобразования (3)
?
?
Форматы данных: данные + метаданные
Форматы данных: данные + метаданные
Исходные данные: CSV
Исходные данные: CSV
Исходные данные: RDB, ODB
Исходные данные: RDB, ODB
Исходные данные: XML
Исходные данные: XML
Язык трансформаций XSLT
Язык трансформаций XSLT
Web как источник данных
Web как источник данных
Преобразование контекста данных в Web (1)
Преобразование контекста данных в Web (1)
Преобразование контекста данных в Web (2)
Преобразование контекста данных в Web (2)
Исходные данные: разные форматы
Исходные данные: разные форматы
Особый вид парсера: Parsec
Особый вид парсера: Parsec
Исходные данные: текстовые (1)
Исходные данные: текстовые (1)
Исходные данные: текстовые (2)
Исходные данные: текстовые (2)
Исходные данные: текстовые (3)
Исходные данные: текстовые (3)
Исходные данные: текстовые (4)
Исходные данные: текстовые (4)
Примеры: Поиск на основе семантических классов (1)
Примеры: Поиск на основе семантических классов (1)
Примеры: Поиск на основе семантических классов (2)
Примеры: Поиск на основе семантических классов (2)
Примеры: ЕНИП СПбНЦ РАН [spbrc
Примеры: ЕНИП СПбНЦ РАН [spbrc
/ras/view/person/general
/ras/view/person/general
Примеры: ЕНИП преобразование данных
Примеры: ЕНИП преобразование данных
Примеры: ЕНИП интеграция [enip
Примеры: ЕНИП интеграция [enip
Выводы
Выводы
Список литературы: [dcmi] DCMI http://dublincore
Список литературы: [dcmi] DCMI http://dublincore
[sparql] SPARQL http://www
[sparql] SPARQL http://www
[vcard] RDF vCard http://www
[vcard] RDF vCard http://www

Презентация на тему: «Декларативные способы преобразования исходных данных в онтологии». Автор: Сергей Перминов. Файл: «Декларативные способы преобразования исходных данных в онтологии.ppt». Размер zip-архива: 1802 КБ.

Декларативные способы преобразования исходных данных в онтологии

содержание презентации «Декларативные способы преобразования исходных данных в онтологии.ppt»
СлайдТекст
1 Декларативные способы преобразования исходных данных в онтологии

Декларативные способы преобразования исходных данных в онтологии

Симпозиум «Онтологическое моделирование: состояние и направления исследований и применения» Звенигород, 20 – 21 мая 2008 года

Воробьев Владимир Иванович Перминов Сергей Владимирович Санкт-Петербургский институт Информатики и Автоматизации РАН [www.spiiras.nw.ru] СПб, 14-я линия ВО, т. 328-43-69

2 Содержание

Содержание

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

3 Актуальность

Актуальность

Петабайтные наборы данных требуют новый стиль работы. Данные должны быть самоописываемыми (метаданные) непроцедурные языки манипулирования данными играют основную роль в обеспечении поиска и анализа данных. Данные эволюционизируют. Эволюцию данных без затрагивания программ высокопроизводительные процессоры онтологий общего назначения. Метрики

4 Метрики независимые от данных

Метрики независимые от данных

Необходимы инварианты для контроля трансформации данных: Симметрия (контроль невозможности некоторых преобразований) Простота Порядок Энтропия Сохранение Информация Неоднозначность

5 Контексты данных, подлежащие преобразованию

Контексты данных, подлежащие преобразованию

Любые, зависят от постановки задачи Базы данных (реляционные, объектные…) Форматы данных (текстовые, бинарные…) XML-данные Программы на различных языках… Размещение данных Локально (обращение к файловой системе) В локальной сети (сетевая ФС, SQL) В Интернет (многообразие сервисов доступа) Web (HTTP/HTML)

6 Императивный подход

Императивный подход

Постоянная смена «состояния» программы Строки – команды ОС и процессору

int i = 0; Int k = 5; Int j = k - i; k = 4; i = j – k;

Регистры

Изменение

7 ?

?

Задача преобразования

Возможные сложности: негибкость, сложность автоматизации оценка (качества) преобразования два программиста решат по-разному (высокая степень свободы) зависят от программиста

Исходные контексты данных Таблица Excel XML-файл Др. язык описания Онтология на CycL или KIF…

Выходные контексты данных RDF/OWL KIF CycL…

8 Постановка задачи преобразования

Постановка задачи преобразования

Необходимо снизить степень свободы в реализации преобразования Автоматизация построения преобразования (повторное использование компонентов) Компоненты = функции преобразования Упрощение (возможное построение интерфейса) Выполнение в параллельных процессах

9 Компоненты преобразования

Компоненты преобразования

Преобразование = функция ?-выражения как способ представления функций

3 + 2 (? x. x + 2) 3 (? f. f 3) (? x. x + 2)

0 := ? f x. x 1 := ? f x. f x 2 := ? f x. f (f x) 3 := ? f x. f (f (f x))

SUCC := ? n f x. f (n f x) PLUS := ? m n f x. n f (m f x) MULT := ? m n f. m (n f)

10 Преобразования без промежуточных состояний

Преобразования без промежуточных состояний

Композиция функций: Каналы в командной оболочке UNIX: ls | grep test | cat > out.txt Преобразования строк в языке Java: string.trim().replace(‘:’,’;’).toLowerCase().substring(2) Программа на языке Haskell: main = interact $ show . apply length id . map toLower where apply fnA fnB x = (fnA x, fnB x)

11 Конвейер

Конвейер

Входные данные

in

F1

F2

out

F3

G

H

Выходные данные

12 Пример преобразования

Пример преобразования

UML (диаграмма классов)

IDEF0

13 Пример преобразования: описание диаграммы IDEF0

Пример преобразования: описание диаграммы IDEF0

Block_ID

hasArrowEnd

Arrow_ID

atBlock

ArrowEnd

rdfs:subClass

Output_ID

Mechanism_ID

Input_ID

Control_ID

14 Пример преобразования: описание диаграммы классов UML

Пример преобразования: описание диаграммы классов UML

Parameter_ID

parameter

type

Method_ID

Type

Attribute_ID

method

PrimitiveType_ID

attribute

Class_ID

Class_ID

rdfs:subPropertyOf

composes

inherits

15 Пример преобразования: Фрагмент RDF-описания диаграммы IDEF0

Пример преобразования: Фрагмент RDF-описания диаграммы IDEF0

<tf:Arrow rdf:ID="S.42"> <tf:name>Together</tf:name> <tf:hasArrowEnd> <tf:Mechanism rdf:ID="S.43"> <tf:atBlock rdf:resource="#S.8"/> </tf:Mechanism> </tf:hasArrowEnd> <tf:hasArrowEnd> <tf:Mechanism rdf:ID="S.44"> <tf:atBlock rdf:resource="#S.15"/> </tf:Mechanism> </tf:hasArrowEnd> </tf:Arrow>

16 Пример преобразования: правило 1

Пример преобразования: правило 1

дуги механизмов являются объектами класса, для которых блок — это их метод. Запрос: SELECT ?class ?name WHERE { %class . _:class tf:name ?name } Выходные логические тройки: ?class a tf:Class . ?class tf:name ?name

Где: %class = ?Class a tf:mechanism . _:class a tf:arrow . _:class tf:hasarrowend ?Class

17 Примеры запросов на языке SPARQL

Примеры запросов на языке SPARQL

SELECT ?obj WHERE { ?subj a tf:Arrow. ?subj tf:name ?obj. }

SELECT ?obj WHERE { ?subj rdf:type tf:Arrow. ?subj tf:name ?obj. }

SELECT DISTINCT ?arrow ?s WHERE { ?arrow a tf:Arrow. ?mechanism a tf:Mechanism. ?arrow tf:hasArrowEnd ?mechanism. ?arrow tf:name ?name. }

Только для чтения http://jena.Sourceforge.Net/

18 Альтернатива представлению RDF: N-Triples

Альтернатива представлению RDF: N-Triples

<Http://nil.Org/ntriples/> <http://nil.Org/creator> "dave beckett" . <http://nil.Org/ntriples/> <http://nil.Org/creator> "art barstow" . <http://nil.Org/ntriples/> <http://nil.Org/publisher> <http://an.Org/> . rdf-эквивалент: <rdf:rdf xmlns:rdf=“..“ Xmlns:nil="http://nil.Org/"> <rdf:description rdf:about="http://nil.Org/ntriples/"> <dc:creator>art barstow</dc:creator> <dc:creator>dave beckett</dc:creator> <dc:publisher rdf:resource="http://an.Org/"/> </rdf:description> </rdf:rdf> http://www.W3.Org/TR/rdf-testcases/#ntriples

19 Пример преобразования: правило 2

Пример преобразования: правило 2

дуги механизмов являются объектами класса, для которых блок — это их метод. Запрос: SELECT ?class ?method ?name WHERE { %method . ?method tf:name ?name } Выходные логические тройки: ?class a tf:Class . ?method a tf:Method . ?class tf:method ?method . ?method tf:name ?name

Где: %method = %class . ?Method a tf:block . ?Class tf:atblock ?Method

20 Формализация преобразования (1)

Формализация преобразования (1)

RDF/OWL

N-Triples

Шаблон

SPARQL

N-Triples

N-Triple

RDF/OWL

21 Формализация преобразования (2)

Формализация преобразования (2)

Haskell: f = makeRDF . delDuplicates . concat . map templates templates = map (uncurry makeTemplate) zip (sparqls,tripless) makeTemplate sparql triples = = \rdf -> makeTriples (request sparql rdf) triples

22 Функциональный подход

Функциональный подход

map (*2) [1,2..100] = [2,4..200] int[] is = new int[1000] for (int i = 0; i < is.length; i++) { is[i] = i*2; } return is; reduce (+) [1..100] = 5050 int[] is = new int[100] int sum = 0; for (int i = 0; i < is.length; i++) { sum += is[i]; } return sum;

[Google MapReduce]

23 Haskell – чисто функциональный подход

Haskell – чисто функциональный подход

нет императивных конструкций интерференция типов (type classes) «ленивые» вычисления main = print . sum . take 100 $ [1..] полигон для разработки чисто функциональных (являющихся декларативными) программ Уникальное свойство: декларативная реализация ввода-вывода main = writeFile output . process =<< readFile input

24 Формализация преобразования (3)

Формализация преобразования (3)

Schema/Lisp: (define (f rdf) (make-rdf (del-duplicates (concat (map templates rdf))))) (define templates (user-map (make-template sparqls tripless))) (define (make-template sparql triples) (lambda rdf (make-triples (request sparql rdf) triples)))

25 ?

?

Формализация преобразования (4)

Запрос?

N-Triples

Шаблон

N-Triples

N-Triple

RDF/OWL

26 Форматы данных: данные + метаданные

Форматы данных: данные + метаданные

CSV Иван,Иванович,Иванов¶ Петр,Петрович,Петров¶

XML <html> <head> <title>Кленовые</title> </head> <body> <h1>Кленовые</h1> <p>Семейство растений</p> </body> </html>

Таблица, RDB

Имя

Отч.

Фам.

Иван

Иванович

Иванов

Петр

Петрович

Петров

27 Исходные данные: CSV

Исходные данные: CSV

parse = split “,” . lines Регулярные выражения (regex) Утилиты UNIX (awk, sed) Библиотеки (API) языков программирования

Иван,Иванович,Иванов¶ Петр,Петрович,Петров¶

28 Исходные данные: RDB, ODB

Исходные данные: RDB, ODB

SQL SELECT * FROM books WHERE price > 100.00 ORDER BY title; OQL SELECT pc.cpuspeed FROM PCs pc WHERE pc.ram > 64

Имя

Отч.

Фам.

Иван

Иванович

Иванов

Петр

Петрович

Петров

29 Исходные данные: XML

Исходные данные: XML

xPath //head/title/string(.) //dict/key[string(.)='Comments']/ .[following-sibling::string[1]/ contains(string(.),'>')]/ following-sibling:: key[string(.)='Location']/ following-sibling::string[1]/string(.) xQuery XSLT

XML <html> <head> <title>Кленовые</title> </head> <body> <h1>Кленовые</h1> <p>Семейство растений</p> </body> </html>

30 Язык трансформаций XSLT

Язык трансформаций XSLT

Язык запросов язык шаблонов функциональный язык

<xsl:stylesheet xmlns:xsl=".." version="1.0"> <xsl:template match="/persons"> <root><xsl:apply-templates select="person"/></root> </xsl:template> <xsl:template match="person"> <name username="{@username}"> <xsl:value-of select="name" /> </name> </xsl:template> </xsl:stylesheet>

31 Web как источник данных

Web как источник данных

Web уже сейчас – большая (слабоструктурированная) БД Интерфейсы к БД Тексты Словари Каталоги… HTTP/HTML Потенциал Web в плане интеграции ресурсов

32 Преобразование контекста данных в Web (1)

Преобразование контекста данных в Web (1)

33 Преобразование контекста данных в Web (2)

Преобразование контекста данных в Web (2)

Словарь

Меню

Название

Текст

Страница

Статья

1

2

Малый энциклопедический…

Везде

Кленовые

Кленовые, (Aceraceae), сем. растений из класса…

Новости

34 Исходные данные: разные форматы

Исходные данные: разные форматы

Собственные языки запросов, программные интерфейсы языков программирования Синтаксические анализаторы (парсеры) ANTLR JavaCC …

grammar T; def : modifier+ 'int' ID '=' INT ';‘ | modifier+ 'int' ID ';‘ ; modifier : 'public' | 'static' ; INT : '0'..'9'+ ; ID : 'a'..'z'+ ; WS : (' '|'\r'|'\n')+ {$channel = HIDDEN;} ;

35 Особый вид парсера: Parsec

Особый вид парсера: Parsec

expr = buildExpressionParser table factor <?> "expression“ table = [[op "*" (*) AsscocLeft, op "/" div AssocLeft] , [op "+" (+) AssocLeft, op "-" (-) AssocLeft]] where op s f assoc = Infix (do{ string s; return f}) assoc factor = do char '(‘ x <- expr char ')‘ return x <|> number <?> "simple expression"

Описывает грамматику в BNF Встроен в язык Haskell

36 Исходные данные: текстовые (1)

Исходные данные: текстовые (1)

37 Исходные данные: текстовые (2)

Исходные данные: текстовые (2)

0.6% 1890 0.6% 1907 0.6% 2 0.6% 2001 0.6% 2008 0.6% 5 0.6% 8 0.6% 90 2.4% a 0.6% acer ... 0.6% цветами 0.6% чашелистиков 0.6% экипажном 0.6% энциклопедический 0.6% явор

Страница

Слово

Слово

Слово

1890

Явор

1907

Вес

Вес

Вес

0.6%

0.6%

0.6%

38 Исходные данные: текстовые (3)

Исходные данные: текстовые (3)

Тузов В.А.

Семантические классы

0.6% 1890 0.6% 1907 0.6% 2 0.6% 2001 0.6% 2008 0.6% 5 0.6% 8 0.6% 90 2.4% a 0.6% acer ... 0.6% цветами 0.6% чашелистиков 0.6% экипажном 0.6% энциклопедический 0.6% явор

Знания

Фо

Литература

Природа

Неодуш.

Вещь

Книга

Корресп.

Растения

Техника

Трактат

Повесть

Транспорт

Травы

Деревья

Сухопутный

Без двигателя

Обозначение: - подкласс

39 Исходные данные: текстовые (4)

Исходные данные: текстовые (4)

Словарь

Сем. Классы

Меню

Название

Текст

Возможности для семантического поиска

Заголовок

Страница

Статья

Фо

1

2

Знания

Природа

Книга

Растения

Вес

0.2%

Вес

1.4%

Обозначение: - подкласс

Яндекс.Словари…

Малый энциклопедический…

Везде

Кленовые

Новости

Кленовые, (Aceraceae),...

Трактат

Деревья

40 Примеры: Поиск на основе семантических классов (1)

Примеры: Поиск на основе семантических классов (1)

41 Примеры: Поиск на основе семантических классов (2)

Примеры: Поиск на основе семантических классов (2)

Традиционный поиск: (эффективный) поисковый запрос ограничен 3-10 ключевыми словами Поиск на основе семантических классов: эффективный поисковый запрос неограничен

42 Примеры: ЕНИП СПбНЦ РАН [spbrc

Примеры: ЕНИП СПбНЦ РАН [spbrc

nw.ru]

Cовместный проект с ВЦ РАН им. А.А.Дородницына

43 /ras/view/person/general

/ras/view/person/general

html?id=14287

/ras/view/person/general.rdf?id=14287

Примеры: ЕНИП предоставление данных

http://www.spbrc.nw.ru

http://www.spbrc.nw.ru

44 Примеры: ЕНИП преобразование данных

Примеры: ЕНИП преобразование данных

45 Примеры: ЕНИП интеграция [enip

Примеры: ЕНИП интеграция [enip

ras.ru]

46 Выводы

Выводы

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

47 Список литературы: [dcmi] DCMI http://dublincore

Список литературы: [dcmi] DCMI http://dublincore

org/ [enip] ENIP http://enip.ras.ru/index.html [esa] ResearchChannel - Enhancing Text Representation Through Knowledge-Based Feature Generation http://www.researchchannel.org/prog/displayevent.asp?rid=3604 [foaf] FOAF http://www.foaf-project.org/ [rss] RDF RSS http://web.resource.org/rss/1.0/spec [protege] Prot?g? Ontology Editor http://protege.stanford.edu/

48 [sparql] SPARQL http://www

[sparql] SPARQL http://www

w3.org/TR/rdf-sparql-query/ [sw] Berners-Lee T., Hendler J., Lassila O. The Semantic Web Scientific American. 2001. No. 5. P. 34-43. [sw-intro] Henry Story RDF - Connecting Software and People http://bblfish.net/work/presentations/2005/ [sw-primer] Grigoris Antoniou, Frank van Harmelen. A Semantic Web Primer - MIT Press: 2004 [swoogle] Swoogle http://swoogle.umbc.edu/ [tuzov] Tuzov V. A. Computer Semantics of Russian Language SPb.: SPbSU, 2003.

49 [vcard] RDF vCard http://www

[vcard] RDF vCard http://www

w3.org/TR/vcard-rdf [w3c] World Wide Web Consortium (W3C) http://www.w3.org/

«Декларативные способы преобразования исходных данных в онтологии»
http://900igr.net/prezentacija/informatika/deklarativnye-sposoby-preobrazovanija-iskhodnykh-dannykh-v-ontologii-222196.html
cсылка на страницу

Типы баз данных

10 презентаций о типах баз данных
Урок

Информатика

130 тем
Слайды
900igr.net > Презентации по информатике > Типы баз данных > Декларативные способы преобразования исходных данных в онтологии