SlideShare a Scribd company logo
Modular Development of the
DBpedia Ontology with Ontology
Aspects and Web Protégé
Ralph Schäfermeier, Adrian Paschke,
Alexandru Todor
Corporate Semantic Web
Institute for Computer Science
Freie Universität Berlin
4th DBpedia Community Meeting
@BIS 2015 in Poznan
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• Motivation
• Aspect-Oriented Programming
• Aspect-Oriented Ontologies
• Aspects in the DBpedia ontology
Outline
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• Provenance metadata
• Quality metadata
• different with different languages
• Alignment to external ontologies
• possibly contradicting
• Enhance overall development/evolution process
• but unobtrusive
Motivation
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• Used for separation of cross-cutting concerns
• Decomposition of a system based on functional and non-
functional requirements
• Generally provides semantics for:
• describing a module
• re-combining modules at runtime
Aspect-Oriented Programming
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Example: Authentication
void makeDeposit(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance +=amount;
}
void makeWithdrawal(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance −= amount;
}
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Example: Authentication
void makeDeposit(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance +=amount;
}
void makeWithdrawal(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance −= amount;
}
Actual
business logic
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Example: Authentication
void makeDeposit(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance +=amount;
}
void makeWithdrawal(Account a, float amount) {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
a.balance −= amount;
} Re-occuring authentication concern
→ strong inter-dependencies
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Example: Authentication Aspect
Aspect Authentication () {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
}
void makeWithdrawal(Account a, float amount) {
a.balance −= amount;
}
void makeDeposit(Account a, float amount) {
a.balance +=amount;
}
Separation
into self-
contained
aspect
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Example: Authentication Aspect
Aspect Authentication () {
AuthService as = getAuthService ();
if (!as.authenticated(a.user))
as.authenticate (a.user);
}
@before Authentication
void makeWithdrawal(Account a, float amount) {
a.balance −= amount;
}
@before Authentication
void makeDeposit(Account a, float amount) {
a.balance +=amount;
}
Separation
into self-
contained
aspect
Connection via
"Join Points"
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• A pointcut is a set of join points defined by quantification
Two Principles: Quantification and Obliviousness
8m(p1, . . . , pn) 2 M :
s(m(p1, . . . , pn)) ! (m(p1, . . . , pn) ! a(p1, . . . , pn))
[Steimann 2005, Rashid 2006]
m(p1 , . . . , pn ) ∈ M: a method adhering to the signature m(p1, . . . , pn),
M: set of all methods defined in the software system
s: a query specifying a matching criterion,
a(p1, . . . , pn): the execution of the aspect with all the parameters of
each method, respectively
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• A pointcut is a set of join points defined by quantification
Two Principles: Quantification and Obliviousness
8m(p1, . . . , pn) 2 M :
s(m(p1, . . . , pn)) ! (m(p1, . . . , pn) ! a(p1, . . . , pn))
[Steimann 2005, Rashid 2006]
• Example:

void makeDeposit(Account a, float amount) {…}

void makeWithdrawal(Account a, float amount) {…}
@Aspect class AuthenticationAspect () {
@Before(”execution(*.make*(Account,float))”)
void authenticate(Account a, float amount) {
AuthService as = getAuthService () ;
if (!as.authenticated(a.user ))
as.authenticate (a.user ) ;
} }
Pointcut = abstract
definition of a set of
join points
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• Improvement of reasoning and query result retrieval
performance
• Scalability for ontology evolution and maintenance
• Complexity management
• Amelioration of understandability
• (Partial) reuse
• Context-awareness
• Personalization
[Parent and Spaccapietra, 2009]
Modular Ontologies: Motivation
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Aspect-Oriented Ontology Development:
Overview
´e ontology editor4
.
s described in Section 2.4, the connections between aspects and their targe
established by using an extensional description (by providing a complete
), or intensionally (by specifying the properties of the targets using an a
or quantification). Functionality for the first variant involves manually creat
priate annotation axioms (see Figure 2, middle).
Query based
aspect annotation
Query Manual annotation/
selected editing
context in tool
Original ontology
Ontology with
aspect annotations
Aspect-based
module selection
Aspect names
or descriptions
Ontology
module
2. Our approach to aspect-oriented ontology modularization. Axioms of the original ontolo
otated with entities from an external aspect ontology (center). Axiom selection is based on que
ed manually. Module extraction happens dynamically, as a particular part of the ontology is r
Definition Selection
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Ontology of Aspects
Aspect
Graph
Advice Pointcut
hasAdvice
rdf:type
rdfs:domain
rdfs:range
hasPointcut
rdf:type
owl:equivalentClass
rdf:type
hasAdvice some Advice
hasPointcut some Pointcut
≡
rdfs:range
FAO
ntology
se.
(b) Custom extension of the
original ontology for repre-
senting a temporal aspect.
(c) Modeling of the extension as an aspect by using an
axiom annotation.
"2008-02-18T00:00:00"
hasBeginning
Interval_1ingdom
recognizedBy
Kosovo
Recognition_1
self_governing
rdf:type
DateTimeInterval
rdf:type
rdf:type
recognizingEntity validity
Aspect
BuiltIn
Aspect
Resoning
Complexity
Access
Restriction
External
Aspect
Compatibility
Provenance
Based
Trust
≡ Provenance
Trust
rdfs:range
Customer
Specific
Feature
<<annotation>>
hasAspect
<<annotation>>
…
rdfs:subPropertyOf
. . .
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Aspect-Oriented Ontologies
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
RDF example: Provenance
@prefix : <http://www.example.org/aspect123#> .
@prefix this: <http://www.example.org/aspect123> .
...
this: {
this: a aspect:Aspect .
aspect:hasPointcut :pointcut .
aspect:hasAdvice :advice .
}
:pointcut {
dbpedia:Barack_Obama dbpedia_prop:spouse dbpedia:Michelle_Obama.
}
:advice {
:pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime .
:pointcut prov:entity <http://de.wikipedia.org/wiki/Barack_Obama>
:pointcut prov:wasAttributedTo _:a .
_:a foaf:homepage <http://de.wikipedia.org/wiki/user:Mathias_Schindler>
}
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Generating views by querying aspects with named
graphs
@prefix aspect: <http://www.corporate-semantic
web.de/ontologies/aspects#> .
prefix : <…>
select ?G ?s ?p ?o where {
{graph ?G {: a aspect:Aspect}} UNION
{graph ?H {: a aspect:Aspect
{: aspect:hasPointcut ?G} UNION {:
aspect:hasAdvice ?G}}}
graph ?G {?s ?p ?o}
}
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Arbitrarily many overlapping concerns
encapsulated in aspects
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Arbitrarily many overlapping concerns
encapsulated in aspects
:pointcut prov:generatedAtTime
"2004-07-29T10:38:00Z"^^xsd:dateTime .
:pointcut prov:entity <http://de.wikipedia.org/
wiki/Barack_Obama>
:pointcut prov:wasAttributedTo _:a .
_:a foaf:homepage <http://de.wikipedia.org/wiki/
user:Mathias_Schindler>
provenance
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Arbitrarily many overlapping concerns
encapsulated in aspects
:pointcut prov:generatedAtTime
"2004-07-29T10:38:00Z"^^xsd:dateTime .
:pointcut prov:entity <http://de.wikipedia.org/
wiki/Barack_Obama>
:pointcut prov:wasAttributedTo _:a .
_:a foaf:homepage <http://de.wikipedia.org/wiki/
user:Mathias_Schindler>
provenance temporal semantics
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Arbitrarily many overlapping concerns
encapsulated in aspects
:pointcut prov:generatedAtTime
"2004-07-29T10:38:00Z"^^xsd:dateTime .
:pointcut prov:entity <http://de.wikipedia.org/
wiki/Barack_Obama>
:pointcut prov:wasAttributedTo _:a .
_:a foaf:homepage <http://de.wikipedia.org/wiki/
user:Mathias_Schindler>
http://trustyuri.net/
RAq2h8A83lGbT2015ua85K
temporal semanticsprovenance
digital signature
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Arbitrarily many overlapping concerns
encapsulated in aspects
:pointcut prov:generatedAtTime
"2004-07-29T10:38:00Z"^^xsd:dateTime .
:pointcut prov:entity <http://de.wikipedia.org/
wiki/Barack_Obama>
:pointcut prov:wasAttributedTo _:a .
_:a foaf:homepage <http://de.wikipedia.org/wiki/
user:Mathias_Schindler>
http://trustyuri.net/
RAq2h8A83lGbT2015ua85K
schema.org
DUL
…
temporal semanticsprovenance
digital signature aligments to
external ontologies
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Protégé-Plugin
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Web Protégé: Aspect as Modeling Context
• List of
preconfigured
named aspects
• Selected
aspects are
added to all
axioms
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
• universal
• unobtrusive
• use would be optional
• easy to use for ontology modelers
• reasoning on meta-model for modules possible (e.g.
module selection based on complex time constraints).
Benefits
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
Thanks
Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan
[d'Aquin 2012] Mathieu d’Aquin. Modularizing Ontologies. In Mari Carmen Suárez-
Figueroa, Asunción Gómez- Pérez, Enrico Motta, and Aldo Gangemi, editors, Ontology
Engineering in a Networked World, pages 213–233. Springer Berlin Heidelberg, 2012
[Priss 2008] Uta Priss. Facet-like Structures in Computer Science. Axiomathes, 18(2):243–
255, June 2008.
[Steimann 2005] Friedrich Steimann. Domain Models Are Aspect Free. In Lionel Briand and
Clay Williams, editors, Model Driven Engineering Languages and Systems, number 3713 in
Lecture Notes in Computer Science, pages 171–185. Springer Berlin Heidelberg, January
2005.
[Rashid 2006] Awais Rashid and Ana Moreira. Domain Models Are NOT Aspect Free. In
Oscar Nierstrasz, Jon Whittle, David Harel, and Gianna Reggio, editors, Model Driven
Engineering Languages and Sys- tems, number 4199 in Lecture Notes in Computer Science,
pages 155–169. Springer Berlin Heidelberg, January 2006.
[Konev 2009] Boris Konev, Carsten Lutz, Dirk Walther, and Frank Wolter. Formal Properties
of Modularisation. In Heiner Stuckenschmidt, Christine Parent, and Stefano Spaccapietra,
editors, Modular Ontologies, number 5445 in Lecture Notes in Computer Science, pages
25–66. Springer Berlin Heidelberg, January 2009.
References

More Related Content

Similar to Modular Development of the DBpedia Ontology with Ontology Aspects and Web Protégé

StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
Chiradeep Vittal
 
Applied Machine learning using H2O, python and R Workshop
Applied Machine learning using H2O, python and R WorkshopApplied Machine learning using H2O, python and R Workshop
Applied Machine learning using H2O, python and R Workshop
Avkash Chauhan
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki
 
Scio
ScioScio
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 Julieallinson
Julie Allinson
 
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache CalciteA Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
Salesforce Engineering
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Getting value from IoT, Integration and Data Analytics
 
Mtn view sql server nov 2014
Mtn view sql server nov 2014Mtn view sql server nov 2014
Mtn view sql server nov 2014
EspressoLogic
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
Julie Allinson
 
Sap business objects bobi training
Sap business objects bobi trainingSap business objects bobi training
Sap business objects bobi training
FuturePoint Technologies
 
SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...
Simon Price
 
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scalaSunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Mopuru Babu
 
Rest introduction
Rest introductionRest introduction
Rest introduction
William Martinez Pomares
 
Why apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics FrameworksWhy apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics Frameworks
Slim Baltagi
 
Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14
Julian Hyde
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
Pavel Vlasov
 
Machine Learning Models in Production
Machine Learning Models in ProductionMachine Learning Models in Production
Machine Learning Models in Production
DataWorks Summit
 
Semantic DESCription as a Service
Semantic DESCription as a ServiceSemantic DESCription as a Service
Semantic DESCription as a Service
uji_geotec
 
Obiee course__content
Obiee  course__contentObiee  course__content
Obiee course__content
naveennagineni
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
Ivan Ermilov
 

Similar to Modular Development of the DBpedia Ontology with Ontology Aspects and Web Protégé (20)

StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
 
Applied Machine learning using H2O, python and R Workshop
Applied Machine learning using H2O, python and R WorkshopApplied Machine learning using H2O, python and R Workshop
Applied Machine learning using H2O, python and R Workshop
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
 
Scio
ScioScio
Scio
 
Sword Or2008 Julieallinson
Sword Or2008 JulieallinsonSword Or2008 Julieallinson
Sword Or2008 Julieallinson
 
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache CalciteA Smarter Pig: Building a SQL interface to Pig using Apache Calcite
A Smarter Pig: Building a SQL interface to Pig using Apache Calcite
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
Mtn view sql server nov 2014
Mtn view sql server nov 2014Mtn view sql server nov 2014
Mtn view sql server nov 2014
 
Sword Crig 2007 12 06
Sword Crig 2007 12 06Sword Crig 2007 12 06
Sword Crig 2007 12 06
 
Sap business objects bobi training
Sap business objects bobi trainingSap business objects bobi training
Sap business objects bobi training
 
SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...SubSift: a novel application of the vector space model to support the academi...
SubSift: a novel application of the vector space model to support the academi...
 
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scalaSunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
Sunshine consulting mopuru babu cv_java_j2ee_spring_bigdata_scala
 
Rest introduction
Rest introductionRest introduction
Rest introduction
 
Why apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics FrameworksWhy apache Flink is the 4G of Big Data Analytics Frameworks
Why apache Flink is the 4G of Big Data Analytics Frameworks
 
Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14Cost-based query optimization in Apache Hive 0.14
Cost-based query optimization in Apache Hive 0.14
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Machine Learning Models in Production
Machine Learning Models in ProductionMachine Learning Models in Production
Machine Learning Models in Production
 
Semantic DESCription as a Service
Semantic DESCription as a ServiceSemantic DESCription as a Service
Semantic DESCription as a Service
 
Obiee course__content
Obiee  course__contentObiee  course__content
Obiee course__content
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 

Modular Development of the DBpedia Ontology with Ontology Aspects and Web Protégé

  • 1. Modular Development of the DBpedia Ontology with Ontology Aspects and Web Protégé Ralph Schäfermeier, Adrian Paschke, Alexandru Todor Corporate Semantic Web Institute for Computer Science Freie Universität Berlin 4th DBpedia Community Meeting @BIS 2015 in Poznan
  • 2. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • Motivation • Aspect-Oriented Programming • Aspect-Oriented Ontologies • Aspects in the DBpedia ontology Outline
  • 3. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • Provenance metadata • Quality metadata • different with different languages • Alignment to external ontologies • possibly contradicting • Enhance overall development/evolution process • but unobtrusive Motivation
  • 4. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • Used for separation of cross-cutting concerns • Decomposition of a system based on functional and non- functional requirements • Generally provides semantics for: • describing a module • re-combining modules at runtime Aspect-Oriented Programming
  • 5. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Example: Authentication void makeDeposit(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance +=amount; } void makeWithdrawal(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance −= amount; }
  • 6. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Example: Authentication void makeDeposit(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance +=amount; } void makeWithdrawal(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance −= amount; } Actual business logic
  • 7. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Example: Authentication void makeDeposit(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance +=amount; } void makeWithdrawal(Account a, float amount) { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); a.balance −= amount; } Re-occuring authentication concern → strong inter-dependencies
  • 8. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Example: Authentication Aspect Aspect Authentication () { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); } void makeWithdrawal(Account a, float amount) { a.balance −= amount; } void makeDeposit(Account a, float amount) { a.balance +=amount; } Separation into self- contained aspect
  • 9. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Example: Authentication Aspect Aspect Authentication () { AuthService as = getAuthService (); if (!as.authenticated(a.user)) as.authenticate (a.user); } @before Authentication void makeWithdrawal(Account a, float amount) { a.balance −= amount; } @before Authentication void makeDeposit(Account a, float amount) { a.balance +=amount; } Separation into self- contained aspect Connection via "Join Points"
  • 10. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • A pointcut is a set of join points defined by quantification Two Principles: Quantification and Obliviousness 8m(p1, . . . , pn) 2 M : s(m(p1, . . . , pn)) ! (m(p1, . . . , pn) ! a(p1, . . . , pn)) [Steimann 2005, Rashid 2006] m(p1 , . . . , pn ) ∈ M: a method adhering to the signature m(p1, . . . , pn), M: set of all methods defined in the software system s: a query specifying a matching criterion, a(p1, . . . , pn): the execution of the aspect with all the parameters of each method, respectively
  • 11. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • A pointcut is a set of join points defined by quantification Two Principles: Quantification and Obliviousness 8m(p1, . . . , pn) 2 M : s(m(p1, . . . , pn)) ! (m(p1, . . . , pn) ! a(p1, . . . , pn)) [Steimann 2005, Rashid 2006] • Example:
 void makeDeposit(Account a, float amount) {…}
 void makeWithdrawal(Account a, float amount) {…} @Aspect class AuthenticationAspect () { @Before(”execution(*.make*(Account,float))”) void authenticate(Account a, float amount) { AuthService as = getAuthService () ; if (!as.authenticated(a.user )) as.authenticate (a.user ) ; } } Pointcut = abstract definition of a set of join points
  • 12. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • Improvement of reasoning and query result retrieval performance • Scalability for ontology evolution and maintenance • Complexity management • Amelioration of understandability • (Partial) reuse • Context-awareness • Personalization [Parent and Spaccapietra, 2009] Modular Ontologies: Motivation
  • 13. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Aspect-Oriented Ontology Development: Overview ´e ontology editor4 . s described in Section 2.4, the connections between aspects and their targe established by using an extensional description (by providing a complete ), or intensionally (by specifying the properties of the targets using an a or quantification). Functionality for the first variant involves manually creat priate annotation axioms (see Figure 2, middle). Query based aspect annotation Query Manual annotation/ selected editing context in tool Original ontology Ontology with aspect annotations Aspect-based module selection Aspect names or descriptions Ontology module 2. Our approach to aspect-oriented ontology modularization. Axioms of the original ontolo otated with entities from an external aspect ontology (center). Axiom selection is based on que ed manually. Module extraction happens dynamically, as a particular part of the ontology is r Definition Selection
  • 14. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Ontology of Aspects Aspect Graph Advice Pointcut hasAdvice rdf:type rdfs:domain rdfs:range hasPointcut rdf:type owl:equivalentClass rdf:type hasAdvice some Advice hasPointcut some Pointcut ≡ rdfs:range FAO ntology se. (b) Custom extension of the original ontology for repre- senting a temporal aspect. (c) Modeling of the extension as an aspect by using an axiom annotation. "2008-02-18T00:00:00" hasBeginning Interval_1ingdom recognizedBy Kosovo Recognition_1 self_governing rdf:type DateTimeInterval rdf:type rdf:type recognizingEntity validity Aspect BuiltIn Aspect Resoning Complexity Access Restriction External Aspect Compatibility Provenance Based Trust ≡ Provenance Trust rdfs:range Customer Specific Feature <<annotation>> hasAspect <<annotation>> … rdfs:subPropertyOf . . .
  • 15. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Aspect-Oriented Ontologies
  • 16. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan RDF example: Provenance @prefix : <http://www.example.org/aspect123#> . @prefix this: <http://www.example.org/aspect123> . ... this: { this: a aspect:Aspect . aspect:hasPointcut :pointcut . aspect:hasAdvice :advice . } :pointcut { dbpedia:Barack_Obama dbpedia_prop:spouse dbpedia:Michelle_Obama. } :advice { :pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime . :pointcut prov:entity <http://de.wikipedia.org/wiki/Barack_Obama> :pointcut prov:wasAttributedTo _:a . _:a foaf:homepage <http://de.wikipedia.org/wiki/user:Mathias_Schindler> }
  • 17. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Generating views by querying aspects with named graphs @prefix aspect: <http://www.corporate-semantic web.de/ontologies/aspects#> . prefix : <…> select ?G ?s ?p ?o where { {graph ?G {: a aspect:Aspect}} UNION {graph ?H {: a aspect:Aspect {: aspect:hasPointcut ?G} UNION {: aspect:hasAdvice ?G}}} graph ?G {?s ?p ?o} }
  • 18. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Arbitrarily many overlapping concerns encapsulated in aspects
  • 19. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Arbitrarily many overlapping concerns encapsulated in aspects :pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime . :pointcut prov:entity <http://de.wikipedia.org/ wiki/Barack_Obama> :pointcut prov:wasAttributedTo _:a . _:a foaf:homepage <http://de.wikipedia.org/wiki/ user:Mathias_Schindler> provenance
  • 20. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Arbitrarily many overlapping concerns encapsulated in aspects :pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime . :pointcut prov:entity <http://de.wikipedia.org/ wiki/Barack_Obama> :pointcut prov:wasAttributedTo _:a . _:a foaf:homepage <http://de.wikipedia.org/wiki/ user:Mathias_Schindler> provenance temporal semantics
  • 21. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Arbitrarily many overlapping concerns encapsulated in aspects :pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime . :pointcut prov:entity <http://de.wikipedia.org/ wiki/Barack_Obama> :pointcut prov:wasAttributedTo _:a . _:a foaf:homepage <http://de.wikipedia.org/wiki/ user:Mathias_Schindler> http://trustyuri.net/ RAq2h8A83lGbT2015ua85K temporal semanticsprovenance digital signature
  • 22. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Arbitrarily many overlapping concerns encapsulated in aspects :pointcut prov:generatedAtTime "2004-07-29T10:38:00Z"^^xsd:dateTime . :pointcut prov:entity <http://de.wikipedia.org/ wiki/Barack_Obama> :pointcut prov:wasAttributedTo _:a . _:a foaf:homepage <http://de.wikipedia.org/wiki/ user:Mathias_Schindler> http://trustyuri.net/ RAq2h8A83lGbT2015ua85K schema.org DUL … temporal semanticsprovenance digital signature aligments to external ontologies
  • 23. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Protégé-Plugin
  • 24. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Web Protégé: Aspect as Modeling Context • List of preconfigured named aspects • Selected aspects are added to all axioms
  • 25. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan • universal • unobtrusive • use would be optional • easy to use for ontology modelers • reasoning on meta-model for modules possible (e.g. module selection based on complex time constraints). Benefits
  • 26. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan Thanks
  • 27. Ralph Schäfermeier, Adrian Paschke
 Aspect-Orientation in the DBpedia ontology
 DBpedia Community Meeting 2015 Poznan [d'Aquin 2012] Mathieu d’Aquin. Modularizing Ontologies. In Mari Carmen Suárez- Figueroa, Asunción Gómez- Pérez, Enrico Motta, and Aldo Gangemi, editors, Ontology Engineering in a Networked World, pages 213–233. Springer Berlin Heidelberg, 2012 [Priss 2008] Uta Priss. Facet-like Structures in Computer Science. Axiomathes, 18(2):243– 255, June 2008. [Steimann 2005] Friedrich Steimann. Domain Models Are Aspect Free. In Lionel Briand and Clay Williams, editors, Model Driven Engineering Languages and Systems, number 3713 in Lecture Notes in Computer Science, pages 171–185. Springer Berlin Heidelberg, January 2005. [Rashid 2006] Awais Rashid and Ana Moreira. Domain Models Are NOT Aspect Free. In Oscar Nierstrasz, Jon Whittle, David Harel, and Gianna Reggio, editors, Model Driven Engineering Languages and Sys- tems, number 4199 in Lecture Notes in Computer Science, pages 155–169. Springer Berlin Heidelberg, January 2006. [Konev 2009] Boris Konev, Carsten Lutz, Dirk Walther, and Frank Wolter. Formal Properties of Modularisation. In Heiner Stuckenschmidt, Christine Parent, and Stefano Spaccapietra, editors, Modular Ontologies, number 5445 in Lecture Notes in Computer Science, pages 25–66. Springer Berlin Heidelberg, January 2009. References