-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibrary_ontology.py
95 lines (64 loc) · 1.95 KB
/
library_ontology.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
from owlready2 import *
# Criar uma ontologia
onto_library = get_ontology("http://www.example.org/library.owl")
# Definir classes principais
class Obra(Thing):
namespace = onto_library
class Pessoa(Thing):
namespace = onto_library
class Genero(Thing):
namespace = onto_library
# Definir subclasses
## Pessoa
class Autor(Pessoa):
namespace = onto_library
class Leitor(Pessoa):
namespace = onto_library
## Obra
class Livro(Obra):
namespace = onto_library
class Artigo(Obra):
namespace = onto_library
# Definir propriedades
class escritoPor(ObjectProperty):
namespace = onto_library
domain = [Obra]
range = [Autor]
class lidoPor(ObjectProperty):
namespace = onto_library
domain = [Obra]
range = [Leitor]
class pertenceGenero(ObjectProperty):
namespace = onto_library
domain = [Obra]
range = [Genero]
# Adicionar instâncias
livro_01 = Livro("Guerra dos Tronos")
autor_01 = Livro("George R. R. Martin")
genero_01 = Genero("Fantasia")
livro_02 = Livro("Crime e Castigo")
autor_02 = Livro("Fiódor Dostoiévski")
genero_02 = Genero("Romance")
artigo_01 = Artigo("MobileNetV2: Inverted Residuals and Linear Bottlenecks")
autor_03 = Autor("Mark Sandler")
autor_04 = Autor("Andrew Howard")
autor_05 = Autor("Menglong Zhu")
genero_03 = Genero("Paper")
leitor_01 = Leitor("Arthur Uguen")
leitor_02 = Leitor("Fulano de Tal")
# Atribuir propriedades
livro_01.escritoPor.append(autor_01)
livro_02.escritoPor.append(autor_02)
artigo_01.escritoPor.append(autor_03)
artigo_01.escritoPor.append(autor_04)
artigo_01.escritoPor.append(autor_05)
livro_01.lidoPor.append(leitor_01)
livro_02.lidoPor.append(leitor_01)
artigo_01.lidoPor.append(leitor_01)
livro_02.lidoPor.append(leitor_02)
artigo_01.lidoPor.append(leitor_02)
livro_01.pertenceGenero.append(genero_01)
livro_02.pertenceGenero.append(genero_02)
artigo_01.pertenceGenero.append(genero_03)
# Salvar a ontologia
onto_library.save("library.owl", format="rdfxml")