Knowledge-Based Systems, TU Dresden
Knowledge-Based Systems, TU Dresden
  • 35
  • 93 143
Katz Centrality and PageRank
Eigenvector centrality is very elegant, but also has some limitations, as we have seen in the previous video in this series. Now, we will look at two approaches for addressing this: the Katz centrality and the widely known PageRank centrality. It is also interesting to compare the two.
► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html
► Lecture slides for download: iccl.inf.tu-dresden.de/web/KG2020/en (Lecture 13)
► Related problem sheet to test your knowledge: Exercise 12
► Current and previous versions of the lecture: iccl.inf.tu-dresden.de/web/Knowledge_Graphs
มุมมอง: 2 075

วีดีโอ

Shortest Path Centralities
มุมมอง 5353 ปีที่แล้ว
In some applications, it makes sense to restrict attention to the shortest paths that connect any two vertices in a graph. Centrality measures that consider this include closeness centrality and betweenness centrality, which will both be discussed in this video. I conclude with a short summary of all approaches discussed so far. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDS...
Centrality Measures and their use in Knowledge Graphs
มุมมอง 9593 ปีที่แล้ว
How can we rank the nodes in a graph by "importance"? One answer ot this question comes from the field of network analysis, where unlabelled graphs are studied for their structural properties. This video introduces this idea and presents the important and interesting concept of eigenvector centrality. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► Lec...
Checking knowledge graph quality
มุมมอง 9603 ปีที่แล้ว
Once we have decided for ourselves what kind of quality requirements we have towards our knowledge graph, how can we check them in practice? there are some general methods (competency questions, test cases) but also some concrete technologies (SHACL and ShEx) that can help us there. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► Lecture slides for dow...
The Quality of Knowledge Graphs
มุมมอง 7493 ปีที่แล้ว
What makes a "good" knowledge graph, and how can we tell how far we are towards this goal? This is a tricky question, but that does not prevent us from thinking about it. Even if there is no definite answer in the end, at least some insights can be gained. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► Lecture slides for download: iccl.inf.tu-dresden....
Further Cypher features
มุมมอง 4163 ปีที่แล้ว
After covering graph patterns in the previous video, we still have a few other notable Cypher features to mention. Most of them are quite similar to what we also have seen in SPARQL: filters (WHERE), subqueries (WITH), unions,aggregates, and optional matches are of this form. However, there is also an important feature that Cypher offers in addition to SPARQL, namely the ability to query for wh...
Patterns in Cypher
มุมมอง 5463 ปีที่แล้ว
We take a closer look at how "basic" patterns are defined in the Cypher query language. In comparison to SPARQL, this requires a more heavy-weight syntax to accommodate the more complicated data model, but the underlying principles of pattern matching are still fairly similar and not hard to understand. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► L...
Introduction to Cypher
มุมมอง 9173 ปีที่แล้ว
Cypher is the proprietary query language of the Neo4j database management system, and we will use it as one example of a query language for Property Graph databases. In this video, I start to introduce Cypher by showing a number of simple example queries. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► Lecture slides for download: iccl.inf.tu-dresden.d...
Property Graphs in OpenCypher
มุมมอง 1.1K3 ปีที่แล้ว
To get a more concrete idea of the Property Graph data model, we look at OpenCypher as one of the first attempts to specify a common part of this model so that several systems can adopt it. This specification is still far from perfect, and future standards with full technical details are expected, but it still gives us a useful idea of how people are conceiving Property Graph data in technical ...
Introduction to Property Graph
มุมมอง 1.8K3 ปีที่แล้ว
We take a first look at the Property Graph data model and its common implementations in practical systems. As this video is part of the course "Knowledge Graphs" (see playlist below), we also make connections to some of the other technologies we have already learned about. ► Full playlist for this course: th-cam.com/play/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t.html ► Lecture slides for download: icc...
Datalog in Practice
มุมมอง 3.3K3 ปีที่แล้ว
While Datalog is not a standard like SPARQL or RDF, it can still be used for working with knowledge graphs in practice. We compare the features of Datalog (with stratified negation) and SPARQL, give a brief overview of types of modern Datalog implementations, and take a quick look at Rulewerk, the free implementation that we will use in the exercise classes. ► Lecture slides for download: iccl....
Negation in Datalog
มุมมอง 2K3 ปีที่แล้ว
We continue our brief tour of Datalog by looking at negation, arguably one of the most important features in practice when it comes to the use of this language to query knowledge graphs. As we will see, some care is needed, since negation and recursion do not always mix well. ► Lecture slides for download: iccl.inf.tu-dresden.de/web/KG2020/en (Lecture 9) ► Related problem sheet to test your kno...
Rewriting the Description Logic ALCHIQ to Disjunctive Existential Rules: Key ideas
มุมมอง 1623 ปีที่แล้ว
This is a video explains some of the key ideas in the paper "Rewriting the Description Logic ALCHIQ to Disjunctive Existential Rules", published at IJCAI 2020. You may want to watch the 5-min abstract for this work first. Links: ► 5-min abstract: th-cam.com/video/O67mTVKFkco/w-d-xo.html ► Full paper and slides: tud.link/h5l5 ► Citation: David Carral, Markus Krötzsch. Rewriting the Description L...
Rewriting the Description Logic ALCHIQ to Disjunctive Existential Rules: Abstract
มุมมอง 1323 ปีที่แล้ว
This is a video abstract to the paper "Rewriting the Description Logic ALCHIQ to Disjunctive Existential Rules", published at IJCAI 2020. Further details: ► 17min video with more details on this work: th-cam.com/video/Lpsw0bn7rN4/w-d-xo.html ► Full paper and slides: tud.link/h5l5 ► Citation: David Carral, Markus Krötzsch. Rewriting the Description Logic ALCHIQ to Disjunctive Existential Rules. ...
Introduction to Datalog
มุมมอง 12K3 ปีที่แล้ว
Datalog is arguably the simplest rule language one can imagine, yet it can express many query conditions that are not expressible in SPARQL. We take a quick look at Datalog based on examples and introduce some of the main terminology used in this area. Our main goal is to understand enough Datalog to further train it in the exercise classes. Those who wish to get a more slow-paced introduction ...
The Limits of SPARQL
มุมมอง 7403 ปีที่แล้ว
The Limits of SPARQL
Data Complexity of SPARQL
มุมมอง 4313 ปีที่แล้ว
Data Complexity of SPARQL
Complexity of SPARQL: PSpace-hardness
มุมมอง 5403 ปีที่แล้ว
Complexity of SPARQL: PSpace-hardness
The Complexity of Basic Graph Pattern Matching
มุมมอง 1.1K3 ปีที่แล้ว
The Complexity of Basic Graph Pattern Matching
From SPARQL query to algebra
มุมมอง 6603 ปีที่แล้ว
From SPARQL query to algebra
The SPARQL Algebra
มุมมอง 8833 ปีที่แล้ว
The SPARQL Algebra
BGB Solutions and Joins in SPARQL
มุมมอง 8213 ปีที่แล้ว
BGB Solutions and Joins in SPARQL
More SPARQL Features
มุมมอง 7193 ปีที่แล้ว
More SPARQL Features
SPARQL Selection, Modifiers, and Aggregates
มุมมอง 8563 ปีที่แล้ว
SPARQL Selection, Modifiers, and Aggregates
SPARQL Property Paths
มุมมอง 1.3K3 ปีที่แล้ว
SPARQL Property Paths
Wikidata in RDF
มุมมอง 1.5K3 ปีที่แล้ว
Wikidata in RDF
The data model of Wikidata
มุมมอง 3.3K3 ปีที่แล้ว
The data model of Wikidata
Wikidata
มุมมอง 1.8K3 ปีที่แล้ว
Wikidata
Basic Graph Patterns in SPARQL
มุมมอง 2K3 ปีที่แล้ว
Basic Graph Patterns in SPARQL
A Glance at SPARQL
มุมมอง 2.8K3 ปีที่แล้ว
A Glance at SPARQL

ความคิดเห็น

  • @haonanqiu4251
    @haonanqiu4251 หลายเดือนก่อน

    thank you!

  • @sassydesi7913
    @sassydesi7913 หลายเดือนก่อน

    Great lecture

  • @AlejandroGarcia_elviejo
    @AlejandroGarcia_elviejo 3 หลายเดือนก่อน

    4 years later... Thank you for this series it has helped me understand many questions I had about RDF...

  • @lpanades
    @lpanades 3 หลายเดือนก่อน

    In the example of Coffee the verb part "born in" could have multiples answers. I ask if would be a better expression for restrict the answer (concept). I saw an example about using Neo4j that the matter was basket ball players and an interesting example: "A PLAYER" "played for" "A team". and the "played for" had an attribute of "contract value" and this attributes lives on the link and not on the node. I had never saw that and would like when it is a case of putting attributes on links and when put on nodes. Does exist some king of normalization?

  • @thegeniusfool
    @thegeniusfool 4 หลายเดือนก่อน

    As soon as a language is intriguing, the folks get German or French accents.

  • @alibagheribardi5326
    @alibagheribardi5326 6 หลายเดือนก่อน

    "One of the most efficient ones that I have ever encountered."

  • @fezkhanna6900
    @fezkhanna6900 7 หลายเดือนก่อน

    absolutely fantastic

  • @kellymoses8566
    @kellymoses8566 9 หลายเดือนก่อน

    I'm using Neo4j to model computer networks (routers, switches, servers, etc) and the ability to get the full path is incredibly useful.

  • @emc3000
    @emc3000 9 หลายเดือนก่อน

    Thanks so much for all these helpful videos man.

  • @bayesianways4114
    @bayesianways4114 11 หลายเดือนก่อน

    Thanks Professor, very informative lecture

  • @bayesianways4114
    @bayesianways4114 11 หลายเดือนก่อน

    Thanks for the session

  • @shirishbendre
    @shirishbendre 11 หลายเดือนก่อน

    ….and no practical example?

    • @edwardmitchell6581
      @edwardmitchell6581 11 หลายเดือนก่อน

      This is what I was looking for. Are they even worth learning?

    • @AD-ox4ng
      @AD-ox4ng 10 หลายเดือนก่อน

      The practical examples come later in the course. Neo4j is one type of graph database discussed further on to study its implementation of knowledge graphs.

  • @hans-juergenphilippi1977
    @hans-juergenphilippi1977 ปีที่แล้ว

    Entertaining, profound, and helpful. I'm a Markus Krötzsch fan boy by now. :-)

  • @vrjb100
    @vrjb100 ปีที่แล้ว

    Creating IRIs, are point 4 and 5 contradictory? Don't use http(s) unless there is a real webpage on the url. Otherwise use none as the scheme? Or skip the iri grap and simply use the package name thing from Java. At the top level there could be one namespace, so labels are short and human readable.

  • @hans-juergenphilippi1977
    @hans-juergenphilippi1977 ปีที่แล้ว

    "Doubles are a different kind of beast..." 😀 Hahaha, yes, confirmed!

  • @hans-juergenphilippi1977
    @hans-juergenphilippi1977 ปีที่แล้ว

    Regarding the language of literals: is there a way to declare some kind of default language for a RDF graph? That is, instead of denoting "Hello"@en with each one you could just use "Hello" and it is implicitly assumed to be English?

  • @hans-juergenphilippi1977
    @hans-juergenphilippi1977 ปีที่แล้ว

    Especially like the coffee filter example graph! 🙂 And for the first time ever, I saw the *real* purpose of # anchor chars in IRIs explained. Even the RDF(S) specifications simply use them without explaining this background. Great!

  • @dogaarmangil
    @dogaarmangil ปีที่แล้ว

    9:27 It's worth noting that with RDF-star and SPARQL-star, Wikidata's misalignment with RDF has been resolved.

  • @ศิวศิษย์แสงนิกุล

    Thanks!!! Some basic i dont know about it but I... try to learn that to learn this!!!

  • @ben_jammin242
    @ben_jammin242 ปีที่แล้ว

    I think pseudo code would have been better. This custom syntax is more mathematical, coming from a programmer.

  • @moellerseo
    @moellerseo ปีที่แล้ว

    Wonderful!

  • @andrewcbuensalida
    @andrewcbuensalida ปีที่แล้ว

    It would be better if you showed examples of each

  • @andrewcbuensalida
    @andrewcbuensalida ปีที่แล้ว

    You should have done a side-by-side comparison of sparql and cypher for the whole video, not just the first example.

  • @andrewcbuensalida
    @andrewcbuensalida ปีที่แล้ว

    anyone else having a hard time keeping their eyes open while watching?

    • @kellymoses8566
      @kellymoses8566 9 หลายเดือนก่อน

      It is dry material but I found the 3 views of property graphs to be very interesting.

  • @andrewcbuensalida
    @andrewcbuensalida ปีที่แล้ว

    It would be more clear if you gave examples

  • @andrewcbuensalida
    @andrewcbuensalida ปีที่แล้ว

    whoever invented this made it too confusing

  • @chuanqisun
    @chuanqisun ปีที่แล้ว

    That's one heck of an opening for the lecture. Love it!

  • @chuanqisun
    @chuanqisun ปีที่แล้ว

    Thanks for uploading this series. The TH-cam subtitle shows that the source language was Germen, so to get English subtitle, it translates from German into English with a lot of errors. Is there a way to tell TH-cam that this lecture is actually in English?

  • @kutihijacker
    @kutihijacker ปีที่แล้ว

    Many thanks for your great and interesting lecture!

  • @abogdanov
    @abogdanov ปีที่แล้ว

    One of the best lectures I've ever heard online!

  • @bartkl
    @bartkl ปีที่แล้ว

    Thanks a lot. Great material.

  • @a0um
    @a0um 2 ปีที่แล้ว

    Very good coverage but I can't help to think this could have been presented in 30 minutes or less.

  • @a0um
    @a0um 2 ปีที่แล้ว

    As a software developer with some experience in functional programming, I would have found intuitively acceptable that shortly before 48:30 the "table with one row and no columns" was represented as a set containing an empty tuple: {()}

  • @a0um
    @a0um 2 ปีที่แล้ว

    I love the topic and the presentation seems thorough. However, as someone with background in programming, it feels a bit long winded, and I think that introducing the RDF prefixes earlier would have made the slides easier to read.

  • @jonaskoelker
    @jonaskoelker 2 ปีที่แล้ว

    At 43:16 it is asserted that answering datalog queries is P-complete, yet there are queries in P that cannot be answered. Instead of P-complete, should the slides say P-hard? That is, every problem in P can be reduced to a datalog query, but not every datalog query can be reduced to a problem in P? Also, I'm guessing here-is the interpretation of "P-hard in data complexity" the following: "for every decision problem p1 in P there exists a datalog query plus ruleset (q, r1, ..., rn) and a log-space turing machine T which outputs datalog facts (not rules or queries) such that for every instance x of p1 it is true that rundatalog(q, r1, ..., rn, output of T(x)) returns a non-empty result set if and only if x is a yes-instance of p1"? I guess for exptime completeness the turing machine T' outputs a mix of facts, rules and a query and you rundatalog(T(x)), i.e. the query and rules can be a function not just of the problem type (e.g. 3-SAT vs. 3-colorability) but also a function of the particular instance.

    • @knowledge-basedsystemstudr9413
      @knowledge-basedsystemstudr9413 2 ปีที่แล้ว

      Right, so let me answer to the second two paragraphs first. Your idea of what P-hard for data complexity (and Exp-hard for combined complexity) means seem to be correct. The actual rules that are used to put this into practice mimic the computation of a Turing machine in Datalog. For the most part, this is not too hard (we often describe Turing machine computations using rule-like statements anyway, as in "if the machine is in state q and sees symbol a, then it changes to state p, writes a b, and moves to the left"). To make this work in Datalog, the main idea is that the relational structure (database) that gets computed should look like a "trace" of the TM run: the tape (memory) will be a chain-like structure where every element is a cell, and we will have a new tape for every moment in time (so every time point, from start to end, is in the model). The challenge is to come up with a good encoding for things like "cell 23 at time step 42". If the computation is not too long (polynomial), we can simply assume that the relevant coordinates (like "23" and "42") are given to us with the input and we merely create pairs of them during the computation. That's the idea for the P-hardness proof. If we want to show Exp-hardness, we need to create a lot more "cells" in some way. The idea for doing this is to use facts with long lists of parameters (e.g., if I have 10 parameters in a predicate and 2 constants, I can already represent 2^10 facts). Indeed, the number of facts one can get is exponential, but the exponent is given by the arity of predicates. For Exp-hardness, the input should determine the exponent, so the arity of predicates must grow if we want to process larger input instances. This is why this is no longer "data complexity". Other than this complication (which turns "addresses" of cells into lists of constants), the rules that describe the actual Turing machine behaviour are basically the same as in the PTime case. If you want a more formal explanation, the complete Datalog programs needed for these encodings can be found in a 2001 survey paper "Complexity and Expressive Power of Logic Programming" by Evgeny Dantsin and colleagues. It should be easy to find and free to access online. Now to the first question. It is really true and there is no error in the video here. Datalog is P-complete for data complexity, yet there are problems over databases that can be decided in PTime but not with a Datalog program. A simple example of the latter would be: "Find out if the database does not contain the fact q(a)". There is nothing contradictory in this situation. P-hardness (for data complexity) just means that we could find a "cheap" reduction from any problem in P to Datalog query answering (with a fixed rule set). The ability (or, as it is here, non-ability) to express all problems in a complexity class directly (without any reduction) is known as the *descriptive complexity* of a database query language. If we can express all problems in P with a query language, then we say that the language *captures P*. As for Datalog, it does not capture P, but what it captures is still difficult enough to be P-hard. If we want to capture P, we can do that by adding some more features: input negation and successor ordering. I have some more details on these in my course on database theory (iccl.inf.tu-dresden.de/web/Database_Theory_(SS2022)/en Lecture "Datalog Complexity"). A more detailed explanation of what "expressing" a query in a query language is given in our work "Capturing Homomorphism-Closed Decidable Queries with Existential Rules" (Camille Bourgeaux et al. , it's about a different query language, but the introduction to expressivity applies to Datalog just the same).

    • @jonaskoelker
      @jonaskoelker 2 ปีที่แล้ว

      @@knowledge-basedsystemstudr9413 > If the computation is not too long (polynomial), [...] Right, I think I understand. I think we could do the same in a less direct way: the Cook-Levin theorem (3-SAT is NP-Complete) builds a boolean circuit bounded in space and time which simulates a polynomial-time Turing machine. Instead of asking "is there an input such that <blah>" we're asking "is <blah> for this particular input", since we're working with deterministic p-time TMs. I think I can figure out how to convert logic gates to Datalog. We could also reduce directly from the circuit value problem (which is P-complete). I guess the datalog is something like: canOutput(GATE, true) :- hasType(GATE, and), hasInput(GATE, X), hasInput(GATE, Y), canOutput(X, true), canOutput(Y, true). canOutput(GATE, true) :- hasType(GATE, or), hasInput(GATE, X), canOutput(X, true). canOutput(GATE, false) :- hasType(GATE, and), hasInput(GATE, X), canOutput(X, false). canOutput(GATE, false) :- hasType(GATE, or), hasInput(GATE, X), hasInput(GATE, Y), canOutput(X, false), canOutput(Y, false). [canOutput if hasType(_, not) is left as an exercise.] ... and then the reduction on "true and not true" produces: canOutput(gensym1, true). canOutput(gensym2, true). hasType(gensym3, not). hasInput(gensym3, gensym2). hasType(gensym4, and). hasInput(gensym4, gensym1). hasInput(gensym4, gensym3). ... and this database can be computed in log space by walking over the input string repeatedly. Maybe I need to insist that the circuit is presented in a way that's easy (enough) to parse. Since no input value canOutput both true and false, it follows that no gate can output both true and false, and thus by induction canOutput(the circuit's output gate, true) is in the database iff the circuit value is true, so that shall be the query. [The "fixpoint of (database <- database union stuff-we-can-derive-in-one-step)" then is the wavefront of evaluated gates, terminating once all gates have been evaluated.] Also, upon thinking about it I now understand my initial confusion: emptiness of the answer set (the criterion used in reductions) is not the same as an arbitrary predicate about the database being true. [Of course if you can evaluate the predicate in polynomial time there exists a family of derived datalog programs with non-empty query responses exactly for those instances where the predicate is true, by the above reduction. But that's a very different statement.] Thanks for taking the time to write a thorough answer. [I bookmark this if I want to chase down the exptime-completeness proof.]

    • @kellymoses8566
      @kellymoses8566 9 หลายเดือนก่อน

      @@knowledge-basedsystemstudr9413 This might be the smartest comment on TH-cam.

  • @tiagolubiana3898
    @tiagolubiana3898 2 ปีที่แล้ว

    Amazing video! Thank you so much for this series.

  • @Xean0hrt
    @Xean0hrt 2 ปีที่แล้ว

    Geile Vorlesung Prof!

  • @nilofarmoradifarisar3171
    @nilofarmoradifarisar3171 2 ปีที่แล้ว

    Great course! Thank you so much, Prof. Markus Krotzsch.

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    00:00: Introduction & Recap 2:01: Negation 5:32: Semantics of negation (1) 9:08: Semantics of negation (2) 15:04: Semantics of negation (3) 20:33 Stratified negation 25:11: Evalutating Stratified rules 30:11: The perfect model 34:24: Obtaining a stratification 38:22: Outlook: Beyond stratified negation

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    00:00: Introduction & Recap 1:41: Datalog vs. SPARQL: Supported features 7:15: Datalog vs. SPARQL: Missing features 11:44: Many implementation of Datalog exist: 16:04: Rules in Rulewerk 21:17: RDF and SPARQL in Datalog 24:44: Conclusion

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    00:00: Introduction 2:06: A rule-based query language 7:45: Datalog Syntax 15:55: Datalog Semantics (1) 20:50: Datalog Semantics (2) 22:54: Datalog Semantics (3) 33:04: Using Datalog on RDF 37:53: Queries beyond SPARQL 41:37: Datalog Complexity

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    00:00: Recap 1:20: More fine-grained complexity measures 2:33: Blow P 6:30: Data Complexity of SPARQL (1) 8:50: Data Complexity of SPARQL (2) 11:31: Upper bounds 14:39: Answering queries in PSpace 19:47: Answering queries in NL for data 21:43: Conclusion

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    00:00: Recap 2:40: Beyond NP 8:35: Quantified Boolean Forlumae 15:23: Hardness of QBF Evaluation 17:25: Universal quantifiers in SPARQL 22:31: SPARQL is PSpace-hard 28:47: SPARQL is PSpace-hard (2) 32:21: is SPARQL practical? 35:48 : More fine-grained complexity measures

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    thanks a lot!

  • @junayedahamed6867
    @junayedahamed6867 2 ปีที่แล้ว

    please help me with wikidata listing

  • @haonanqiu4251
    @haonanqiu4251 2 ปีที่แล้ว

    I am so excited to watch this!!

  • @fezkhanna6900
    @fezkhanna6900 2 ปีที่แล้ว

    Really enjoyed this, thank you.

  • @nadahalli
    @nadahalli 2 ปีที่แล้ว

    This is the best explainer for what is stratified datalog, why is stratification even needed, and how to use them, and how to find them in the first place. Google's regular search shows completely useless results for this. I had to come to TH-cam to find this gem of a video.

  • @dansplain2393
    @dansplain2393 2 ปีที่แล้ว

    👍

  • @dansplain2393
    @dansplain2393 2 ปีที่แล้ว

    Just the right level of theory, thank you