DUMP-2013 Наука и жизнь - Практические применения...

Preview:

Citation preview

Практические применения семантических вычислений.

Поиск по графу, контролируемый естественный язык

Сергей Горшков,«Бизнес Семантика»

1. Концепция и технологииSemantic Web

2. Создание семантических моделей. Контролируемый естественный язык

3. Применение семантических технологий в бизнес-приложениях. Аналитические возможности Semantic Web

Кодирование информациив семантическую форму

Принцип Semantic Web

Подлежащее – сказуемое – определение

Подлежащее: универсальный идентификатор объекта (URI)

Сказуемое: связь объекта с другим объектом, или название его свойства

Определение: объект или литерал

Возможные типы объектов, свойств, связей хранятся в онтологии

Примеры стандартных онтологий:

Dublin Core (DC)FOAFмикроформаты (μF)Стандарт ISO 15926

Можно также создать своюонтологию – «с нуля», или путемрасширения существующей.

Технологии, необходимые дляработы с информацией в семантической форме:

RDFRDFSOWLSPARQL

Являются стандартами или рекомендациями W3C

Взаимосвязь семантическихтехнологий

Форматы файлов:

RDF, RDFS, OWL

Редакторы

Средства конвертации

данных

Triplestore и

точка доступаSPARQL

(аналог БД)

Интерфейсыи аналитическое ПО

Животные

Собаки

Ключевые понятия семантического моделирования

Индивидуальный объектКласс: совокупность индивидуальных объектов

#Снежок#Дружок

Собаки

Ключевые понятия семантического моделирования

ЛитералСвойство

Связь объект-объектСвязь объект-литерал

ЯвляетсяРодителемИмеетИмя Организации

значение: литерал значение: объект #ЖивоеСущество

domain

range

Простейшая онтология

Клиент (класс)Название (свойство)Дочерний клиент (свойство)

Синтаксис RDFS. Определение класса и его свойств

<rdfs:Class rdf:ID="Customer"> <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/Agent"/></rdfs:Class>

Пример для программистов

<rdf:Property rdf:ID="Name"> <rdfs:domain rdf:resource="#Customer"/> <rdfs:range rdf:resource="&xsd;string"/></rdf:Property>

<rdf:Property rdf:ID="Child"> <rdfs:domain rdf:resource="#Customer"/> <rdfs:range rdf:resource="#Customer"/></rdf:Property>

Получившиеся триплеты:

Пример для программистов

<rdfs:Class rdf:ID="Customer"> <rdfs:subClassOf rdf:resource="http://purl.org/dc/terms/Agent"/></rdfs:Class>

<http://example.com/#Customer>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2000/01/rdf-schema#Class>

<http://example.com/#Customer>

<http://www.w3.org/2000/01/rdf-schema#subClassOf>

<http://purl.org/dc/terms/Agent>

Синтаксис RDF. Определение индивидуального объекта

<Customer rdf:about="http://example.com/#alpha" > <Name>Alpha, JSC</Name></Customer>

<Customer rdf:about="http://example.com/#beta" > <Name>Beta, LLC</Name> <Child rdf:resource= "http://example.com/#alpha" /></Customer>

Пример для программистов

Получившаяся онтология

dc:Agent

#Name

#Customer

#Child

xsd:string

domain

range

#Beta#Alpha

domain

range

type type

Alpha, JSC Beta, LLC

Name Name

Child

Получившиеся триплеты<http://example.com/#Name> <http://www.w3.org/

1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/1999/02/22-rdf-syntax-

ns#Property>

<http://example.com/#Name> <http://www.w3.org/2000/01/rdf-schema#range>

<http://www.w3.org/2001/XMLSchema#string>

<http://example.com/#Name> <http://www.w3.org/2000/01/rdf-schema#domain>

<http://example.com/#Customer>

<http://example.com/#Customer> <http://www.w3.org/1999/02/22-rdf-syntax-

ns#type>

<http://www.w3.org/2000/01/rdf-schema#Class>

<http://example.com/#Customer> <http://www.w3.org/2000/01/rdf-schema#subClassOf>

<http://purl.org/dc/terms/Agent>

<http://example.com/#Child> <http://www.w3.org/1999/02/22-rdf-syntax-

ns#type>

<http://www.w3.org/1999/02/22-rdf-syntax-

ns#Property>

<http://example.com/#Child> <http://www.w3.org/2000/01/rdf-schema#range>

<http://example.com/#Customer>

<http://example.com/#Child> <http://www.w3.org/2000/01/rdf-schema#domain>

<http://example.com/#Customer>

<http://example.com/#beta> <http://www.w3.org/1999/02/22-rdf-syntax-

ns#type>

<http://example.com/#Customer>

<http://example.com/#beta> <http://example.com/#Child> <http://example.com/#alpha>

<http://example.com/#beta> <http://example.com/#Name>

"Beta, LLC"

<http://example.com/#alpha> <http://www.w3.org/1999/02/22-rdf-syntax-

ns#type>

<Customer>

<http://example.com/#alpha> <http://example.com/#Name>

"Alpha, JSC"

Средства моделирования:

Protégé

Средства моделирования:

TopBraid Composer

Средства моделирования:

OWLGrEd

Средства моделирования:

i1

Альфа-тестирование

http://editor.business-semantic.ru

Чем занимается «Бизнес Семантика»?

Форматы файлов:

RDF, RDFS, OWL

Редакторы

Средства конвертации

данных

Triplestore и

точка доступаSPARQL

(аналог БД)

Интерфейсыи аналитическое ПО

Средства моделирования:

FluentEditor

Статья про контролируемый язык:

http://habrahabr.ru/post/173015/

Создание онтологии на CNL

Every customer is an agent[dc].

Every customer has-name (some-string-value).

Every customer has-child customer.

Alpha is a customer.Beta is a customer.

Alpha has-name equal-to 'Alpha, LLC'.Beta has-name equal-to 'Beta, JSC'.

Beta has-child Alpha.

Применения семантическихтехнологий в корпоративнойсреде:

Интеграция информационных систем, обмен данными

Аналитика

Управление знаниями (wiki)

Статья про применение семантики для интеграции данных:

http://habrahabr.ru/post/167419/

Что такого можно делать на графах, чего нельзя сделатьна реляционной БД?

Работать с нетипизированным контентом, в условиях меняющейся модели данных

Анализировать связи между объектами (Facebook Graph Search)

Работать со множественными значениями атрибутов

Язык SPARQL

Получим список всех клиентов:

SELECT * WHERE {?customer<http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://example.com/#Customer> }

Результат:

?customer---------------------------------------<http://example.com/#Alpha><http://example.com/#Beta>

Получить весь граф:

SELECT * WHERE {?object ?prop ?value}

Статья про анализ семантических моделей:

http://habrahabr.ru/post/178973/

Язык SPARQL

Усложняем запрос:

SELECT ?customer WHERE {

?customer<http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://example.com/#Customer> .

?customer <http://example.com/#hasName>“Alpha, LLC”^^xsd:string

FILTER (CONTAINS(STR(?customer),”Alpha”))}ORDER BY ASC(?customer)LIMIT 5 OFFSET 10

Reasoner на контролируемом языке

620075, Россия, г. Екатеринбург, ул. Бажова, д. 89

+7 (343) 2-110-220serge@business-semantic.ruhttp://www.business-semantic.ruhttp://www.business-semantic.comhttp://serge-index.livejournal.com

Recommended