Upload
it-people
View
583
Download
0
Embed Size (px)
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) [email protected]://www.business-semantic.ruhttp://www.business-semantic.comhttp://serge-index.livejournal.com