1
00:00:00,500 --> 00:00:06,191
Hello, my name is Matthew Graham, and this
is the first of two modules on semantics.

2
00:00:06,191 --> 00:00:11,460
You may remember from the final
module of the database set

3
00:00:11,460 --> 00:00:18,155
that we talked very briefly
about database structures for

4
00:00:18,155 --> 00:00:22,797
sophisticated, representations of data.

5
00:00:22,797 --> 00:00:27,805
In the forms of things called RDF and
also ontology-based databases,

6
00:00:27,805 --> 00:00:32,070
and this set of two models will
expand on that to some degree.

7
00:00:33,850 --> 00:00:39,510
The idea behind semantics and the semantic
web is that it's a set of technologies and

8
00:00:39,510 --> 00:00:47,330
methodologies for representing knowledge
in a machine processable manner.

9
00:00:47,330 --> 00:00:51,990
It's envisaged and has been for
at least the last decade or

10
00:00:51,990 --> 00:00:55,660
so, very much as the future
of the Internet.

11
00:00:55,660 --> 00:01:01,271
If you regard the first version, the first
generation of the Internet as a set

12
00:01:01,271 --> 00:01:06,378
of connected web pages or
some sort of glorified online library.

13
00:01:06,378 --> 00:01:10,413
The next generation would be a,
a connection of data

14
00:01:10,413 --> 00:01:15,378
collections much richer than
just pres printed material.

15
00:01:15,378 --> 00:01:18,343
Which would allow you to
do arbitrary queries,

16
00:01:18,343 --> 00:01:21,760
arbitrary analyses with them
in a connected fashion.

17
00:01:22,980 --> 00:01:25,280
The idea is that there's this web of data,

18
00:01:25,280 --> 00:01:30,540
web of databases, a decentralized
platform for distributed knowledge.

19
00:01:30,540 --> 00:01:36,060
So you just go into the semantic
web to collate your information and

20
00:01:36,060 --> 00:01:37,670
knowledge and bring that back together.

21
00:01:40,300 --> 00:01:44,500
It's predicated on a set of
logical pieces of meaning

22
00:01:44,500 --> 00:01:47,520
that can be mechanically manipulated.

23
00:01:47,520 --> 00:01:52,270
That means that there is
a computational representation

24
00:01:52,270 --> 00:01:56,800
of not just data and
information, but also knowledge,

25
00:01:56,800 --> 00:02:01,210
the main knowledge, ideas, concepts,
how they relate to eachother.

26
00:02:01,210 --> 00:02:06,640
And in such a way that at
a computer can process them and

27
00:02:06,640 --> 00:02:07,800
make decisions based on them.

28
00:02:09,220 --> 00:02:13,990
It encompasses vocabularies that can be
used for making assertions about things.

29
00:02:15,170 --> 00:02:18,290
In a way that you can actually check for

30
00:02:18,290 --> 00:02:22,528
consistency between meaningful statements,
conceptual statements.

31
00:02:22,528 --> 00:02:26,450
And also infer new
pieces of information or

32
00:02:26,450 --> 00:02:30,840
new pieces of knowledge based
on representations of that.

33
00:02:30,840 --> 00:02:35,010
And this leads to the notion
of smart applications.

34
00:02:35,010 --> 00:02:40,060
Applications which actually have some idea
of the main knowledge encoded into them

35
00:02:40,060 --> 00:02:42,510
and allow you to do
sophisticated things with them.

36
00:02:43,950 --> 00:02:50,610
An example of that would be let's
say we have a data collection

37
00:02:50,610 --> 00:02:55,730
of various bits of data
related to zebra fish.

38
00:02:57,270 --> 00:03:03,070
We have images, we have the results of

39
00:03:03,070 --> 00:03:07,180
genomic array experiments,
so we have bits of DNA.

40
00:03:08,790 --> 00:03:11,470
We have other types of
experiments in imaging with that,

41
00:03:11,470 --> 00:03:13,710
we have this all in our
large data collection.

42
00:03:14,780 --> 00:03:20,340
But we have arranged it in such a way that
each piece of individual data is tagged

43
00:03:20,340 --> 00:03:26,350
with a semantic descriptor which tells us
which part of the anatomy it relates to.

44
00:03:27,424 --> 00:03:33,066
We also have a conceptual scheme encoded
into our smart application which

45
00:03:33,066 --> 00:03:39,538
describes how those individual anatomical
descriptors relate to each other.

46
00:03:39,538 --> 00:03:43,137
Both in terms of an anatomical structure,
but

47
00:03:43,137 --> 00:03:48,503
also maybe in terms of how
the the zebra fish develops with time.

48
00:03:48,503 --> 00:03:52,943
So that this particular structure at
this particular stage of development,

49
00:03:52,943 --> 00:03:57,670
when it's an embryo, becomes this
particular structure when it's a juvenile.

50
00:03:57,670 --> 00:04:00,920
Which becomes this particular type
of structure when it's mature.

51
00:04:00,920 --> 00:04:06,530
What this allows us to do for example,
is that we could, for example, find all

52
00:04:06,530 --> 00:04:12,760
the data that's relevant to a particular
anatomical structure, say the hindbrain.

53
00:04:12,760 --> 00:04:16,860
But because we have this conceptual
description behind as well,

54
00:04:16,860 --> 00:04:20,920
we can actually infer on this, and
do broader and narrower searches.

55
00:04:20,920 --> 00:04:25,850
So, we could identify the central nervous
system, which the hindbrain is part of.

56
00:04:25,850 --> 00:04:30,710
We could also identify those
individual anatomical structures which

57
00:04:30,710 --> 00:04:35,651
comprise the hindbrain and
then use those additional search terms to,

58
00:04:35,651 --> 00:04:39,316
to widen our search and
make a smarter search.

59
00:04:39,316 --> 00:04:44,685
Other types of referencing we
could do on that would be also

60
00:04:44,685 --> 00:04:51,711
to do particular stages of development
that are related to each other.

61
00:04:51,711 --> 00:04:56,168
Or metabolic processes or molecular
information depending on different levels

62
00:04:56,168 --> 00:04:58,680
we have in our conceptual schemes.

63
00:04:58,680 --> 00:05:01,790
So these sort of smart apps are much more,
we,

64
00:05:01,790 --> 00:05:04,440
we already have the data stored
in a relational database but

65
00:05:04,440 --> 00:05:08,350
then we have an additional structure on
top which is doing knowledge management.

66
00:05:08,350 --> 00:05:11,720
As it's called, and this is very
much the regime of, of semantics and

67
00:05:11,720 --> 00:05:12,620
semantic technology.

68
00:05:14,210 --> 00:05:16,140
So the fundamental basis for

69
00:05:16,140 --> 00:05:19,510
this is that we regard knowledge as a,
as a graph structure.

70
00:05:20,710 --> 00:05:22,730
Information or knowledge is, is both,

71
00:05:22,730 --> 00:05:27,810
is best expressed in this idea
as a labelled, directed graph.

72
00:05:29,050 --> 00:05:33,690
This is the entity attribute value
data model which you will remember

73
00:05:33,690 --> 00:05:39,200
we covered in one of the database modules.

74
00:05:39,200 --> 00:05:42,020
So you can refer back to that for
a description, but

75
00:05:42,020 --> 00:05:47,240
the idea is that we have
essentially triplets,

76
00:05:47,240 --> 00:05:52,210
which represent pieces or
facts of information, facts of knowledge.

77
00:05:52,210 --> 00:05:54,880
So in this particular graph
that we are showing here,

78
00:05:54,880 --> 00:05:59,990
this is a way of representing
something which has a,

79
00:05:59,990 --> 00:06:04,020
a, a arbitrary name at the moment, _1.

80
00:06:04,020 --> 00:06:06,181
But it has a name, lanthanum, so

81
00:06:06,181 --> 00:06:09,600
identified as having something
which has a name, lanthanum.

82
00:06:09,600 --> 00:06:13,295
There is a property called
has_Atomic_Number, which has a value, 57.

83
00:06:13,295 --> 00:06:17,530
This thing has a property called
has_Color, silvery white.

84
00:06:17,530 --> 00:06:20,586
Then we have another entity called _2.

85
00:06:20,586 --> 00:06:25,330
That has a name, samarium, but
it also has a color, silvery white.

86
00:06:25,330 --> 00:06:29,560
So we have, a set of,
of entities of subjects.

87
00:06:29,560 --> 00:06:31,390
We have a set of entities or objects, and

88
00:06:31,390 --> 00:06:35,810
we have a set of properties relating
an object and a subject together.

89
00:06:35,810 --> 00:06:40,450
And in this way, we can, we can build
up arbitrary graphs of, of knowledge.

90
00:06:42,220 --> 00:06:47,510
And the way we do this, the underlying
technology is the resource description

91
00:06:47,510 --> 00:06:53,290
framework, RDF, which we covered
briefly in database module number 6.

92
00:06:53,290 --> 00:06:56,610
This is a W3C standard for
encoding knowledge.

93
00:06:56,610 --> 00:07:01,470
That's the World Wide Web Consortium
the same body that endorses HTML and

94
00:07:01,470 --> 00:07:03,970
all the other standards for the web.

95
00:07:03,970 --> 00:07:07,865
So the idea with their, this RDF thing is
that a fact is expressed as what's called

96
00:07:07,865 --> 00:07:10,970
a subject-predicate-object triple or
statement.

97
00:07:10,970 --> 00:07:14,661
So in our example in the graph we
just showed one of those triples,

98
00:07:14,661 --> 00:07:17,967
as they're known, would be _1,
that's the subject.

99
00:07:17,967 --> 00:07:22,075
Predicate has atomic number,
that's identifying some property of it or

100
00:07:22,075 --> 00:07:23,830
some statement about it.

101
00:07:23,830 --> 00:07:25,254
And then a value 57.

102
00:07:26,360 --> 00:07:29,510
The subjects, predicates and
objects are given as names for

103
00:07:29,510 --> 00:07:33,350
those specific entities in
the way that RDF works,

104
00:07:33,350 --> 00:07:39,339
each of those names is a URI
very similar to a URL.

105
00:07:41,065 --> 00:07:46,325
Objects, the the, the, the, the thing
that, you know, the subject-predicate,

106
00:07:46,325 --> 00:07:50,785
the, the object bit can also have text
values, which are called literal values.

107
00:07:51,925 --> 00:07:56,875
And they can also be data typed
if you want to, so you could say

108
00:07:56,875 --> 00:08:00,810
that this thing is actually an integer or
this is a string, or it's an array.

109
00:08:00,810 --> 00:08:04,000
Something like that for programmatic ease.

110
00:08:05,450 --> 00:08:09,230
There are various different
ways of representing RDF.

111
00:08:12,290 --> 00:08:15,360
Depending on how programmatically
you want to do it.

112
00:08:16,550 --> 00:08:18,580
The top one here is n3 or turtle.

113
00:08:20,010 --> 00:08:24,040
Which is a fairly succinct
freeform expression.

114
00:08:24,040 --> 00:08:27,063
You define a name space identifying,
maybe,

115
00:08:27,063 --> 00:08:31,450
the domain regime that you're
using to carry your information.

116
00:08:31,450 --> 00:08:35,600
And then we have, within the first
angle bracket, is our subject.

117
00:08:35,600 --> 00:08:38,035
This is the thing that we're
saying is lanthanum, La.

118
00:08:38,035 --> 00:08:42,952
Then we have a predicate,
which in this case is pt:name, and

119
00:08:42,952 --> 00:08:49,158
then we have an object which is
the lanthanum encased in quotes.

120
00:08:49,158 --> 00:08:52,779
A semicolon is used to
say that we're continuing

121
00:08:52,779 --> 00:08:57,128
we're going to add another predicate
object to the same subject.

122
00:08:57,128 --> 00:09:02,438
In this case we have atomic number 57,
and then another predicate object,

123
00:09:02,438 --> 00:09:07,940
which is color silvery white, and
then full stop to finish our statement.

124
00:09:07,940 --> 00:09:12,714
So that is the representation of
the graph structure for lanthanum and

125
00:09:12,714 --> 00:09:15,190
n3/turtle version of RDF.

126
00:09:15,190 --> 00:09:19,840
There's also an XML version of it, which
is maybe more programmatically easy to

127
00:09:19,840 --> 00:09:23,990
manipulate if you are already
familiar with working with XML.

128
00:09:23,990 --> 00:09:29,020
And in this particular case,
that same n3/turtle representation that's

129
00:09:29,020 --> 00:09:34,510
shown there is then expressed
here in maybe a slightly more

130
00:09:34,510 --> 00:09:38,760
structured and easily readable XML form.

131
00:09:38,760 --> 00:09:41,930
You can see, again,
we have our subject and

132
00:09:41,930 --> 00:09:46,492
then we have a set of
predicate object pairs.

133
00:09:46,492 --> 00:09:50,225
There's also another technology,
which is quite interesting,

134
00:09:50,225 --> 00:09:55,825
called RDFA which allows you to put these
RDF statements into basic webpages.

135
00:09:55,825 --> 00:09:59,095
The reason you might want to do this,
is that you could have a webpage which

136
00:09:59,095 --> 00:10:03,230
describes something to a human in terms
of text and images and such like.

137
00:10:03,230 --> 00:10:07,137
But also it has this structured
information embedded in it so

138
00:10:07,137 --> 00:10:10,670
you could then pass the same
webpage to a piece of code.

139
00:10:10,670 --> 00:10:12,666
It can extract this information on it and

140
00:10:12,666 --> 00:10:16,378
then make use of that structured
information for programmatic purposes.

141
00:10:16,378 --> 00:10:20,740
So you can have a page which is both for
human consumption and

142
00:10:20,740 --> 00:10:25,795
machine consumption with the information
encoded in both cases in a single go.

143
00:10:25,795 --> 00:10:28,855
Instead of having a separate one for
the machine, and a separate one for

144
00:10:28,855 --> 00:10:29,420
the humans.

145
00:10:32,878 --> 00:10:35,199
Now, one reason you might want to have,

146
00:10:35,199 --> 00:10:39,296
one thing you can do with all this data
when it's out there is this idea of

147
00:10:39,296 --> 00:10:43,800
linked data which is the sort of idea
of what the semantic web is all about.

148
00:10:43,800 --> 00:10:48,780
This was a, a term coined by Tim
Berners-Lee, the founder of the Internet.

149
00:10:48,780 --> 00:10:52,330
And he at-length,
outlined four principles for linked data.

150
00:10:52,330 --> 00:10:55,040
First is that you use URIs
to identify things that you

151
00:10:55,040 --> 00:10:56,470
expose to the web as resources.

152
00:10:56,470 --> 00:10:59,210
Well we've already seen
that's how RDF works.

153
00:10:59,210 --> 00:11:03,464
There's subjects, predicates, and objects
are, are mainly identified by URIs.

154
00:11:03,464 --> 00:11:06,074
Hopefully you're using HTTP URIs so

155
00:11:06,074 --> 00:11:10,290
that everything just works with,
with a web address.

156
00:11:10,290 --> 00:11:14,635
Instead of having some strange thing where
you need to figure out what the beginning

157
00:11:14,635 --> 00:11:18,122
of it is, if it's FTP or Gopher or
some other obscure system.

158
00:11:18,122 --> 00:11:22,490
You provide useful information about the
resource when it's URI is dereferenced.

159
00:11:22,490 --> 00:11:24,947
What that means is that
when you go to that URL,

160
00:11:24,947 --> 00:11:29,173
there is a webpage which describes what
that resource or whatever the subject,

161
00:11:29,173 --> 00:11:31,712
the object,
the predicate is actually about.

162
00:11:31,712 --> 00:11:34,664
What that URI is being used
as a shorthand to, and

163
00:11:34,664 --> 00:11:38,840
to also use links to other related
URIs in the data you're exposing.

164
00:11:39,890 --> 00:11:45,020
And based on those principles,
a whole web of information has

165
00:11:45,020 --> 00:11:50,520
built up over the last six or
seven years called the linked data web.

166
00:11:50,520 --> 00:11:55,490
This connects many different regimes

167
00:11:55,490 --> 00:11:58,630
right at the heart of it
is a thing called DBpedia.

168
00:11:58,630 --> 00:12:03,100
We're all familiar with Wikipedia,
now when you look at a Wikipedia page,

169
00:12:03,100 --> 00:12:08,770
you often see a little section on the
right hand which has in a little box and

170
00:12:08,770 --> 00:12:10,990
seems to have structured information.

171
00:12:10,990 --> 00:12:15,370
If it's a country,
it might always list the, the capital,

172
00:12:15,370 --> 00:12:18,500
the population, the current ruler,
that sort of thing.

173
00:12:18,500 --> 00:12:22,730
If it's a famous person, it'll list when
they were born and where they were born,

174
00:12:22,730 --> 00:12:25,350
when they died, and
that sort of information.

175
00:12:25,350 --> 00:12:28,390
And there is a formal structure for

176
00:12:28,390 --> 00:12:32,180
a lot of the entities in Wikipedia
to capture that sort of information.

177
00:12:33,180 --> 00:12:35,610
That information can be
extracted from Wikipedia and

178
00:12:35,610 --> 00:12:38,000
that's what forms the basis of DBpedia.

179
00:12:38,000 --> 00:12:41,650
That information is captured in
DBpedia in a set of RDF triplets for

180
00:12:41,650 --> 00:12:46,213
all of those semi-structured informations
you find in the Wikipedia pages in that

181
00:12:46,213 --> 00:12:47,336
right-hand side.

182
00:12:47,336 --> 00:12:50,197
And that,
that body of connected information,

183
00:12:50,197 --> 00:12:54,033
of linked information,
is the center of the linked data web, and

184
00:12:54,033 --> 00:12:57,410
then that links out to other
data collections in the web.

185
00:12:58,486 --> 00:13:03,773
Film titles or sport scores or genomic or

186
00:13:04,885 --> 00:13:09,628
biomedical publication information.

187
00:13:09,628 --> 00:13:13,141
Chemical analyses, that are expressed
in these similar forms and

188
00:13:13,141 --> 00:13:15,720
linked together through
these web mechanisms.

189
00:13:17,020 --> 00:13:21,780
And the sorts of things that this
link data allows you to do is you can

190
00:13:21,780 --> 00:13:26,660
ask sophisticated questions of it
through particular mechanisms.

191
00:13:26,660 --> 00:13:30,450
For example, you could say, well,
I want a list of all episodes

192
00:13:30,450 --> 00:13:34,420
of the television series Breaking Bad
which are ordered by their air date.

193
00:13:34,420 --> 00:13:39,090
That's a query you can ask of the linked
data web and it will give you that

194
00:13:39,090 --> 00:13:42,010
information back because those
triplets link to each other and

195
00:13:42,010 --> 00:13:43,760
that information is in there.

196
00:13:43,760 --> 00:13:48,320
Or you could find the official websites of
companies with more than 50,000 employees.

197
00:13:48,320 --> 00:13:51,586
Or you could say,
find me things close to the Eiffel Tower.

198
00:13:51,586 --> 00:13:57,381
One of the main hubs in the linked
data web is a set of geopositions,

199
00:13:57,381 --> 00:14:00,472
and so the Eiffel Tower subject or

200
00:14:00,472 --> 00:14:06,378
object can be resolved into something
which has a geospatial location.

201
00:14:06,378 --> 00:14:10,346
And then you can compare that to other
geospatial locations and find those things

202
00:14:10,346 --> 00:14:14,460
which are near to the Eiffel Tower and
then, then render that in a list.

203
00:14:14,460 --> 00:14:18,720
Or, as I said, you could do things like
discover new drugs to treats Alzheimer's.

204
00:14:18,720 --> 00:14:23,030
So you could say, what proteins
are involved in signals transduction and

205
00:14:23,030 --> 00:14:25,070
are related to pyramidal neurons?

206
00:14:25,070 --> 00:14:29,939
Now, if you an experiment was done
of blindly asking Google this,

207
00:14:29,939 --> 00:14:34,241
and it got 223,000 hits from
the Google search engine,

208
00:14:34,241 --> 00:14:37,753
and, and none of those were real,
valid results.

209
00:14:37,753 --> 00:14:42,432
But when you ask the same query
of linked healthcare data,

210
00:14:42,432 --> 00:14:47,129
you get 32 hits and
each of those hits is a successful result.

211
00:14:47,129 --> 00:14:50,005
It is a protein that's involved
in signal transduction and

212
00:14:50,005 --> 00:14:53,405
related to pyramidal neurons which
helps you do that sort of thing.

213
00:14:53,405 --> 00:14:58,742
For this shows the power of actually
linking this information together in a,

214
00:14:58,742 --> 00:15:04,338
the main knowledge-based meaningful way,
in a semantically meaningful way.

215
00:15:04,338 --> 00:15:07,345
And that is the power of this,
this, this sort of technology.

216
00:15:08,525 --> 00:15:10,294
And that's where we will, will,

217
00:15:10,294 --> 00:15:13,464
well we'll finish by some of
the tools that you can use.

218
00:15:13,464 --> 00:15:18,474
If you want to look at linked web data in
your browser you can use the Tabulator

219
00:15:18,474 --> 00:15:24,394
tool there are specific browsers for doing
this, Disco or the Openlink Data browser.

220
00:15:24,394 --> 00:15:28,167
There are libraries which you can use to
encode and work with this information,

221
00:15:28,167 --> 00:15:31,489
there's this old one called
the Semantic Web Client library in Java,

222
00:15:31,489 --> 00:15:34,210
there are more modern versions and others.

223
00:15:34,210 --> 00:15:39,474
If you want to, if you have a relational
database that you want to expose in,

224
00:15:39,474 --> 00:15:41,778
easily into the linked data web,

225
00:15:41,778 --> 00:15:46,564
there is also a tool called d2r
that you can use for doing this.

226
00:15:46,564 --> 00:15:51,492
It's essentially a,
a set of mappings that you have to

227
00:15:51,492 --> 00:15:56,718
provide which will translate
the database schema you have into

228
00:15:56,718 --> 00:16:02,254
something that can be understood
in terms of a conceptual scheme.

229
00:16:02,254 --> 00:16:05,670
And we'll cover those in the next module.

230
00:16:05,670 --> 00:16:07,660
And so
that's where we'll leave this module

