Aranuka is a Java library that provides a mapping between Java objects and Topic Maps. It uses annotations to define how Java classes and their properties correspond to Topic Map constructs like topics, associations, and occurrences. This simplifies working with Topic Maps for developers who may not be familiar with the model. Aranuka supports basic Topic Map features and interacts with external Topic Map engines through connectors.
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Aranuka Presentation Topic Maps 2010 Oslo
1. Aranuka - A POJO to Topic Maps mapping library
Dipl.-Inf. Hannes Niederhausen Christian Haß M.Sc.
Topic Maps Lab
Natural Language Processing Group
Department of Computer Science
University of Leipzig
April 15th 2010
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 1/32
2. What is Aranuka?
Atoll in the south pacific
0◦ 10 N 173◦ 35 E
15.5 square kilometers
population of 852
Figure:
http://en.wikipedia.org/wiki/Aranuka
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 2/32
3. What is Aranuka?
Atoll in the south pacific
0◦ 10 N 173◦ 35 E
15.5 square kilometers
population of 852
OTMM library
Figure:
http://en.wikipedia.org/wiki/Aranuka
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 2/32
4. Why do we need this?
Topic Maps very generic
Applications often more specific
Makes development cumbersome
Developer not familiar with Topic Maps
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 3/32
5. Idea
Framework which handles Topic Maps interactions
Should not influence model design
Concept of JPA
Use annotations
Define the mapping
Add schema information to the model
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 4/32
6. Mapping
Classes → Topic Types
Instance → Topics
Strings → Names
Strings or primitive types → Occurrences
Other topic annotated classes → Associations
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 5/32
7. Not supported
No variants
No reification
Only static scopes
Only one topic type
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 6/32
8. What are annotations?
Meta Information
Can have parameter
Available since Java 5.0
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 7/32
9. A simple example
1 p u b l i c c l a s s Person {
2
3 i n t id ;
4 S t r i n g name ;
5 Date d a y O f B i r t h ;
6
7 Set <Person > f r i e n d s ;
8 }
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 8/32
10. Defining a topic type
1
2 p u b l i c c l a s s Person
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 9/32
11. Defining a topic type
1 @Topic ( s u b j e c t _ i d e n t i f i e r ="http://example/person" )
2 p u b l i c c l a s s Person
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 10/32
12. We need an identifier
1
2 i n t id ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 11/32
13. We need an identifier
1 @Id ( t y p e =IdType . ITEM_IDENTIFIER )
2 i n t id ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 12/32
14. Defining a name
1
2 S t r i n g name ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 13/32
15. Defining a name
1 @Name( t y p e ="http://example/name" )
2 S t r i n g name ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 14/32
16. Defining an occurrance
1
2 Date d a y O f B i r t h ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 15/32
17. Defining an occurrance
1 @Occurrence ( t y p e ="http://example/day_of_birth" )
2 Date d a y O f B i r t h ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 16/32
18. Defining an association
1
2
3
4
5 Set <Person > f r i e n d s ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 17/32
19. Defining an association
1 @Association (
2 t y p e ="http://example/friendship" ,
3 p l a y e d _ r o l e ="http://example/has_friend" ,
4 o t h e r _ r o l e ="http://example/is_friend_of" )
5 Set <Person > f r i e n d s ;
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 18/32
20. Architecture I
Aranuka is a mapper to a Topic Maps engine
Uses third party engines via connectors
Using Aranuka leads to the following achitecture
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 19/32
21. Architecture II
Java Application
Domain Model
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 20/32
22. Architecture II
Java Application
Annotated Domain Model
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 21/32
23. Architecture II
Java Application
Annotated Domain Model
Aranuka
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 22/32
24. Architecture II
Java Application
Annotated Domain Model
Aranuka
Ontopia Ontopia
TinyTiM
Memory RDBMS
Connector
Connector Connector
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 23/32
25. Configuration
Choose connector
Register annotated classes
Set properties like file name, base locator or database connections
Optional:
Set names for the types specified in the annotation
Set prefixes which can be used by identifiers in annotations and in
identifierr in instances
Creates session
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 24/32
26. Session
Used to persist instances of annotated classes
Retrieve all instances of a given type
Retrieve instance by identifier
Flush topic map
Retrieved instances are nosynchronizeded with topic map
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 25/32
27. What can I use it for?
Add Topic Maps layer to existing applications
Create applications using Topic Maps as single persistence layer
Use Aranuka to easily feed a topic map
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 26/32
28. Application Example: Yacca-Editor
Application to enter the data of the topic map
Topic Map is used to upload to a Topic Maps Browser
Topic Map is used for Yacca game (http://yacca.me)
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 27/32
29. Summary
Aranuka maps java classes top topics
Makes handling Topic Maps easier
Does not support every construct of the TMDM
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 28/32
30. Outlook
Generate model with annotations based on TMCL
Find way to map java.util.Map
Provide TMQL access in session
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 29/32
31. Questions?
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 30/32
32. Where can you find. . .
Aranuka: http://code.google.com/p/aranuka/
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 31/32
33. Where can you find. . .
Aranuka: http://code.google.com/p/aranuka/
Documentation: http://docs.topicmapslab.de/aranuka/
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 31/32
34. Where can you find. . .
Aranuka: http://code.google.com/p/aranuka/
Documentation: http://docs.topicmapslab.de/aranuka/
Discussion Group:
http://groups.google.com/group/aranuka
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 31/32
35. Where can you find. . .
Aranuka: http://code.google.com/p/aranuka/
Documentation: http://docs.topicmapslab.de/aranuka/
Discussion Group:
http://groups.google.com/group/aranuka
Us: At the Topic Maps Lab in Leipzig
(http://www.topicmapslab.de)
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 31/32
36. Thank you for listening.
Dipl.-Inf. Hannes Niederhausen, Christian Haß M.Sc. (Topic Maps Lab) April 15th 2010 32/32