Petr Aubrecht

Ontology Transformations

Between Formalisms

22. 11. 2005

Overview

motivation

what are ontologies

existing formalisms

formalism transformations

my approach

results

Motivation

CIPHER project → which formalism for historical stories annotation?

OWL

frequently used, daml.org

OCML

LISP based with rules and procedural part

time ontology, dissertation of Kamil Matoušek

(used by project partners)

=> need of transformation

semantic web

multiple sources & different formalisms

Definition of Ontology

Gruber, 1996, An ontology is a explicit specification of a conceptualisation.

Borst, 1997, An ontology is a formal specification of a shared conceptualisation.

formal: machine-readable

shared: rather strong requirement, should represent consensual knowledge of a group

Sowa, 2000, Ontology defines the kinds of things that exist in the application domain.

Ontology Formalisms

LISP based

KIF (SUO-KIF), Ontolingua, OCML

XML based (for semantic web)

XOL, RDF-S, DAML-ONT, DAML+OIL, OWL

Others

Conceptual Graphs, Topic Maps, FCA, ...

E-R, UML

Ontology Formalisms for Web

RDF etc. – too free (informal) definition

easy for designer, hard to evaluate

reification – statements as resources, the language becomes undecidable

OWL

full: compatible with RDF-S

DL: decidable reasoning is realizable,

separated classes, instances,

properties, and types

lite: minimal
useful subset

HTML

XML

SHOE

XOL

RDF

RDF-S

OIL

DAML-ONT

DAML+OIL

OWL

Possible Problem (in OWL Full)

<owl:Class rdf:ID="A">

<owl:equivalentClass>

<owl:Restriction>

<owl:onProperty rdf:resource=".../22-rdf-syntax-ns#type"/>

<owl:allValueFrom rdf:about="#B"/>

</owl:Restriction>

</owl:equivalentClass></owl:Class>

<owl:class rdf:ID="B">

<owl:complementOf rdf:parseType="Collection">

<owl:Class rdf:about="#A"/>

</owl:complementOf></owl:class>

<owl:Thing rdf:ID="C">

<rdf:type rdf:resource="#A"/>

</owl:Thing>

OIL – Simple Standard

Ontology Inference Layer, year 2000

DTD

<?xml version="1.0" encoding="UTF-8"?>

<!-- DTD for Ontology Integration Language OIL -->

<!-- version 01 May 2000 -->

<!ELEMENT oil:ontology (oil:ontology-container, oil:ontology-definitions)>

<!-- Ontology container -->

<!ELEMENT oil:ontology-container (rdf:RDF)>

<!-- This part contains meta-data about the ontology.

It is formatted according [Miller et al., 1999] -->

<!ELEMENT rdf:RDF (rdf:Description)>

<!ATTLIST rdf:RDF

xmlns:rdf CDATA #FIXED "http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc CDATA #FIXED "http://purl.oclc.org/dc#"

xmlns:dcq CDATA #FIXED "http://purl.org/dc/qualifiers/1.0/"

>

<!ELEMENT rdf:Description ((dc:Title+, dc:Creator+, dc:Subject*, dc:Description+, dc:Publisher*, dc:Contributor*, dc:Date*, dc:Type+, dc:Format*, dc:Identifier+, dc:Source*, dc:Language+, dc:Relation*, dc:Rights*) | (dcq:descriptionType, rdf:value) | (dcq:relationType, rdf:value))>

<!ATTLIST rdf:Description

about CDATA #IMPLIED

>

<!ELEMENT dc:Title (#PCDATA)>

<!ELEMENT dc:Creator (#PCDATA)>

<!ELEMENT dc:Subject (#PCDATA)>

<!ELEMENT dc:Description (#PCDATA | rdf:Description)*>

<!ELEMENT dc:Publisher (#PCDATA)>

<!ELEMENT dc:Contributor (#PCDATA)>

<!ELEMENT dc:Date (#PCDATA)>

<!ELEMENT dc:Type (#PCDATA)>

<!ELEMENT dc:Format (#PCDATA)>

<!ELEMENT dc:Identifier (#PCDATA)>

<!ELEMENT dc:Source (#PCDATA)>

<!ELEMENT dc:Language (#PCDATA)>

<!ELEMENT dc:Relation (#PCDATA | rdf:Description)*>

<!ELEMENT dc:Rights (#PCDATA)>

<!ELEMENT dcq:descriptionType (#PCDATA)>

<!ELEMENT dcq:relationType (#PCDATA)>

<!ELEMENT rdf:value (#PCDATA)>

<!-- Ontology-definitions -->

<!ELEMENT oil:ontology-definitions (oil:imports?, oil:rule-base?, (oil:class-def | oil:slot-def)*)>

<!-- Import-section with URI's to other ontology-files -->

<!ELEMENT oil:imports (oil:URI)+>

<!ELEMENT oil:URI (#PCDATA)>

<!-- Rules with URL to definition -->

<!ELEMENT oil:rule-base (#PCDATA)>

<!ATTLIST oil:rule-base

type CDATA #REQUIRED

>

<!-- Class-expressions -->

<!ENTITY % oil:class-expr "( oil:class | oil:slot-constraint | oil:AND | oil:OR | oil:NOT)">

<!ELEMENT oil:AND ((%oil:class-expr;), (%oil:class-expr;)+)>

<!ELEMENT oil:OR ((%oil:class-expr;), (%oil:class-expr;)+)>

<!ELEMENT oil:NOT (%oil:class-expr;)>

<!-- Class-definition -->

<!ELEMENT oil:class-def (oil:class, oil:documentation?, oil:subclass-of?, oil:slot-constraint*)>

<!ATTLIST oil:class-def

type (primitive | defined) "primitive"

>

<!-- Class-name -->

<!ELEMENT oil:class EMPTY>

<!ATTLIST oil:class

name CDATA #REQUIRED

>

<!ELEMENT oil:documentation (#PCDATA)>

<!ELEMENT oil:subclass-of (%oil:class-expr;)+>

<!-- Slot-definition -->

<!ELEMENT oil:slot-def (oil:slot, oil:documentation?, oil:subslot-of?, oil:domain?, oil:range?, oil:inverse?, oil:properties?)>

<!-- Slot-name -->

<!ELEMENT oil:slot EMPTY>

<!ATTLIST oil:slot

name CDATA #REQUIRED

>

<!ELEMENT oil:subslot-of (oil:slot)+>

<!ELEMENT oil:domain (%oil:class-expr;)+>

<!ELEMENT oil:range (%oil:class-expr;)+>

<!ELEMENT oil:inverse (oil:slot)>

<!-- Slot-properties -->

<!ELEMENT oil:properties (oil:transitive | oil:symmetric | oil:other)*>

<!ELEMENT oil:transitive EMPTY>

<!ELEMENT oil:symmetric EMPTY>

<!ELEMENT oil:other (#PCDATA)>

<!-- Slot-constraint -->

<!ELEMENT oil:slot-constraint (oil:slot, (oil:has-value | oil:value-type | oil:cardinality | oil:max-cardinality | oil:min-cardinality)+)>

<!ELEMENT oil:has-value (%oil:class-expr;)+>

<!ELEMENT oil:value-type (%oil:class-expr;)+>

<!ELEMENT oil:cardinality (oil:number, %oil:class-expr;)+>

<!ELEMENT oil:max-cardinality (oil:number, %oil:class-expr;)+>

<!ELEMENT oil:min-cardinality (oil:number, %oil:class-expr;)+>

<!ELEMENT oil:number (#PCDATA)>

Procedural Part, Rules, Actions

done in LISP (by LISP)

OWL: under development

e.g. ORL; A Proposal for an OWL Rules Language, Horrocks and Patel-Schneider

SPARQL

KAON2

FACT

RACER

Transformations

Transformations – Incompatibility

RDF-S (DAML, OWL) → OCML (frames)

sub-property – hierarchy of properties

father-of is a sub-property of parent-of (all fathers are also parents)

instance of instance – there can be instance of another instance

OWL system: XMLLiteral instanceOf Datatype instanceOf Class

wine ontology: ChateauMorgonBeaujolais instanceOf Beaujolais (instanceOf Class) Particular bottle of CMB?

Incompatibility

RDF-S (DAML, OWL) → OCML (frames)

properties without domain or range defined

restrictions used to specify default property values

...

State-of-the-art – Practical

(Almost) Every project starts with building its own ontology

the requirement of sharing!

big ambiguity in expressions in OWL (e.g. ont/concept, ont#concept; owl:Class, daml:Class), unparseable files

only authors are able to process the ontologies

Editors store in multiple formalisms.

mostly only export

LISP-based ontologies rely on procedures, e.g. only patterns can be searched.

State-of-the-art – Theoretical

Mapping Approach

2n transformations

Pivot Approach

using the most expressive formalism

Layered Approach

for backward compatible formalisms

Family of Languages

lattice of languages

My Approach

simple formalism

cover most important and general features

more complex features are expressed as combinations

Generalised Ontology Formalism

Generalised Ontology Formalism

concepts + 6 relations

subclassOf

specialisation relation between a more general and a more specific concepts

Generalised Ontology Formalism

concepts + 6 relations

instanceOf

decrease of abstractness of the concept. It corresponds to the is-a in frames.

Generalised Ontology Formalism

concepts + 6 relations

has-domain

“domain of a property,” this property is a property of the target class

Generalised Ontology Formalism

concepts + 6 relations

has-range

“range of a property”

Generalised Ontology Formalism

concepts + 6 relations

propertyOf

“an assignment of a value to an instance of a property domain”

Generalised Ontology Formalism

concepts + 6 relations

has-value

“a particular value of a property”

GOF Gates, FSO

each gate contains FSO with specific concepts (class, instance, property etc.), CF, RF

FSO of Frames (OCML)

FSO of RDFS

FSO of OWL (part)

Uninformed Transformation

GOF

OWL

Apollo

<owl:Ontology>

<owl:Class>

<SubclassOf>...

</owl:Class>

<owl:ObjectProperty>

SQL

<KnowledgeBase>

<class>

<subclasses>...

<slots>

<slot...

</slots>

<class>

mapping to g.o.

Loaded without FSO, GOF is mapped to the target FSO.

Informed Transformation

GOF

OWL

Apollo

<owl:Ontology>

<owl:Class>

<SubclassOf>...

</owl:Class>

<owl:ObjectProperty>

<KnowledgeBase>

<class>

<subclasses>...

<slots>

<slot...

</slots>

<class>

Known Translation

There exists transform. between FSOs, no further mapping is needed.

Tests of Inform. Trans.

Tests of Uninform. Trans.

Results

OpenCyc OWL to Apollo – crash during save in Apollo library due to ineffective work with memory in Apollo

OpenCyc: loading takes ~2.5 hour due to ineffective gate (frequent search, complicated API of Jena2)

OpenCyc: mapping takes 1.2 sec (simple structure)

SUMO: mapping takes 32 secs (complex structure)

SumatraTT for Testing

Conclusion

Generalised Ontology Formalism

GOF allows for comparison of formalisms (by FSO)

covers wide range of possible situations (not restricted to currently known formalisms)

informed/uninformed transformation

FSO expressed by means of GOF

universal concept principle

allows to change types – class, property, instance

transformation can be lossy, if there is no possible way to convert some features

Conclusion

successful methodology evaluation on upper ontology migration

OWL, OCML (Apollo)

SUMO, Cyc

Thank you for your attention.

Questions?

Reviews, Common

mistakes in mathematics

my first work with math. definitions

but the domain requires formal description in order to find common platform for ontology sharing/transformations

slightly varying shapes of relations

only graphviz and TeX are able to display all the types, no interactive vector editor offering these types, number of common arrow types for three programs is less than 6

my fault: not mentioned in the text

Doc. Ing. J. Paralič, Ph.D.

feasibility of common standard for semantic web

HTML: one standard, multiple versions

IM, VOIP: multiple non-cooperating standards

if common standard will be accepted, s. w. will have significant influence on everyday life

operations on GOF model in all supported formalisms

UNION, DIFF (detect changes, A-B ∪ B-A), SUBSET

diff: works, used during testing, but results are in GOF (need some explanation, in which the ontologies differ)

union: rather matter of concept mapping, not tested

Prof. RNDr. M. Demlová, CSc.

ontology grammar → formalism grammar

more results

memory is not important (linearly dependent on source size)

gate implementations dependent on used library

only interesting point is the mapping engine (from GOF graph to FSO)

non-polynomial due to ambiguity in rules (e.g. instanceOf for class/instance and property/assignment)

small isolated cases

used for its simplicity and ability to find best mapping, can be replaced

Prof. Demlová (cont.)

more practical results

implementation is straightforward (e.g. usually linear both time and space complexity)

only interesting point is mapping from GOF to FSO (decides types of concepts)

FSO provides a set of valid relations (e.g. Class sublassOf Class, Instance instanceOf Class)

used NP algorithm, problematic are small groups of nodes

From OWL to

SUMO, 1.434 concepts, 32 secs

OpenCyc, 71.939 concepts, 1.2 sec

Doc. Ing. Z. Zdráhal, CSc.

history:

1957 artificial intelligence, Herbert Simon: “Machines already think, learn, and create.” (e.g. Advice Taker)

1969 expert systems (DENDRAL)

1984 Cyc project – huge knowledge base

semantic web requires definition of terms

ontology

what is the essence of things, categorisation...

back to philosophy... 5th century B.C.

Aristotle: Truth, Beauty, Virtue, and Justice

Socrates: ten categories

Comparison with Languages

Formal Languages

symbol

alphabet (finite set of s.)

string (f. sequence of s.)

language (set of strings)

grammar (V,T,P,S)

language generate by grammar...

Ontologies

concept

set of used concepts, C

ontology, 

+

+

formalism

Comparison with Languages

Formal Languages

symbol

alphabet (finite set of s.)

string (f. sequence of s.)

language (set of strings)

grammar (V,T,P,S)

language generated by grammar...

Ontologies

concept

set of used concepts, C

ontology, 

formalism, F

formalism grammar, 

formalism (set of ontologies) has common set of features given by grammar

Formal Definitions

need to distinguish formalism as a description of a “language” from a set of ontologies

emphasis on syntactic transformation

formalism grammar

ontology

ontology formalism

Formalism Grammar Definition

 = (CF, RF, SF, SF, AF)

CF = set of formalism concepts

RF = set of formalism relations

SF = set of structural restrictions on relations between ontology concepts

SF = language to specify additional restrictions

AF = language to specify actions

Ontology Definition

 = (C, R, C, R, S, A)

C = set of concepts

R = set of relations

C = function C: C → CF

R = function R: R → RF

S = set of restrictions

A = set of actions

Ontology Formalism Definition

A formalism is a set of ontologies with common sets of formalism concepts and relations.

class-a, property, class-b

various shapes are only for our orientation (uniform for GOF)

when migrated to OCML, class-a, class-b, subclass-b become classes, property becomes slot, instance-a/b become instances
and assignment
is translated
into assignment
into slot

Discussion

formalism-specific information preservation

needed e.g. for diff of two ontologies in the same formalism

representation of diff

need for speed optimisation, simple gates for fast load/save

rule handling

evaluation in GOF

further mathematical research(?)

border between structural and procedural restrictions

APPENDIX

Visualisation

gates exporting to visualisation tools (GraphViz, Prefuse, HyperGraph, TouchGraph, Wilmascope)

http://meta.wikimedia.org/wiki/Semantic_MediaWiki/Background:_Ontologies_and_the_Semantic_Web

2005-11-11T16:08:46