TMCL and OWL

23
http://www.bouvet.no/ © 2008 Bouvet ASA 1 TMCL and OWL Lars Marius Garshol <[email protected]> 2008-10-17 TMRA 2008

description

A number of proposals have been made for Topic Maps/OWL interoperability, but this is really looking for interoperability on the wrong level. This paper instead looks at interoperability between OWL and TMCL, and shows how it is possible to convert OWL ontologies into TMCL schemas and vice versa, once a mapping for the vocabulary is available.

Transcript of TMCL and OWL

Page 1: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 1

TMCL and OWL

Lars Marius Garshol

<[email protected]>

2008-10-17

TMRA 2008

Page 2: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 2

RDF/TM interoperability today

• Instance data can be converted back and forth– effectively allows RDF vocabularies to be used in TMs, and vice versa

• Schemas, however, cannot be converted– must be converted manually– to do this, detailed knowledge of RDFS, OWL, and TMCL is needed– awkward and error-prone

• Schemas are needed for– documentation,– schema-driven editors,– validation,– reasoning,– etc

?

Page 3: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 3

Comparing TMCL with RDFS&OWL

• Similarities– describe correct use of vocabularies– vocabularies, not separate languages

• Differences– obviously based on different technologies (TM vs RDF)– TMCL intended for individual projects, RDFS/OWL for open semantic web– TMCL has validation semantics, while RDFS/OWL have reasoning

semantics

Page 4: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 4

Validation

Rule: Every dc:creator must be a person

dc:creator

person

tm:type-instance

QuickTime™ and a decompressor

are needed to see this picture.

dc:creator

sheep

tm:type-instance

Page 5: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 5

Reasoning

Rule: Every dc:creator must be a person

dc:creator

person

rdf:type

QuickTime™ and a decompressor

are needed to see this picture.

dc:creator

sheep

rdf:type

rdf:typeowl:disjointWith

Page 6: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 6

OWL Full

OWL DL

RDFS and OWL

• Divided into four layers extending each other

• Basic RDFS features:– rdfs:Class - declares a class– rdfs:Property - declares a property– rdfs:domain - restricts type of subject– rdfs:range - restricts type of object

• Example:person rdf:type rdfs:Class .

resource rdf:type rdfs:Class .

dc:creator rdf:type rdfs:Property .

dc:creator rdfs:domain resource .

dc:creator rdfs:range person .

RDFS

OWL Lite

Page 7: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 7

TMCL

• Two parts:– declarative constraints

– TMQL-based constraints

• In addition:– CTM templates for ease of

authoring

• Basic features much as in RDFS– tmcl:topictype

– tmcl:nametype

– tmcl:occurrencetype

– tmcl:associationtype

– tmcl:roletype

c isa tmcl:roleplayer-constraint;

tmcl:card-min: 0;

tmcl:card-max: 1 .

tmcl:applies-to(tmcl:constraint-role : c, tmcl:assoctype-role : dc:creator)

tmcl:applies-to(tmcl:constraint-role : c, tmcl:roletype-role : dcc:resource)

tmcl:applies-to(tmcl:constraint-role : c, tmcl:topictype-role : resource)

Page 8: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 8

Conversion principles

• Follow instance data conversion– that is, source data valid against source schema should produce valid data

against translated schema– means schema conversion is based on RTM/TMR mappings

• Translate intent– on the level of: “every dc:creator must be a person”– ignore the reasoning/validation issue

• Aim for introspectable schemas– be reasoning-friendly in RDF where possible (e.g. avoid OWL Full)– prefer TMCL Core over TMCL Query

Page 9: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 9

OWL Full

OWL DL

RDFS

OWL Lite

TMCL Query

TMCL Core

What the conversion does

• We can convert quite a lot of RDFS/OWL to TMCL– if we restrict ourselves to TMCL Core then we can convert much less

• Reverse conversion is similar– however, some features of TMCL are hard to reproduce in RDFS/OWL

Page 10: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 10

RDF-to-TM basics

• Any rdf:Class becomes a tmcl:topictype– same for owl:Class, obviously

• Any rdf:Property becomes a statement type– the question is: which?– the RTM mapping answers this for us

• Any rdf:domain statement becomes a constraint– which type of constraint depends on the RTM mapping

• Any rdf:range statement becomes a constraint– for name types: an error– for occurrence types: a datatype constraint– for association types: as for domain

Page 11: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 11

Name type mapping

x rdf:domain y

x rtm:maps-to rtm:basename

x isa tmcl:nametype .

?c isa tmcl:topicname-constraint .

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:topictype-role : y)

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:nametype-role : x)

What kind of constraint to map to?

Page 12: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 12

Occurrence type mapping

x rdfs:domain y

x rtm:maps-to rtm:occurrence

x isa tmcl:occurrencetype .

?c isa tmcl:topicoccurrence-constraint .

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:topictype-role : y)

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:occurrencetype-role : x)

Page 13: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 13

Occurrence type (2)

x rdfs:range z

x rtm:maps-to rtm:occurrence

?c isa tmcl:occurrencedatatype-constraint

tmcl:datatype: z .

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:occurrencetype-role : x)

Page 14: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 14

Association type mapping

x rdfs:domain y

x rtm:maps-to rtm:association

x rtm:subject-role s

x isa tmcl:associationtype .

s isa tmcl:roletype .

?c isa tmcl:associationrole-constraint

tmcl:card-min: 1

tmcl:card-max: 1 .

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:assoctype-role : x)

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:roletype-role : s)

?c2 isa tmcl:roleplayer-constraint .

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : x)

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : s)

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : y)

Page 15: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 15

Association type mapping (2)

x rdfs:range z

x rtm:maps-to rtm:association

x rtm:object-role o

x isa tmcl:associationtype .

o isa tmcl:roletype .

?c isa tmcl:associationrole-constraint

tmcl:card-min: 1

tmcl:card-max: 1 .

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:assoctype-role : x)

tmcl:applies-to(tmcl:constraint-role : ?c, tmcl:roletype-role : o)

?c2 isa tmcl:roleplayer-constraint .

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : x)

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : o)

tmcl:applies-to(tmcl:constraint-role : ?c2, tmcl:assoctype-role : z)

Page 16: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 16

RTM mapping

• rdfs:subClassOf TMDM superclass-subclass associations

• rdfs:subPropertyOf TMDM superclass-subclass associations

• rdfs:label base name with the default type

• rdfs:comment occurrence of type rdfs:comment

• rdfs:seeAlso occurrence of type rdfs:seeAlso

• rdfs:isDefinedBy assoc. of type tmcl:definedBySchema

Page 17: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 17

OWL to TMCL

• Much harder, but some things are easy– owl:disjointWith -> tmcl:exclusive-instance– owl:complementOf -> tmcl:exclusive-instance– owl:equivalentClass -> subclass loop– owl:equivalentProperty -> subclass loop– cardinalities -> cardinalities– owl:InverseFunctionalProperty-> unique occurrence constraint– documentary properties -> use RTM mapping

• Some OWL, strangely, becomes input to the mapping– owl:SymmetricProperty– owl:ObjectProperty– ...

Page 18: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 18

Converts to TMCL Query

• owl:intersectionOf

• owl:unionOf

• owl:allValuesFrom

• owl:someValuesFrom

• owl:hasValue

Page 19: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 19

Documentary information

• All convertible using RTM– whether it gets picked up on the other side is not clear

• owl:DeprecatedClass

• owl:DeprecatedProperty

• owl:versionInfo

• owl:priorVersion

• owl:backwardCompatibleWith

• owl:incompatibleWith

• owl:Schema

• owl:differentFrom & owl:AllDifferent

• owl:oneOf

Page 20: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 20

Non-convertible

• owl:TransitiveProperty– no constraints, only used for reasoning– no way to reproduce this in TMCL– convert as is, to let software pick it up if supported

• owl:imports– really abstract syntax, shouldn’t be converted

• owl:OntologyProperty– no equivalent in Topic Maps

• owl:AnnotationProperty– ditto

Page 21: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 21

TMCL to RDFS/OWL

• Works much the same way, but obviously in reverse– based on the TMR mapping– no attempt made to convert TMQL constraints

• Converts to– OWL Lite, if certain features are not used– OWL DL, if exclusive-instance or abstract classes are used– OWL Full, if the tmcl:*type classes are not disjoint (and a few other cases)

• Non-convertible elements– regular expressions– subject identifier/locator constraints– scope constraints

Page 22: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 22

Basic workings

• tmcl:topictype -> owl:Class

• tmcl:nametype -> owl:DatatypeProperty

• tmcl:occurrencetype -> owl:DatatypeProperty

• tmcl:associationtype -> owl:ObjectProperty

• constraints -> rdfs:range & rdfs:domain

• Abstract classes -> complicated OWL expression

Page 23: TMCL and OWL

http://www.bouvet.no/© 2008 Bouvet ASA 23

Conclusion

• Conversion between TMCL and RDFS/OWL is possible!– core of both standards convertible and roundtrippable– some limitations, however– much of OWL not convertible in introspectible fashion

• Further work– finish TMCL– implement RDFS/OWL import in Ontopoly– implement RDFS/OWL export in Ontopoly