Shortest Path Centralities
25:14
3 жыл бұрын
Checking knowledge graph quality
46:09
The Quality of Knowledge Graphs
36:15
Further Cypher features
41:31
3 жыл бұрын
Patterns in Cypher
49:02
3 жыл бұрын
Introduction to Cypher
20:16
3 жыл бұрын
Property Graphs in OpenCypher
43:36
3 жыл бұрын
Introduction to Property Graph
37:34
3 жыл бұрын
Datalog in Practice
25:55
3 жыл бұрын
Negation in Datalog
42:58
3 жыл бұрын
Introduction to Datalog
45:30
3 жыл бұрын
The Limits of SPARQL
48:19
3 жыл бұрын
Data Complexity of SPARQL
23:30
3 жыл бұрын
Complexity of SPARQL: PSpace-hardness
40:39
From SPARQL query to algebra
18:52
3 жыл бұрын
The SPARQL Algebra
38:27
3 жыл бұрын
BGB Solutions and Joins in SPARQL
43:08
More SPARQL Features
57:42
3 жыл бұрын
SPARQL Property Paths
41:46
3 жыл бұрын
Wikidata in RDF
43:44
3 жыл бұрын
The data model of Wikidata
41:22
3 жыл бұрын
Wikidata
1:15:19
3 жыл бұрын
Basic Graph Patterns in SPARQL
50:26
3 жыл бұрын
A Glance at SPARQL
27:13
3 жыл бұрын
Пікірлер
@mikhailov2286
@mikhailov2286 18 күн бұрын
Davis Sharon Martin Elizabeth Wilson Mark
@haonanqiu4251
@haonanqiu4251 21 күн бұрын
thank you!
@sassydesi7913
@sassydesi7913 22 күн бұрын
Great lecture
@DaisyHayes-n2k
@DaisyHayes-n2k 27 күн бұрын
Jackson Scott Jackson Brian Martinez Kimberly
@NelsonBarney-s1x
@NelsonBarney-s1x 28 күн бұрын
Moore Donna Walker Carol Walker Scott
@HawthorneMegan
@HawthorneMegan 29 күн бұрын
Brown Frank Walker Charles Robinson Scott
@AlejandroGarcia_elviejo
@AlejandroGarcia_elviejo 2 ай бұрын
4 years later... Thank you for this series it has helped me understand many questions I had about RDF...
@lpanades
@lpanades 2 ай бұрын
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 3 ай бұрын
As soon as a language is intriguing, the folks get German or French accents.
@alibagheribardi5326
@alibagheribardi5326 5 ай бұрын
"One of the most efficient ones that I have ever encountered."
@fezkhanna6900
@fezkhanna6900 6 ай бұрын
absolutely fantastic
@kellymoses8566
@kellymoses8566 8 ай бұрын
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 8 ай бұрын
Thanks so much for all these helpful videos man.
@bayesianways4114
@bayesianways4114 10 ай бұрын
Thanks Professor, very informative lecture
@bayesianways4114
@bayesianways4114 10 ай бұрын
Thanks for the session
@shirishbendre
@shirishbendre 10 ай бұрын
….and no practical example?
@edwardmitchell6581
@edwardmitchell6581 10 ай бұрын
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 11 ай бұрын
Entertaining, profound, and helpful. I'm a Markus Krötzsch fan boy by now. :-)
@vrjb100
@vrjb100 11 ай бұрын
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 8 ай бұрын
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 KZbin 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 KZbin 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 8 ай бұрын
@@knowledge-basedsystemstudr9413 This might be the smartest comment on KZbin.
@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!!