Knowledge-Based Systems, TU Dresden
Knowledge-Based Systems, TU Dresden
  • Видео 35
  • Просмотров 88 556
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t
► 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
Просмотров: 1 982

Видео

Shortest Path Centralities
Просмотров 5133 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjm...
Centrality Measures and their use in Knowledge Graphs
Просмотров 9093 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture sl...
Checking knowledge graph quality
Просмотров 9013 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture slides for download: ...
The Quality of Knowledge Graphs
Просмотров 7013 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture slides for download: iccl.inf.tu-dresden.de/web/...
Further Cypher features
Просмотров 4013 года назад
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
Просмотров 5233 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture ...
Introduction to Cypher
Просмотров 8713 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture slides for download: iccl.inf.tu-dresden.de/web/K...
Property Graphs in OpenCypher
Просмотров 1,1 тыс.3 года назад
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,7 тыс.3 года назад
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: ruclips.net/p/PLar5iR7mhb4dJHDSjmeo6W7HomHBSZf9t ► Lecture slides for download: iccl.inf.t...
Datalog in Practice
Просмотров 3,2 тыс.3 года назад
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
Просмотров 1,9 тыс.3 года назад
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
Просмотров 1583 года назад
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: ruclips.net/video/O67mTVKFkco/видео.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
Просмотров 1303 года назад
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: ruclips.net/video/Lpsw0bn7rN4/видео.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
Просмотров 11 тыс.3 года назад
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
Просмотров 7143 года назад
The Limits of SPARQL
Data Complexity of SPARQL
Просмотров 4153 года назад
Data Complexity of SPARQL
Complexity of SPARQL: PSpace-hardness
Просмотров 5263 года назад
Complexity of SPARQL: PSpace-hardness
The Complexity of Basic Graph Pattern Matching
Просмотров 1 тыс.3 года назад
The Complexity of Basic Graph Pattern Matching
From SPARQL query to algebra
Просмотров 6323 года назад
From SPARQL query to algebra
The SPARQL Algebra
Просмотров 8643 года назад
The SPARQL Algebra
BGB Solutions and Joins in SPARQL
Просмотров 8073 года назад
BGB Solutions and Joins in SPARQL
More SPARQL Features
Просмотров 7053 года назад
More SPARQL Features
SPARQL Selection, Modifiers, and Aggregates
Просмотров 8393 года назад
SPARQL Selection, Modifiers, and Aggregates
SPARQL Property Paths
Просмотров 1,3 тыс.3 года назад
SPARQL Property Paths
Wikidata in RDF
Просмотров 1,4 тыс.3 года назад
Wikidata in RDF
The data model of Wikidata
Просмотров 3,2 тыс.3 года назад
The data model of Wikidata
Wikidata
Просмотров 1,7 тыс.3 года назад
Wikidata
Basic Graph Patterns in SPARQL
Просмотров 2 тыс.3 года назад
Basic Graph Patterns in SPARQL
A Glance at SPARQL
Просмотров 2,6 тыс.3 года назад
A Glance at SPARQL

Комментарии

  • @AlejandroGarcia_elviejo
    @AlejandroGarcia_elviejo 17 дней назад

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

  • @lpanades
    @lpanades 19 дней назад

    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 Месяц назад

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

  • @alibagheribardi5326
    @alibagheribardi5326 3 месяца назад

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

  • @fezkhanna6900
    @fezkhanna6900 4 месяца назад

    absolutely fantastic

  • @kellymoses8566
    @kellymoses8566 6 месяцев назад

    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 6 месяцев назад

    Thanks so much for all these helpful videos man.

  • @bayesianways4114
    @bayesianways4114 9 месяцев назад

    Thanks Professor, very informative lecture

  • @bayesianways4114
    @bayesianways4114 9 месяцев назад

    Thanks for the session

  • @shirishbendre
    @shirishbendre 9 месяцев назад

    ….and no practical example?

    • @edwardmitchell6581
      @edwardmitchell6581 8 месяцев назад

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

    • @AD-ox4ng
      @AD-ox4ng 8 месяцев назад

      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 9 месяцев назад

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

  • @vrjb100
    @vrjb100 10 месяцев назад

    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 10 месяцев назад

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

  • @hans-juergenphilippi1977
    @hans-juergenphilippi1977 10 месяцев назад

    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 10 месяцев назад

    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 10 месяцев назад

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

  • @user-sy6bx9lc3l
    @user-sy6bx9lc3l 11 месяцев назад

    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 6 месяцев назад

      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 RUclips 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 RUclips 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 Год назад

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

  • @a0um
    @a0um Год назад

    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 Год назад

    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 6 месяцев назад

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

  • @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 RUclips to find this gem of a video.

  • @dansplain2393
    @dansplain2393 2 года назад

    👍

  • @dansplain2393
    @dansplain2393 2 года назад

    Just the right level of theory, thank you

  • @jordanwenzelrichter1118
    @jordanwenzelrichter1118 2 года назад

    Bildspur endet 54:53 & die Tonspur setzt aus von 56:15 bis 57:04

  • @olayanjuabraham8352
    @olayanjuabraham8352 3 года назад

    how many days does take to get it approved on Search engine on google