Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar...

72
Adding NLP to (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The Wiki-NLP Integration Requirements Analysis System Design Implementation Hands-On Configuration Information Extraction with ANNIE Semantic Queries Application Examples ReqWiki Motivation ReqWiki Design ReqWiki Evaluation IntelliGenWiki Conclusions References Adding Natural Language Processing Support to your (Semantic) MediaWiki René Witte Bahar Sateli Semantic Software Lab Concordia University Montréal, QC, Canada SMWCon Spring 2014

Transcript of Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar...

Page 1: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Adding Natural Language Processing Supportto your (Semantic) MediaWiki

René Witte Bahar Sateli

Semantic Software LabConcordia University

Montréal, QC, Canada

SMWCon Spring 2014

Page 2: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Natural Language Processing (NLP)I A branch of Artificial Intelligence

I uses various techniques to process content written in natural language

I Multitude of NLP techniquesI Named Entity RecognitionI Question-AnsweringI Summarization

I Various NLP tools (e.g. GATE, UIMA, . . . )and APIs (e.g. OpenCalais, AlchemyAPI, . . . )

Page 3: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Cultural Heritage Data Management

Large unstructured corporaI Outdated terms, style of writing, huge amount, no categorization or assessmentI Comparing and evaluating with current content

Page 4: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki Version of 19th-century documentsThe Durm project

I Digitized version of a historical encyclopedia for architectureI Provides automatic index generation

Page 5: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

The first Wiki-NLP Experiments (ca. 2004)

Converting a Historical Architecture Encyclopedia into a Semantic Knowledge Base [WKKL10]

Page 6: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Back-of-the-Book Index Generation

....für eine äußere Abfasung der Kanten ...

für/APPR eine/ART äußere/ADJA Abfasung/NN der/ART Kanten/NN

NP:[DET:eine MOD:äußereHEAD:Abfasung]

NP:[DET:der HEAD:Kanten]

Abfasung [Lemma: Abfasung]

Abfasung: Page 182 −äußere: Page 182Kante: Page 182XML output

Index Generation

Lemmatizer

NP Chunker

POS Tagger

XML input

Kanten [Lemma: Kante]

Page 7: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Opportunities for NLP in Wikis

What could NLP provide for wikis?

I Detect various defects in its contente.g., spelling mistakes, ambiguities, readability issues

I Extract entities that are relevant to a user’s interest or contexte.g., extract all person names mentioned in the wiki

I Formally model the knowledge contained inside the wikie.g., generate Semantic MediaWiki markup from unstructured wiki text[[hasType::Enzyme|Xylanase]]

I Offer searching for content beyond keyword-based approachese.g., find all articles containing an enzyme name

I Generate its own contente.g., create summaries from long articles

I Help structuring a wikie.g., suggest terms to link to Wikipedia

WikiSym 2007: Connecting Wikis and Natural Language Processing Systems [WG07]

Page 8: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

General Architecture for Text Engineering (GATE)

Open Source Text AnalyticsMature framework, more than 10 years of developmentDevelopment team at University of Sheffield, UK (gate.ac.uk)

Page 9: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Semantic Assistants

I Service-oriented Architecture (SOA) [WG08]I Publishes various NLP pipelines as W3C Standard Web servicesI Developed by Semantic Software Lab (http://www.semanticsoftware.info)I Client plug-ins for OpenOffice, Eclipse, MediaWiki, Liferay, AndroidI Open source framework (http://www.semanticassistants.com)

NLP Service 1

NLP Service 2

NLP Service n

NLP ServiceResult

FocusedSummarization

...

Client

− Parameter− Calling an NLP Service

Word Processor

Server

Page 10: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Introduction

The Wiki-NLP IntegrationRequirements AnalysisSystem DesignImplementation

Hands-On

Application Examples

Conclusions

References

Page 11: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Problem Statement

Wiki Engine ?

...

Automatic Summarization

Information Extraction

Question Answering

Wiki System NLP Techniques

Solve common problemsI Wikis’ Loose StructureI Information Overload

Introduce new featuresI Enable Human-AI collaborationI Bring semantics to wiki content

SolutionSemantic Assistants Wiki-NLP Integration

I See [SW12] and http://www.semanticsoftware.info/semantic-assistants-wiki-nlp

Page 12: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Requirements Analysis

Three perspectives:

1. Wiki End-user Requirements

I From laypersons to technical employees

I Different cognitive backgrounds

2. Wiki Developer Requirements

I Engine developers

I Wiki administrators

3. System Requirements

Page 13: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Requirements AnalysisNLP Service IndependenceRun any NLP pipeline on wiki content

Seamless IntegrationNo context switching between wiki and the NLP framework

Easy DeploymentNo major modification on the wiki engine

Collection-based AnalysisMulti-document analysis of wiki content

Other RequirementsRead Content from Wiki, Write Results to Wiki, Flexible Response Handling,Proactive Service Execution, . . .

Page 14: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Requirements Definitions

Seamless IntegrationUsing the Wiki-NLP integration must not largely deviate from the established usagepatterns of wikis

Easy DeploymentWiki-NLP integration must not require major changes to the wiki engine or to themeans to access the wiki

Collection-based AnalysisUsers must be able to collect pages of interest and run an NLP service on thecollection at once

Page 15: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Design DecisionsDesign Questions

I Where should the Wiki-NLP integration be implemented?I How can the system interactions be realized?

Database

Web Server

Rendering Engine

Database Interface

Graphical User Interface

NLP Service ConnectorW

eb

Se

rve

r

?

?

Wiki System Semantic Assistants

Browser

AP

I

Service Information

Service Invocation

Page 16: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Design Decisions (II)Collaborative approachDivision of responsibilities based on each system capabilities

Rendering Engine

Database Interface

Graphical User Interface

Database

We

b S

erv

er

Clie

nt−

Sid

e A

bs

trac

tion

La

ye

rNLP Service Connector

AP

I

Web Server

Plu

g−

in

Wik

i−S

A C

on

necto

r

Wiki System Semantic Assistants

Browser

JavaScript

Service Invocation

Service Information

Page 17: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User InteractionDynamic User InterfaceGenerating the user interface on-the-fly

Rendering Engine

Database Interface

Graphical User Interface

We

b S

erv

er

Clie

nt−

Sid

e A

bs

trac

tion

La

ye

r

DatabaseA

PI

Plu

g−

in

Use

r Inte

rface

Web ServerNLP Service Connector

Wik

i−S

A C

on

ne

cto

r

Wiki System Semantic Assistants

Browser

JavaScript

Service Invocation

Service Information

Page 18: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Dynamic User Interface

RequirementsI Seamless IntegrationI Easy Deployment

SolutionProxy the wiki page request and embedthe user interface on-the-fly

AdvantagesI Wiki-independentI No deployment requiredI Seamless environment

Page 19: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Dynamic User Interface

RequirementCollection-based Analysis

SolutionPreserve user’s selection in thebrowser before the actual serviceinvocation (e.g., cookies)

AdvantagesI Multi-document AnalysisI Increased efficiency

Page 20: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki CommunicationWiki Bot FrameworksAccessing wiki content via its API with a higher level of abstraction

Rendering Engine

Database Interface

Graphical User Interface

We

b S

erv

er

Clie

nt−

Sid

e A

bs

trac

tion

La

ye

r

DatabaseA

PI

Plu

g−

in

User In

terfa

ce

Web Server

NLP Service Connector

Wik

i Help

er

Wik

i−S

A C

on

ne

cto

r

Browser

JavaScript

Wiki System Semantic Assistants

Service Invocation

Service Information

Page 21: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Service InvocationService Broker ComponentDelegating service invocation requests to the Semantic Assistants server

Rendering Engine

Database Interface

Graphical User Interface

We

b S

erv

er

Clie

nt−

Sid

e A

bs

trac

tion

La

ye

r

DatabaseA

PI

Plu

g−

in

Use

r Inte

rface

Se

rvic

e B

roke

r

Web Server

NLP Service Connector

Wik

i He

lpe

r

Wik

i−S

A C

on

ne

cto

r

Browser

JavaScript

Wiki System Semantic Assistants

Service Invocation

Service Information

Page 22: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki Independence

Semantics-based ArchitectureA repository of formalized descriptions of wikis written in OWL

Rendering Engine

Database Interface

Graphical User Interface

Web

Serv

er

Clie

nt−

Sid

e A

bstra

ctio

n L

ayer

Database

Language

Descriptions

Service

Wiki Ontologies

AP

I

Plu

g−

in

User In

terfa

ce

Serv

ice B

roker

Web ServerNLP Service Connector

Wik

i Help

er

Wik

i−S

A C

on

necto

r

Browser

JavaScript

Wiki System Semantic Assistants

Service Invocation

Service Information

Page 23: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki Upper Ontology

Thing

Metadata

has subclass

Namespace

has subclass

cu:Artifact

has subclass

cu:Language

has subclass

cu:Format

has subclass

History

has subclass

cu:Tool

has subclass

Page

has subclass

Resource

has subclassWiki

has subclass

has belongsTo has

Content Page

has subclass

Talk Page

has subclass

has

hashas

has

cu:Natural Language

has subclass

cu:Artificial Language

has subclass

cu:Programming Language

has subclass

Wiki Markup

has subclass

Page 24: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Merged System Architecture

Bro

wser

Tier 3: Analysis and Retrieval Tier 4: ResourcesTier 2: Presentation and InteractionTier 1: Clients

De

skto

p A

pplic

atio

n

NLP Subsystem

Wiki−SA Connector

Semantic Assistants Server

Wiki−NLP Integration

NLP Service Connector

Wiki System

We

b S

erv

er

Web

Serv

er

We

b S

erv

er

Client−Side Abstraction Layer

Database Interface

Rendering Engine

Service Invocation

Service Information

Graphical User Interface

User Interface Module

Wiki Helper Module

Plu

g−

in AP

I Service Broker Module

Language Services

Information Extraction

Automatic Summarization

Question Answering

Index Generation

Information Retrieval

The new Wiki-NLP integration module in the Semantic Assistants architecture

Page 25: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Transformation of ResultsFrom the Semantic Assistants server response to wiki markup

Sample Service Invocation Response

<saResponse><annotation type="Location" annotationSet="Annotation" isBoundless="false">

<document url="http://localhost/wiki/sample_page"><annotationInstance content="Canada" start="16" end="22">

<feature name="locType" value="country"/></annotationInstance>

</document></annotation></saResponse>

Database...

Wik

i Pa

rse

rsMarkupXMLWiki

We

b S

erv

er

Java Object

CS

AL

Lib

rarie

s

Semantic

MediaWiki

MediaWiki

Creole

R1 R2 R3 ...

Wiki Engine

Wiki SystemSemantic Assistants Wiki−SA Connector

Page 26: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Presentation of Results

Templating mechanismSeparating data model from its presentation

Page 27: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

The NLP InterfaceThe NLP user interface can now offer various text mining services

I Dynamically-generated interfaceI Customizing services at runtimeI Collection-based Analysis

Text Mining Assistants inside the wiki

Page 28: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Example: ANNIE NLP Service Results

Page 29: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Introduction

The Wiki-NLP Integration

Hands-OnConfigurationInformation Extraction with ANNIESemantic Queries

Application Examples

Conclusions

References

Page 30: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki-NLP: Initial ConfigurationWe recommend you use Firefox for the hands-on exercises.

1. Browse to http://hostname/wikinlp2. Login with the following credentials

I Username: ********I Password: ********

3. Click on the “Semantic Assistants” link on the left4. Configure the Wiki-NLP integration with the same credentials as above

Page 31: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki-NLP: Information Extraction1. Who’s your favorite celebrity or scholar? Pick one.2. Create a sample page with his/her mini-biography (Copy-Paste from Wikipedia)3. Click on the “Semantic Assistants” link on the left4. Choose a service from the “Available Assistants”5. Add the page to your “Collection”6. Go to the “Results Target” tab, investigate the options and click “Run Service”7. When finished, click on the “Page” tab on top to refresh the page and see the

results

Page 32: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wiki-NLP: Semantic Queries1. In the page you created, type the following query to find all the “Person” entities:

{{#ask: [[hasType::Person]]|?Person= Entities Found|format=table|headers=plain|default=No pages found!|mainlabel=Page Name}}

(Copy-paste from the “Sample Semantic Query” on the Main Page)2. Discover all other persons mentioned in the wiki!

Page 33: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Introduction

The Wiki-NLP Integration

Hands-On

Application ExamplesReqWiki

MotivationReqWiki DesignReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Page 34: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Requirements Engineering (RE) Tool Support

Wiki Systems for Software Requirements EngineeringI Collaborative environment for elicitation

I Alternative to existing tools, better support, costI Discussion media: sharing, traceability, guidelines

I ModeratorI Channel stakeholders’ contribution: templates, assignments, overviewsI Indicators analysis for conflicts detections

I Requirements refinementsI ReviewsI Extension to capture additional Requirements (NFR)

Page 35: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Requirements in Practice

10%

90% Natural LanguageSpecifications

Specifications

Formal

Industry distribution of SRS [MFI04]

IssuesI Natural Language SRS are

fragile & difficult to maintainI Limited tool support for

automatic analysis

Page 36: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

RE Tool Support

Wiki Improvements for REI Existing Wikis need further support for RE (added using plug-in architecture)

I Improved page linking: automation, better contribution (traceability)I Lack of integration: connectors for other tools (e.g., CVS/Subversion) or Wiki

integration into software development tools (Trac, Redmine)I Lack of semantics: add semantic layer (using ontologies), e.g., Semantic

MediaWiki (SMW)

Page 37: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki: A Semantic System for CollaborativeRequirements EngineeringOpen Source Project at Concordia’s Semantic Software Lab

Page 38: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki System

GoalsI Wiki-based user interface for easy collaborationI Creation of structured, semantic markupI Standard data format for web integrationI Integrated semantic support, like traceability link management

PlatformI MediaWiki EngineI Semantic MediaWiki extensionI Semantic Forms, TemplatesI Semantic Assistants for NLP support

Page 39: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki System DevelopmentTransforming the 20th-century UP templates into a Semantic Wiki

I Idea: start from original Word document templates (which are based on the[Rational] Unified Process ([R]UP) industry standard)

I Transform them into a modern, Semantic Wiki versionI See [SAW13] and http://www.semanticsoftware.info/reqwiki

Page 40: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Dynamic tables generated from semantic queries

Links to semantic forms

Top−levelpages

Plug−in

Semantic

Assistants

Page 41: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki SystemUsing “Semantic Forms” ExtensionMediaWiki Extension “Semantic Forms” allows to create forms that generatesemantic markup

Page 42: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Interface: Semantic Forms

FeaturesI Structures content at finer granularitiesI Auto-completion for referencing entities (e.g., actors)I Automatically generates RDF markup for linking & querying

Page 43: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki SystemSemantic MarkupThe Semantic Forms automatically generate semantic markup (RDF format)

Page 44: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki SystemTemplatesTo make the semantic markup readable by end users, templates are used:

Page 45: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Semantic Model for SRSOntologyContent is structured using a Semantic Web ontology:

I Formally describe software artifacts and their componentsI Used to model, connect and query SRS statements with ontology concepts

Thing

Problem

has subclass

Stakeholder

has subclass

Responsibility

has subclass ProductPosition

has subclass

Dependency

has subclass

Assumption

has subclass

Need

has subclass

Feature

has subclass

Actor

has subclass Goal

has subclass

UseCase

has subclass Glossary

has subclass

Requirement

has subclass

TestCase

has subclass

affects

belongs to

depends on

satisfiesrelates to

belongs to

interests

hasis used by

relates to Functional Requirement

has subclass

Non-Functional Requirement

has subclasstests

Thing

Problem

has subclass

Stakeholder

has subclass

Responsibility

has subclass ProductPosition

has subclass

Dependency

has subclass

Assumption

has subclass

Need

has subclass

Feature

has subclass

Actor

has subclass Goal

has subclass

UseCase

has subclass Glossary

has subclass

Requirement

has subclass

TestCase

has subclass

affects

belongs to

depends on

satisfiesrelates to

belongs to

interests

hasis used by

relates to Functional Requirement

has subclass

Non-Functional Requirement

has subclasstests

Page 46: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Semantic Model for SRSOntologyContent is structured using a Semantic Web ontology:

I Formally describe software artifacts and their componentsI Used to model, connect and query SRS statements with ontology concepts

Thing

Problem

has subclass

Stakeholder

has subclass

Responsibility

has subclass ProductPosition

has subclass

Dependency

has subclass

Assumption

has subclass

Need

has subclass

Feature

has subclass

Actor

has subclass Goal

has subclass

UseCase

has subclass Glossary

has subclass

Requirement

has subclass

TestCase

has subclass

affects

belongs to

depends on

satisfiesrelates to

belongs to

interests

hasis used by

relates to Functional Requirement

has subclass

Non-Functional Requirement

has subclasstests

Thing

Problem

has subclass

Stakeholder

has subclass

Responsibility

has subclass ProductPosition

has subclass

Dependency

has subclass

Assumption

has subclass

Need

has subclass

Feature

has subclass

Actor

has subclass Goal

has subclass

UseCase

has subclass Glossary

has subclass

Requirement

has subclass

TestCase

has subclass

affects

belongs to

depends on

satisfiesrelates to

belongs to

interests

hasis used by

relates to Functional Requirement

has subclass

Non-Functional Requirement

has subclasstests

Page 47: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki SystemEmbedded Queries

I Query for all stakeholders in the wiki:

Page 48: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Interface: Embedded Queries

Page 49: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki: Traceability

Automatic Traceability SupportI Traceability is concerned with interrelating various software artifactsI Manually cross-referencing documents is time-consuming and error-proneI Exploiting the semantic metadata in ReqWikiI Supported traceability links types:

1. Revision links2. Semantic links3. Query-based links

Page 50: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki System: Automatic Traceability Link Support

I Traceability Links can now allbe automatically generated

I Tables are created with acombination ofQueries & Templates

I Dead links (e.g., afterdeleting an entity) can alsobe automatically detected

I Like all other semanticmetadata, RDF can beexported from the Wiki andconsumed by other tools

Page 51: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki: Content Analysis

MotivationMost requirements are expressed in natural-language form. . .

Example Requirement“The system shall configure the frame-rate as specified by the camera providedduring initialization & the frame-rate shall be capable of being automaticallymodified based on bandwidth.”

Natural Language Processing. . . but these requirements are prone to expensive-to-find defects.Solution: use Natural Language Processing (NLP) to help users (see RequirementsQuality Assurance, [vL09])

Page 52: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Text Mining Assistants

Natural-Language Requirements Defects

SRS defects addressable with ReqWiki [Lap09, vL09]:

I Spelling & GrammarI IncompletenessI ContradictionI AmbiguityI UnmeasurabilityI NoiseI Over Specification

I InadequacyI UnintelligibilityI Poor StructuringI UnfeasibilityI OptionsI . . .

Page 53: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Interface: Wiki-NLP Plug-in

Annotated

NLP results

Dialog

Plug−in

NLPSupport

Input Text

Page 54: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

ReqWiki NLP Services

I Various NLP services

I SRS defects addressableI Spelling & GrammarI IncompletenessI AmbiguityI Poor StructuringI Passive voiceI . . .

I Automatically index the SRSI back-of-the-book styleI complement the glossaryI helping domain analysis

Page 55: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Index Generation (through Noun Phrase Identification)Automatically created “back-of-the-book index”

Page 56: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Study I – Effectiveness

Research QuestionCan text mining assistants help to improve requirements specifications?

MethodologyUser study with two software engineering classes at Concordia University

I Goal: Identifying defects in manual vs. NLP-assisted requirementsspecifications

I NLP Services: Spell checking, Readability Analysis, Passive Voice Detection,. . .

I Measure: Average number of defects found in the two assignment revisions

I Method: Comparison of manual vs. NLP-assisted quality assurance

Page 57: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Study I – Effectiveness: Results

ConclusionReqWiki NLP capabilities were indeed effective to significantly reduce SRS defects.

Page 58: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Study II – Usability

Research QuestionHow much NLP background do users need in order to use semantic capabilities?

MethodologySame scenario as User Study I; Anonymized questionnaire asking participantsabout:

1. Their proficiency level in NLP2. ReqWiki ease-of-use

Page 59: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Study II – Usability: Results

Students’ Questionnaire Feedback

14%14%14%

57%

None

60%

40%

Academic

50%

50%

Academic & Professional

Very Difficult

Easy

Difficult

Neutral

Very Easy

ConclusionConcrete NLP background is not required to make use of sophisticated semanticsupport provided in ReqWiki.

Page 60: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Wikis as Knowledge Management Platforms

I Biomedical Literature CurationI Finding and extracting relevant knowledge from the domain literatureI Manually refining and updating bioinformatics databases

Spreadsheet Online Query Interface

Database

CuratorWiki

I Manual literature curation is...I Expensive → requires domain expertsI Labour-intensive → ever growing amount of scientific publicationsI Error-prone → critical knowledge can be easily missed

Page 61: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

IntelliGenWikiI An intelligent semantic wiki for life sciences [SMB+12]I Integrated bio-related NLP services for literature curationI Offers basic semantic entity retrievalI See http://www.semanticsoftware.info/intelligenwiki

Page 62: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

IntelliGenWiki: User Interface

Page 63: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Bio-NLP: Information Extraction

I Automatically extractingknowledge from papers

I Various IE servicesI OrganismTaggerI Open Mutation MinerI ldots

I Enrichment of literaturecontent with semanticmarkup

Example:[[hasType::Enzyme|cellobiohydrolase]]

Entity Type Entity Location NLP−Provided Additional InformationFound Entity

Page 64: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

IntelliGenWiki: NLP

I Extracted biomedical entities through NLP pipelines

Page 65: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Semantic Entity RetrievalSemantic Queries

I e.g., “Which papers in this wiki mention an enzyme entity in their text?”

{{#ask: [[hasType::Enzyme]]| ?Enzyme = Enzyme Entities Found| format = table| headers = plain| default = No pages found!| mainlabel = Page Name

}}

Page 66: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Semantic Navigation of NLP Results

Page 67: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

User Study

I Is the integration of text mining assistants in a wiki environment actuallyeffective?

I User study within the Genozymes project context (www.fungalgenomics.ca)I Goal: Identifying and characterizing fungal enzymesI Dataset: 30 documentsI Users: 2 expert biocuratorsI NLP Service: mycoMINEI Measure: Time spent on curationI Method: Comparison against time spent on manual curation

I Results:

Average Curation TimeAbstract Selection Full Paper Curation

no support IntelliGenWiki no support IntelliGenWiki1 min. 0.3 min. 37.5 min. 30.6 min.

I Conclusion: IntelliGenWiki was indeed efficient and reduced the paperselection and curation time by almost 70% and 20%, respectively.

Page 68: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Introduction

The Wiki-NLP Integration

Hands-On

Application Examples

Conclusions

References

Page 69: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

Conclusions

Add NLP capabilities to your wiki for a variety of use casesI Allows use of existing text mining techniques in your wikiI Find scenarios in which NLP assistance can be useful, e.g., SummarizationI Develop the actual NLP pipelines based on GATEI Deploy the pipelines on a Semantic Assistants serverI Alternatively, use the existing text mining services in our public serverI Create machine-accessible informationI Add another party to the wiki user community: AI

Download and deploy the Wiki-NLP integrationI Deploy the Wiki-NLP servlet on a container, e.g., Tomcat or JettyI Install the Semantic Assistants MediaWiki extension on your wikiI Configure the extension to point to the servlet endpoint

Page 70: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

References I

Phillip A. Laplante.Requirements Engineering for Software and Systems.Auerbach Publications, 1st edition, 2009.

Luisa Mich, Mariangela Franch, and Pierluigi Inverardi.Market research for requirements analysis using linguistic tools.Requirements Engineering, 9:40–56, 2004.http://dx.doi.org/10.1007/s00766-003-0179-8.

Bahar Sateli, Elian Angius, and René Witte.The ReqWiki Approach for Collaborative Software Requirements Engineeringwith Integrated Text Analysis Support.In The 37th Annual International Computer Software & Applications Conference(COMPSAC 2013), page 405–414, Kyoto, Japan, July 22–26 2013. IEEE.http://www.semanticsoftware.info/system/files/reqwiki-compsac13.pdf.

Bahar Sateli, Marie-Jean Meurs, Greg Butler, Justin Powlowski, Adrian Tsang,and René Witte.IntelliGenWiki: An Intelligent Semantic Wiki for Life Sciences.In NETTAB 2012, volume 18 (Supplement B), pages 50–52, Como, Italy,11/2012 2012. EMBnet.journal, EMBnet.journal.

Page 71: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

References II

Bahar Sateli and René Witte.Natural Language Processing for MediaWiki: The Semantic AssistantsApproach.In The 8th International Symposium on Wikis and Open Collaboration (WikiSym2012), Linz, Austria, 08/2012 2012. ACM.

Axel van Lamsweerde.Requirements Engineering: From System Goals to UML Models to SoftwareSpecifications.John Wiley & Sons, 2009.

René Witte and Thomas Gitzinger.Connecting Wikis and Natural Language Processing Systems.In WikiSym ’07: Proceedings of the 2007 International Symposium on Wikis,pages 165–176, New York, NY, USA, 2007. ACM.

René Witte and Thomas Gitzinger.Semantic Assistants – User-Centric Natural Language Processing Services forDesktop Clients.In 3rd Asian Semantic Web Conference (ASWC 2008), volume 5367 of LNCS,pages 360–374, Bangkok, Thailand, Feb. 2–5, 2009 2008. Springer.

Page 72: Adding Natural Language Processing Support to your ... · (Semantic) MediaWiki René Witte, Bahar Sateli Introduction Natural Language Processing Motivation Semantic Assistants The

Adding NLP to(Semantic) MediaWiki

René Witte,Bahar Sateli

IntroductionNatural LanguageProcessing

Motivation

Semantic Assistants

The Wiki-NLPIntegrationRequirements Analysis

System Design

Implementation

Hands-OnConfiguration

Information Extraction withANNIE

Semantic Queries

Application ExamplesReqWiki

Motivation

ReqWiki Design

ReqWiki Evaluation

IntelliGenWiki

Conclusions

References

References III

René Witte, Ralf Krestel, Thomas Kappler, and Peter C. Lockemann.Converting a historical architecture encyclopedia into a semantic knowledgebase.IEEE Intelligent Systems, 25(1):58–66, January/February 2010.