>> You're not going to want to miss
this episode of the AI Show where
we look at knowledge store inside of Azure Cognitive Search.
Imagine being able to get structured data out of
unstructured things to do
amazing applications. Make sure you tune in.
[MUSIC].
>> Hello and welcome to this episode of the AI Show.
We're going to talk about knowledge store
in Azure Cognitive Search.
I've got a special guest with me. How you doing, my friend?
>> Great, Seth. It's absolutely great to be on the show.
>> Tell us who you are and what you do.
>> I'm Vinod Kurpad and I'm a program manager
on the Azure Cognitive Search team and I work on
scenarios that deal with ingesting your data and enriching
with AI skills as we load that data into the search index for you.
>> Awesome. So for those who
don't know what Azure Cognitive Search is,
can you give us like a 10 second elevator pitch?
>> Yes. So Azure Cognitive Search
is a search as a service solution.
We have a number of different capabilities
that are built into the search solution.
Obviously, you get a search index
where you can do full text searching.
But we also have ways for us to be able
to enrich your data as it's being brought into
the index to ensure that your search experience
is more relevant and tuned to your application's needs.
>> Fantastic. So what is
knowledge store and what does it have to do with all this?
>> Great. So the knowledge store is
a new feature in Azure Cognitive Search.
One of the things that we do that we can
apply enrichments as we bring your data into the search index
is using a knowledge store to be able to represent
this data in a form that is not
necessarily just the search index itself.
So think about scenarios where you've got, for example,
a web application where you want to be able to
provide a rich and relevant search experience,
but you also want to be able to represent this information in
a way that is maybe different
from just the way it's stored in the search index.
So for example, data in your search index is stored as plain text.
You might have PDF files that you're ingesting,
enriching, and then making those searchable.
But when you want to render this information back,
you might want to render it in a way that breaks
apart this PDF file into different components and
makes it easy for you to be able to
create a web based experience based on that.
What the knowledge store allows you to do is
take each of these components, enrich it,
and then be able to store them in a way
that aligns with that search experience.
That is just one example of how you could use the knowledge store.
>> I see. So basically,
if I'm understanding this right,
the index is designed
primarily for searching and returning documents,
the knowledge store is for storing whatever you
want based upon the arrangements and
whatever format that you need to do other things?
>> Yeah, exactly.
So there's a couple of
fairly straightforward or canonical scenarios
that customers want to use this data.
One example is, for example,
building a data visualization dashboard.
So we have a set of tools
that you could use the knowledge store for
to be able to enrich your data,
project it, and structure it in a way that
is just instantly recognizable within Power BI.
So all you have to do is enrich your data,
project it out into the knowledge store,
point Power BI at the knowledge store as a data source,
and Power BI instantly knows how to recognize that data,
how to preserve those relationships
that we've built in within that data,
and how do you navigate to that data.
So think about scenarios where you want to maybe
explore this data in a dimension
that is not best suited for search.
For example, you want to look at things how it's
iterated over time or how something is changed over time.
So you should be able to use the time dimension within Power BI,
there's a number of
different visualizations that allow you to do that,
but the data is presented within the knowledge store
and you should now be able to
visualize how your data is evolved over time.
>> Well, let's look at the process. I see you
have a really awesome graphic here.
>> Yeah. So let's talk a little bit about
what the enrichment pipeline looks like.
So for those of you who are familiar
with the cognitive search process,
you typically start with the data in a data source.
That data source is
essentially one of the data sources that we support,
it would be either things like a Blob storage account,
a SQL database, a Cosmos database,
and there's a number of different data sources we support.
You bring that data into your enrichment pipeline
which is essentially your indexer through a field mappings,
then it goes through a process we call document cracking.
Document cracking is essentially,
think of it as a way for us to crack open
your document and extract
the actual contents that could be then enriched.
If it's a Cosmos database,
so it's just a document.
In that case, we are talking
about essentially just looking at each
of the different objects within that within that document.
But if it's something more complex like Blob storage, for example,
we're talking about opening up a Word document and looking at
each of the different elements within it
which might be text or images.
So you're now essentially in the enrichment pipeline
with the contents of
your document that can then be enriched with skills.
Skills are typically one of two types,
they're either cognitive skills or custom skills.
Essentially, what a skill does is it acts on a component of
the data that is extracted from
the document as part of
document tracking and can then enrich that.
So think about a scenario where you've got a document,
let's just assume it's a PowerPoint file with
a number of different bullets and text and images,
and so you're able to enrich
all these different components as you go along.
So you're able to run text analytics skills on the text,
you're able to run some image skills on the images,
and now you've got this enriched document that
contains all the things that you extracted out of a data source.
In addition to that, it also
contains all these different enrichments
that you're just being able to run on this particular document.
At this point, you can now obviously continue down the path
of actually projecting this information out into the search index,
but you could also project that information
out optionally into the knowledge store.
What the knowledge store allows you to
do is project this information
out into tables, objects, and files.
So tables, think about it as data that you want to represent as
highly structured data but relatively low in terms of data size.
Objects, think about it as JSON files that are
essentially a large representation
of what each of these objects could look like.
Files are images or other binary objects that you generate
as part of your enrichment pipeline So the knowledge store allows
you to take each of these different constructs
and be able to project your data out in each
of these constructs depending on what is
the specific need that you want to solve for.
So for example, we
talked about a couple of different scenarios like for example,
the app scenario or Power BI.
So you would choose what exactly you want
to do and project this data out
into the knowledge store based on any of
those scenarios and how you plan to use that data.
>> That makes sense. So as I'm looking at this,
it's basically a way for getting additional information out of
your unstructured data and structuring it in
a data source like a table, for example.
But is it smart enough to know like relationships between things?
>> Yeah, that's a great question. So the one thing that it
can do is not just relate your data within a table.
So for example, when you go create a knowledge store and then
you use projections to project your data and you
choose tables as the projection that you want to work with,
we will obviously layer out the data in
a way that preserves
the relationships within the object that you are representing.
But we also give you the ability
to define what those relationships
are when you're working across different projection types.
So for example, you might start with, hey,
I've got a PowerPoint file that I want to
be able to project out in a way that I save
all the images that
I've extracted out of the PowerPoint file as files.
I want to store some of
the larger pieces of information, for example,
if I did OCR on those images is
a hugely out text element that comes out of it.
I want to store that in the objects,
and then I want to store all the structured insights
that I captured out of these images in tables.
So now, you can not just structure
this information or project this information
in a way that allows you to do each of these things,
but it also builds the relationships
across these different projection types.
So now, you can start from a particular file and say, "Oh,
what are the different pieces
that I could identify out of this from
a layout perspective and go find
the particular object that represents the layout text?"
Then you could also say, "Oh,
what are the different structured insights that I capture out of
this and then go find the particular roles within
table storage that represent
that particular structured insight that that could be
captured out of that file object that you are looking at?"
>> This is pretty amazing because I knew that there
was relationships within the tables.
I didn't know there was relationships across all
three of the things, which is pretty cool.
Now, here's another question,
can you give us an example of where this
is being used to great effect?
>> Yeah. So a good example of one of
the key scenarios where this is actually being used is,
for example, we recently worked with the Metropolitan Art Museum.
We worked with them in terms of enriching
their entire catalog of images to then be able to
use the knowledge store to be able to represent
that structured information that could be
then used in a Power BI experience.
I'll switch to an actual live demo actually because I think
that might be the best way to talk through this.
So this is a demo that we built based on
the Met's catalog of images
and what you're seeing here is, for example,
each of these different images represents,
in this case, it's buttons that were extracted from their catalog.
So I can use the key phrase tool to now say I'm probably looking,
for example, for furniture and now,
I can start seeing how each of these elements
now respond because it's using
the structure or relationships within the data to now go
find all the different artwork
that are tagged with the word furniture,
and is also able to plot them on the map because it
now knows that these particular pieces of art
were taken from a collection that belong
to appear of time in one
of these particular locations in the world.
So you're now able to not
just explore this data through a search index,
but also expand this and look
at it linearly over time or locate it
across the geography of distribution of your data to now then say,
what are the interesting insights that I can catch out of this
based on the enrichments that I was
able to run on this particular data set.
>> Well, Vinod, this is pretty amazing stuff.
Not only are you able to use Azure Cognitive Search through
the regular searching stuff that you're
saying, with the knowledge store,
you're able to even build
more advanced applications by redirecting
the intelligence that's gathered during
indexing into a different location. Is that about sum it up?
>> That sums it up, Seth.
Thank you so much. That is absolutely correct.
Not only are we seeing
incredibly interesting ways in which customers are using this,
but we're also starting to see more of
a active learning pattern that's being
built out based on being able to
project your data out into
the knowledge store and then use that as a data
set within Azure ML or a downstream ML application.
But that's a more advanced topic probably
worth an episode in itself but yeah,
there's a lot of interest in
knowledge store and a lot of different ways in
which you can use your enriched data
outside of just the search experience.
>> Well, thank you so much for spending some time with us.
For those that are watching, thank you
so much for watching and learning
about knowledge store in Azure Cognitive Search.
Thanks again for watching and we'll see you next time. Take care.
[MUSIC]