Post on 29-Jan-2018
transcript
Getting Started with Knowledge Graphs
European Semantic Web ConferenceMay 29, 2017Peter Haase
2
Peter Haase
• Interest and experience in ontologies, semantic technologies and Linked Data
• PhD in KR and semantic technologies
• 15 years in academic research and software development
• Contributor to OWL 2 standard
metaphacts Company Facts
• Founded in Q4 2014
• Headquartered in Walldorf, Germany
• Currently ~10 people
• Platform for knowledge graph interaction & application development
About the Speaker
3
Introduction: What are Knowledge Graphs?
Examples and Applications• Wikidata• Cultural Heritage• Industrial Applications
Standards and Principles
Knowledge Graph Management
Hands-on Exercises:• metaphactory Knowledge Graph Platform
Agenda
Preparation Hands-on Exercises
5
• Download metaphactory (or copy from USB stick)http://www.knowledgegraph.info/
• Follow README, start metaphactorystart.sh / start.bat
• Open start page http://localhost:10214
• Follow “Getting started tutorial”http://localhost:10214/resource/Help:Tutorial
Hands-on Exercises
Introduction
What are Knowledge Graphs?
7
The Rise of Knowledge Graphs
8
• We need a structured and formal representation of knowledge
• We are surrounded by entities, which are connected by relations
• Graphs are a natural way to represent entities and their relationships
• Graphs can be managed efficiently
Why (Knowledge) Graphs?
9
A (very small) Knowledge Graph
http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140225/example-graph.jpg
10
• Semantic descriptions of entities and their relationships
• Uses a knowledge representation formalism (Focus here: RDF, RDF-Schema, OWL)
• Entities: real world objects (things, places, people) and abstract concepts (genres, religions, professions)
• Relationships: graph-based data model where relationships are first-class
• Semantic descriptions: types and properties with a well-defined meaning (e.g. through an ontology)
• Possibly axiomatic knowledge (e.g. rules) to support automated reasoning
What are Knowledge Graphs?
11
Knowledge Graphs Enabling Intelligent Applications
Knowledge Graph
Algorithms
Applications
Data Transformation, IntegrationNatural Language Processing
Data Sources
• Inferencing
• Machine Learning
• Entity Recognition
• Disambiguation
• Text Understanding
• Recommendations
• Semantic Search
• Question Answering
• Knowledge Sharing
• Knowledge Management
• Analytics
• Entities• Relationships• Semantic Descriptions
• Dashboards
Examples and Applications
13
Google Knowledge Graph
14
Entity Search and Summarizations
Google Knowledge Graph
15
Discovering Related Entities
Google Knowledge Graph
16
Google Knowledge Graph
Factual Answers
17
Knowledge Graph Search API
https://developers.google.com/knowledge-graph/
18
LinkedIn Economic Graph
18
Examples and Applications
Wikidata
20
Open Knowledge Graphs
21
Wikipedia page A query against Wikipedia
Query the Knowledge of Wikipedia like a Database
21
22
• Collecting structured data. Unlike the Wikipedias, which produce encyclopedic articles, Wikidata collects data, in a structured form.
• Collaborative. The data in Wikidata is entered and maintained by Wikidata editors, who decide on the rules of content creation and management in Wikidata supporting the notion of verifiability.
• Free. The data in Wikidata is published under the Creative Commons
• Large.
• 26 million entities
• 150 million statements
• 130 million labels
• 350 languages
• >1500 million triples
Wikidata
25
Wikidata Query Service
https://query.wikidata.org
26
• Build your applications using Wikidata
• Free corpus of structured knowledge
• Easily accessible and standards-based
• See http://query.wikidata.org/
• Contextualize your enterprise data
• Wikidata provides stable identifiers into the open data world
• Seamless integration of private data with open data
• Enrich Wikidata with your data
• Contribute your data to Wikidata
• Link to your own data, make it visible
• Examples:
• Open biomedical databases – Wikidata as a central hub
• Cultural heritage
Use Cases for the Wikidata Knowledge Graph
28
Histropedia
Examples and Applications
Cultural Heritage
30
• Challenge:
• Very context-rich data
• Multi-disciplinary data, e.g. archaeologists, historians, librarians
• Multi-institutional data
• Complex domain, relationships, e.g. temporal, spatial, historical, political
• Benefits of Knowledge Graphs
• Integration and interchange of heterogeneous cultural heritage information
• Rich ontologies for knowledge representation
• Deep semantics for true conceptual merging
• Multi-lingual knowledge representation
• Knowledge access across museums and organizations
• Enabling knowledge sharing and collaboration
Benefits of Knowledge Graphs for Cultural Heritage
31
• Collaboration environment for researchers in Cultural Heritage
• Expert users: researchers, curators
• Based on CIDOC-CRM: very rich, expressive ontology
• Large, cross-museum data sets
• E.g. British Museum: 100s millions of triples
• Advanced search capabilities
• Supporting query construction
• Sharing of searches, results, visualizations
• Knowledge sharing
• Discussions around cultural heritage annotations
• Argumentation support: Representation of conflicting views and opionions
ResearchSpace: Knowledge Graphs for Cultural Heritage
http://researchspace.org/
32
Demo ResearchSpace Platform
Standards and Principles
34
• Instance data (ground truth)
• Schema data (vocabularies, ontologies)
• Metadata (e.g. provenance, versioning, documentation licensing)
• Comprehensive taxonomies to categorize entities
• Links between internal and external data
• Mappings to data stored in other systems and databases
Multi-domain, source, granularity
Holistic Knowledge
35
Semantics on the Web
Semantic Web StackBerners-Lee (2006)
Syntactic basis
Basic data model
Simple vocabulary(schema) language
Expressive vocabulary(ontology) language
Query language
Application specificdeclarative-knowledge
Digital signatures,recommendations
Proof generation,exchange, validation
36
Knowledge Graphs Built on the Semantic Web Layer Cake
Unicode URIs
RDF(ResourceDescriptionFramework)
RDF-Schema
OWLSKOS
SPARQL
Query language
Entities
Relationships
Vocabularies
Ontologies
Expressive OntologyLanguage
Thesauri, classificationschemes
Graph datamodel
Simple vocabularylanguage
37
Our Knowledge Graph again (a bit more technical)
38
Graph consists of:
• Resources (identified via URIs)
• Literals: data values with data type (URI) or language (multilingualityintegrated)
• Attributes of resources are also URI-identified (from vocabularies)
Our Knowledge Graph again (a bit more technical)
• Various data sources and vocabularies can be arbitrarily mixed and meshed
• URIs can be shortened with namespace prefixes; e.g. schema: →http://schema.org/
39
Allows one to talk about anything
Uniform Resource Identifier (URI) can be used to identify entities
http://dbpedia.org/resource/Leonardo_da_Vinci
is a name for Leonardo da Vinci
http://www.wikidata.org/entity/Q12418
is a name for the Mona Lisa painting
Resource Description Framework (RDF)
40
Allows one to express statements
An RDF statement consists of:
• Subject: resource identified by a URI
• Predicate: resource identified by a URI
• Object: resource or literal
Resource Description Framework (RDF)
41
N-Triples Syntax
<http://www.wikidata.org/entity/Q12418>
<http://purl.org/dc/terms/creator>
<http://dbpedia.org/resource/Leonardo_da_Vinci> .
<http://www.wikidata.org/entity/Q12418>
<http://purl.org/dc/terms/title>
"Mona Lisa" .
Resource Description Framework (RDF)
URIsaregiveninanglebracketsinN-Triples.
LiteralsaregiveninquotesinN-Triples.
InN-Tripleseverystatementisterminatedwithafullstop.
42
• Every set of RDF assertions can then be drawn and manipulated as a (labelled directed) graph:
• Resources – the subjects and objects are nodes of the graph.
• Predicates – each predicate use becomes a label for an arc, connecting the subject to the object.
RDF Graphs
Subject ObjectPredicate
43
Resource Description Framework (RDF)
<http://dbpedia.org/resource/Leonardo_da_Vinci>
<http://www.wikidata.org/entity/Q12418>
<http://purl.org/dc/terms/creator>
"Mona Lisa"
<http://purl.org/dc/terms/title>
44
• Turtle is a syntax for RDF more readable.
• Since many URIs share same basis we use prefixes:
RDF Turtle
@prefix foaf: <http://xmlns.com/foaf/0.1/>.@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .@prefix schema: <http://schema.org/>.@prefix dcterms: <http://purl.org/dc/terms/>.@prefix wd: <http://www.wikidata.org/entity/>.
45
• Also has a simple shorthand for class membership:
@prefix foaf: <http://xmlns.com/foaf/0.1/>.<http://example.org/bob#me> a foaf:Person .
Is equivalent to:
<http://example.org/bob#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person>.
RDF Turtle
46
• When multiple statements apply to same subject they can be abbreviated as follows:
wd:Q12418 dcterms:title "Mona Lisa" ;
dcterms:creator <http://dbpedia.org/resource/Leonardo_da_Vinci> .
RDF Turtle
Samesubject
47
1. Follow http://localhost:10214/resource/Help:Tutorial
2. Load sample.ttl via http://localhost:10214/resource/Admin:DataImportExport
3. Browse and explore sample data
Hands-on: Loading Data
48
• Collections of defined relationships and classes of resources.
• Classes group together similar resources.
• Terms from well-known vocabularies should be reusedwherever possible.
• New terms should be defined only if you can not find required terms in existing vocabularies.
Describing Data: Vocabularies
49
A set of well-known vocabularies has evolved in the Semantic Web community. Some of them are:
Describing Data: Vocabularies
Vocabulary Description ClassesandRelationships
Friend-of-a-Friend (FOAF) Vocabularyfordescribingpeople.
foaf:Person,foaf:Agent,foaf:name,foaf:knows,foaf:member
DublinCore(DC) Definesgeneralmetadataattributes.
dc:FileFormat,dc:MediaType,dc:creator, dc:description
Organization Ontology(org) Publishingoforganizationinformation.
org:Organisation,org:Site,org:Role,org:member,org:hasSite
schema.org Cross-domainvocabularyforannotationofWebpages.
schema:Event,schema:Product,schema:location,schema:image
50
• Language for two tasks w.r.t. the RDF data model:
• Definition of vocabulary – nominate:
• the ‘types’, i.e., classes, of things we might make assertions about, and
• the properties we might apply, as predicates in these assertions, to capture their relationships.
• Inference – given a set of assertions, using these classes and properties, specify what should be inferred about assertions that are implicitly made.
RDF-S – RDF Schema
51
• rdfs:Class – Example:
foaf:Person – Represents the class of persons
• rdf:Property – Class of RDF properties. Example:
foaf:knows – Represents that a person “knows” another
• rdfs:domain – States that any resource that has a given property is an instance of one or more classes
foaf:knows rdfs:domain foaf:Person
• rdfs:range – States that the values of a property are instances of one or more classes
foaf:knows rdfs:range foaf:Person
RDF-S – RDF Schema
52
RDF-S – RDF Schema
foaf:knowsrdfs:rangefoaf:Person .
<http://example.org/bob#me>foaf:knows<http://example.org/alice#me>.
<http://example.org/alice#me> rdf:typefoaf:Person.
Schema
Existing fact
Inferred fact
Weexpect tousethisvocabularytomakeassertionsabout persons.
Havingmadesuchanassertion...
Inferences canbedrawnthatwedidnotexplicitlymake
53
1. Load foaf.rdf via http://localhost:10214/resource/Admin:DataImportExport
2. Browse and explore FOAF vocabulary
Hands-on: Load FOAF Vocabulary
54
• RDFS provides a simplified ontological language for defining vocabularies about specific domains.
• OWL provides more ontological constructs for knowledge representation.
• Semantics grounded in Description Logics.
• Most graph databases concentrate on the use of RDFS with a subset of OWL features.
OWL – Web Ontology Language
55
Extends the DL further, but has three more computable fragments (profiles).
OWL 2.0 – Web Ontology Language 2.0
55
OWL2Full• UsedinformallytorefertoRDFgraphsconsideredasOWL2
ontologiesandinterpretedusingtheRDF-BasedSemantics.OWL2DL• UsedinformallytorefertoOWL2DLontologiesinterpreted
usingtheDirectSemantics.OWL2EL• Limitedtobasicclassification,butwithpolynomial-time
reasoning.OWL2QL• Designedtobetranslatabletorelationaldatabasequerying.OWL2RL• Designedtobeefficientlyimplementableinrule-basedsystems.
OWL2Full
OWL2DL
OWL2EL
OWL2QL OWL2RL
56
OWL is made up of terms which provide for:
• Class construction: forming new classes from membership of existing ones (e.g., unionOf, intersectionOf, etc.).
• Property construction: distinction between OWL ObjectProperties (resources as values) and OWL DatatypeProperties (literals as values).
• Class axioms: sub-class, equivalence and disjointnessrelationships.
• Property axioms: sub-property relationship, equivalence and disjointness, and relationships between properties.
• Individual axioms: statements about individuals (sameIndividual, differentIndividuals).
OWL – Web Ontology Language
57
Example: CIDOC-CRM Ontology
Class: PersonSubClassOf: ActorSubClassOf: Biological ObjectSubClassOf: was_born exactly 1SubClassOf: has_parent min 2
Class: Physical ThingSubClassOf: Legal ObjectSubClassOf: Spacetime VolumeDisjointWith: Conceptual ObjectSubClassOf: consists_of some Material
58
1. Load ecrm_current.owl via http://localhost:10214/resource/Admin:DataImportExport
2. Browse and explore CIDOC-CRM ontology
Hands-on: Load CIDOC-CRM Ontology
59
• Data model for knowledge organization systems (thesauri, classification scheme, taxonomies)
• Conceptual resources (concepts) can be
• identified with URIs,
• labeled with lexical strings in natural language,
• documented with various types of note,
• semantically related to each other in informal hierarchies and association networks and
• aggregated into concept schemes.
SKOS - Simple Knowledge Organization System
http://www.w3.org/TR/skos-reference/
60
Example: Concept Definition for Paper
61
• Query language for RDF-based knowledge graphs.
• Designed to use a syntax similar to SQL for retrieving data from relational databases.
• Different query forms:
• SELECT returns variables and their bindings directly.
• CONSTRUCT returns a single RDF graph specified by a graph template.
• ASK test whether or not a query pattern has a solution. Returns yes/no.
• DESCRIBE returns a single RDF graph containing RDF data about resources.
SPARQL – * Protocol and RDF Query Language
62
Main idea: Pattern matching
• Queries describe sub-graphs of the queried graph
• Graph patterns are RDF graphs specified in Turtle syntax, which
contain variables (prefixed by either “?” or “$”)
• Sub-graphs that match the graph patterns yield a result
SPARQL – * Protocol and RDF Query Language
dbpedia:Leonardo_da_Vinci?var
dcterms:creator
63
SPARQL – * Protocol and RDF Query Language
?interest<http://example.org/bob#me>
foaf:topic_interest
Results:?interest
wd:Q12418
Graphpattern:
Datagraph:
64
SPARQL – * Protocol and RDF Query Language
?interest<http://example.org/bob#me>
foaf:topic_interest
Results:
?creatordcterms:creator
?interest ?creator
wd:Q12418 dbpedia:Leonardo_da_Vinci
Graphpattern:
Datagraph:
65
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?creator
WHERE {
<http://example.org/bob#me> foaf:topic_interest ?interest .
?interest dcterms:creator ?creator
}
SPARQL Query: Components
Prologue:• Prefixdefinitions• SubtlydifferentfromTurtlesyntax - thefinalperiodisnotused
66
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?creator
WHERE {
<http://example.org/bob#me> foaf:topic_interest ?interest .
?interest dcterms:creator ?creator
}
SPARQL Query: Components
Queryform:• ASK,SELECT,DESCRIBE orCONSTRUCT• SELECT retrievesvariablesandtheirbindingsasatable
67
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?creator
WHERE {
<http://example.org/bob#me> foaf:topic_interest ?interest .
?interest dcterms:creator ?creator
}
SPARQL Query: Components
Querypattern:• Definespatternstomatchagainstthedata• GeneralisesTurtlewithvariablesandkeywords– N.B.finalperiodoptional
68
• Use the local SPARQL endpoint:http://localhost:10214/sparql
• Execute the queries from the tutorial
1. Select all statements about Bob
2. Select the creator of the things that Bob is interested in.
Hands-on: Execute SPARQL Query
69
• Namespaces are added with the ‘PREFIX’ directive
• Statement patterns that make up the graph are specified between brackets (“{}”)
Query Form: ASK
PREFIX foaf: http://xmlns.com/foaf/0.1/ASK WHERE { <http://example.org/bob#me> foaf:knows<http://example.org/alice#me> }
DoesBobknowAlice?Query:true
Results:
IsAliceinterestedintheMonaLisa?Query:false
Results:PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX wd: <http://www.wikidata.org/entity/>ASK WHERE { <http://example.org/alice#me> foaf:topic_interestwd:Q12418}
70
• A property path is a possible route through a graphbetween two graph nodes
• Property paths allow for more concise expression of someSPARQL basic graph patterns and also add the ability tomatch arbitrary length paths
Query Form: SELECT – Property Paths
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?creator WHERE {
<http://example.org/bob#me> foaf:topic_interest / dcterms:creator ?creator
}
Query:Creator of things that Bobis interested in?
71
Filter expressions
• Different types of filters and functions may be used
Query Form: SELECT - FILTER Expressions
PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?person ?another WHERE { ?person foaf:knows ?another FILTER NOT EXISTS { ?another foaf:knows ?person }
}
Query:Peoplewho know someone who does notknow them?Filter:Comparisonandlogicaloperators
72
• Calculate aggregate values: COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT and SAMPLE
• Built around the GROUP BY operator
• Prune at group level (cf. FILTER) using HAVING
Query Form: SELECT - Aggregates
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?person (COUNT(?another) as ?num_friends) WHERE {
?person a foaf:PersonOPTIONAL { ?person foaf:knows ?another }
}GROUP BY ?person
Howmanyfriendsdopeoplehave?Query:
73
• CONSTRUCT WHERE: In order to query for a subgraph, without change, it is no longer necessary to repeat the graph pattern in the template
Query Form: CONSTRUCT
CONSTRUCTWHERE { <http://example.org/bob#me> ?p ?o
}
Example:
74
• Graph– and vocabulary transformations
Query Form: CONSTRUCT
PREFIX wdt: <http://www.wikidata.org/prop/direct/>PREFIX dcterms: <http://purl.org/dc/terms/>
CONSTRUCT { ?creator wdt:P800 ?work } # wdt:P800 = notable work
WHERE { ?work dcterms:creator ?creator}
Example:
75
• Allows federating across multiple SPARQL endpoints
• The SERVICE keyword instructs to invoke a portion of a SPARQL query against a remote SPARQL endpoint
SPARQL Federated Query
PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE { <http://example.org/bob#me> foaf:topic_interest ?interest . SERVICE <https://query.wikidata.org/sparql> {
?interest ?predicate ?object }}
FindinformationaboutthingsthatBoblikesatWikidataQuery:
76
SPARQL 1.1 provides data update operations:
• INSERT data: adds some triples, given inline in the request, into a graph
• DELETE data: removes some triples, given inline in the request, if the respective graphs contains those
• DELETE/INSERT data: uses in parallel INSERT and DELETE
SPARQL 1.1 Update
77
SPARQL Update: Example
BASE<http://example.org/>PREFIXfoaf:<http://xmlns.com/foaf/0.1/>PREFIXwd:<http://www.wikidata.org/entity/>PREFIXrdfs:<http://www.w3.org/2000/01/rdf-schema#>
WITH<http://www.metaphacts.com/tutorial/>INSERT{
<peter#me> afoaf:Person ;rdfs:label "Peter";foaf:knows <alice#me>,<bob#me>;foaf:topic_interest wd:Q12418
}WHERE{}
Knowledge Graph Management
79
Aspects of Knowledge Graph Management
KNOWLEDGE GRAPHSTORAGE
• Scalable data loading and storage
• Querying and analytics
• Built-in inferencing and custom services
• Management of hybrid data sources
KNOWLEDGE GRAPH CREATION
• Model- and ontology development
• Semi-automatic creation from structures sources (data lifting)
• Interlinking of data from heterogeneous sources
• Collaborative authoring
• Data annotation
• Versioning and provenance
• Quality Assurance
KNOWLEDGE GRAPH CONSUMPTION
• Development of end-user oriented applications
• Interactive visualization
• Exploration
• Semantic search
• Natural languageinterfaces
80
metaphacts Supports the Whole Data Lifecyle
Data Extraction & Integration
Data Linking & Enrichment
Storage & Repositories
Querying & Inferencing
Search
Visualization
Authoring
end-to-endplatform
81
metaphactory as an Open Platform
BUILT IN OPEN SOURCE
ü Dual licensing (LGPL & commercial license)ü Open Platform API and SDKü Integration of external tools and application via APIsü Easy development of own web components and servicesü Full HTML5 complianceü Re-usable, declaratively configurable Web Components
= Easy modification, customization, and extensibility
BUILT ON OPEN STANDARDS
ü W3C Web Componentsü W3C Open Annotation Data Modelü W3C Linked Data Platform Containersü Data processing based on W3C standards such as RDF, SPARQLü Expressive ontologies for schema modeling based on OWL 2, SKOSü Rules, constraints, and query specification based on SPIN and RDF Data
Shapes
= Sustainable Solution
82
metaphactory Platform Architecture
Data
Services
Applications
Graph Database Graph Analytics Provenance
Catalog Services Exploration VisualizationConfiguration Search Access Control
Knowledge Graph Management App Factory
End UsersExpert/domain Users
Smart Apps
Developers
InferencingSPARQL Endpoint
83
Users and their Benefits
EXPERT USERS
• Collaboratively construct and manage knowledge graphs
• Integrate data from heterogeneous sources
• Use standard connectors for a variety of data formats
• Benefit from scalable data processing for big graphs
• Conduct high-performance querying and analytics
DEVELOPERS
• Rapidly develop Web and mobile end-user oriented applications
• Benefit from various deployment modes: stand-alone, HA, scale-up, scale-out
• Interact with an easy-to-use interface
• Collaboratively manage, annotate and author data
• Use large set of custom query and templates catalogs
• Capture of provenance information
END USERS
• Benefit from user-friendly interaction with data
• Gain insights into complex relationships
• Enable transparency and extract value
• Ask questions and obtain precise results
• Reduce effort for data analysis
• Reduce noise – obtain targeted, high quality results
• Enhance quality of business decisions
84
Search
• Domain independent, fully customizable search widget
• Satisfy complex information needs without learning SPARQL
• Search functionalities
• Graphical query construction
• End user friendly search interfaces for building and sharing complex queries
• Semantic auto suggestion
• Interactive result visualization
• Faceted search and exploration of item collections
• Ability to invoke external full text search indices such as Solr including the possibility to score, rank and limit the results for responsive autosuggestion
• Saving and sharing of queries and search results
Search
85
Table
Transform your queries into durable, interactive tables
Many customization possibilities, e.g. pagination,
filters and cell templates
Graph
Visualize and explore connections in a graph view
Custom styling of the graph
Variety of graph layouts
Carousel
Animated browsing through a list of result items
Chart
Visualize trends and relationships between
numbers, ratios, or proportions
Visuali-zation
Tree Table
Tree-based visualization,
navigation and browsing through sub-
tree structures
Map
Displaying spatial data on a
geographic map
Visualization
86
Autho-ring
• Annotations
• Based on W3C Open Annotation Data Model
• Automated semantic link extraction
• Form based authoring
• Manually author and update instance data, backed by query templates, data dependencies, and type constraints
• Rich editing components for special data types
• Customizable flexible forms
• Autosuggestion and validation against the knowledge graph
• Capturing of provenance information
• User group management
Authoring
87
Install & Go: Out-of-the-Box Functionality
Getting Started Tutorialto guide you through your
first steps with metaphactory
Get started
Management of Queries in Catalog
for easy reuse and updating
Keyword Search Interfacewith semantic autosuggestion,
driven by SPARQL
Search
Data Overview Pageswith Web components for
end-user friendly data presentation and interaction
Template-based Data Browserused to define generic views
which are automatically applied to entire sets of instances
Explore
88
Example: Simple Semantic Search
Keyword search with semantic autosuggestion, driven by SPARQL
Set up in ~2 minutes!
Declarative Components
Developer embeds ‘semantic-simple-search’
into the page
<semantic-simple-search data-config='{"query":"SELECT ?result ?label ?desc
?img WHERE { ?result rdfs:label ?label .?result rdfs:comment ?desc .?result foaf:thumbnail ?img .FILTER(CONTAINS(?label,
?token))}","searchTermVariable":"token", // user input"template":"<span title="{{result}}"><img src="{{img}}"
height="30"/>{{label}} ({{desc}})</span>"
}'/>
1
Rendered component is displayed to the user and can be used right away
2
Autosuggestions are dynamically computed
based on query and user input
3
89
• Associate a class in the knowledge graph with a template
• The template is applied to instances of the class
HTML5 Template Pages
Bob
foaf:Person
rdf:type
Hands-on Exercises
91
Hands-on Exercises
DATA LOADING &QUERYING
• Loading your data
• Querying your data
VISUALIZATION
• Visualizing results in a table
• Visualizing results in a graph
SEARCH
• Embedding a simple search interface
AUTHORING
• Creating a template
• Inserting and updating data
92
Data Loading & Querying
Load data into the store via the data import and export
administration page
1 2
Query the data via the SPARQL endpoint.
E.g.: issue a query for all statements made about Bob
as a subject
3
Visualize results in a table
… or as raw data
93
Visualizing Results in a Table
3
Visualize results in a table displaying thumbnails as images, the labels of the
resources as captions, and links to the individual
resource pages
1
Embed ‘semantic-table’ component
<semantic-table config='{"query":"SELECT * WHERE {
<http://example.org/bob#me> ?predicate ?object }“
}'></semantic-table>
to visualize previous query as a table in a page
2
Customize the query to embed thumbnail images in the result visualization
SELECT ?uri ?label ?thumbnail WHERE { ?uri rdfs:label ?label; <http://schema.org/thumbnail > ?thumbnail }
Use tupleTemplate to define a template for
displaying the new table
94
Visualizing Results in a Graph
1
Embed ‘semantic-graph’ component
<semantic-graph
query="CONSTRUCT WHERE { ?s ?p ?o }">
</semantic-graph>
2
Visualize results in a graph
95
Embedding a Simple Search Interface
Embed ‘semantic-simple-search’ into the page
<semantic-simple-search config='{
"query":"SELECT ?uri ?label
WHERE {FILTER REGEX(?label,
\"?token\", \"i\")?uri rdfs:label
?label} LIMIT 10
",
"searchTermVariable":"token","resourceSelection":{
"resourceBindingName":"uri","template":"<span
style=\"color: blue;\" title=\"{{uri.value}}\">{{label.value}}</span>"
},
"inputPlaceholder":"Search for something e.g. \"Bob\""
}'></semantic-simple-search>
1
Rendered component is displayed and can be used
right away
2
Autosuggestions are dynamically computed
based on query and user input
3
96
Creating a Template
1
Use the templating mechanism to create a template for the resource
type ‘Person’, to display:
• the person's name• an image, if available• his interests• his friendship relationship
2
Visualize the result on Bob’s instance page
97
Inserting and Updating Data
1
Use a SPARQL UPDATE operation against the SPARQL endpoint to
create and add new instance data
• the person's name• an image, if available• his interests• his friendship relationship
2
Visualize the result
98
• Knowledge graphs as a flexible model for data integration and knowledge representation
• Standards for “semantic” knowledge graphs
• RDF as graph-based data model
• OWL as expressive ontology language
• SKOS for taxonomic knowledge
• SPARQL as query language
• Application areas
• Open knowledge graphs, e.g. Wikidata
• Cultural Heritage
• Life Sciences
• And many more
• Get started with the metaphactory Knowledge Graph platform today!
Summary
99
• Some slides build on the Euclid training material
• Thanks to the team at metaphacts
• Thanks to the ESWC organizers
Acknowledgements and Thanks
http://www.euclid-project.eu
100
metaphacts GmbHDaimlerstraße 36
69190 Walldorf
Germany
p +49 6227 6989965
m +49 157 50152441
e info@metaphacts.com
@metaphacts
www.metaphacts.com
Get in Touch!