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

Download Report

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

Практические применения
семантических вычислений.
Поиск по графу,
контролируемый естественный язык
Сергей Горшков,
«Бизнес Семантика»
1. Концепция и технологии
Semantic Web
2. Создание семантических моделей.
Контролируемый естественный язык
3. Применение семантических
технологий в бизнес-приложениях.
Аналитические возможности Semantic
Web
Принцип Semantic Web
Кодирование информации
в семантическую форму
Подлежащее – сказуемое – определение
Подлежащее: универсальный
идентификатор объекта (URI)
Сказуемое: связь объекта с другим
объектом, или название его свойства
Определение: объект или литерал
Возможные типы объектов, свойств,
связей хранятся в онтологии
Примеры стандартных онтологий:
Dublin Core (DC)
FOAF
микроформаты (μF)
Стандарт ISO 15926
Можно также создать свою
онтологию – «с нуля», или путем
расширения существующей.
Технологии, необходимые для
работы с информацией
в семантической форме:
RDF
RDFS
OWL
SPARQL
Являются стандартами
или рекомендациями W3C
Взаимосвязь семантических
технологий
Интерфейсы
и аналитическое ПО
Редакторы
Форматы файлов:
RDF, RDFS, OWL
Средства
конвертации
данных
Triple
store и
точка доступа
SPARQL
(аналог БД)
Ключевые понятия
семантического моделирования
Индивидуальный объект
Класс: совокупность
индивидуальных объектов
Животные
Собаки
#Дружок
#Снежок
Ключевые понятия
семантического моделирования
Литерал
Свойство
Связь объект-объект
Связь объект-литерал
значение: литерал
значение: объект #ЖивоеСущество
range
ИмеетИмя
ЯвляетсяРодителем
domain
Собаки
Организации
Простейшая онтология
Клиент (класс)
Название (свойство)
Дочерний клиент (свойство)
Пример для программистов
Синтаксис 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
#Customer
domain
domain
#Name
#Child
range
range
xsd:string
Alpha, JSC
Beta, LLC
Name
Name
type
#Alpha
#Beta
Child
type
Получившиеся триплеты
<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/XML
Schema#string>
<http://example.com/#Name>
<http://www.w3.org/2000/01
/rdf-schema#domain>
<http://example.com/#Custom
er>
<http://example.com/#Customer>
<http://www.w3.org/1999/02
/22-rdf-syntax-ns#type>
<http://www.w3.org/2000/01/r
df-schema#Class>
<http://example.com/#Customer>
<http://www.w3.org/2000/01
/rdf-schema#subClassOf>
<http://purl.org/dc/terms/Age
nt>
<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/#Custom
er>
<http://example.com/#Child>
<http://www.w3.org/2000/01
/rdf-schema#domain>
<http://example.com/#Custom
er>
<http://example.com/#beta>
<http://www.w3.org/1999/02
/22-rdf-syntax-ns#type>
<http://example.com/#Custom
er>
<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
Средства
конвертации
данных
Triple
store и
точка доступа
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-220
[email protected]
http://www.business-semantic.ru
http://www.business-semantic.com
http://serge-index.livejournal.com