Download presentation
Presentation is loading. Please wait.
Published byLorin Stevenson Modified over 9 years ago
1
Initial ideas on Distributed Reasoning
2
Expressivity The subset of RDF/OWL and that has rule- based inference – OWL –RL In general, datalog Example: – rdfs:domain, range, subClassof, subPropertyof – Inverseof, transitive property, symmetic property, – …
3
RDF/OWL -> Datalog Subproperty Subclass Class instance Property instance Redirection P(x,y) :- Q(x,y). C(x) :- D(x). C(a). P(a,b). a=b.
4
RDF/OWL -> Datalog Domain Range Transitive P Symmetric P Functional P InverseFunctional P Inverse of C(x) :- P(x,y) C(y) :- P(x,y) P(x,y) :- P(x,z), P(z,y) P(x,y) :- P(y,x) SameAs(x,y) :- P(z,x),P(z,y) SameAs(x,y) :- P(x,z),P(y,z) Q(x,y) :- P(y,x)
5
RDF/OWL -> Datalog Conjunction Disjunction Property Chain Negation Has Value Cardinality C(x) :- A(x), B(x). C(x) :- A(x). C(x):- B(x). R (x,y):- P(x,z), Q(z,y). C(x):- not D(x). C(x): - #count{x, P(x,y)}<=0. C(x) :- P(x,a). C(x) : #count{x, P(x,y)}>=3. This is also query language
6
Remote Join Free Assumption: data are distributed; rule set is relatively small, every node has the full rule set – Data can be duplicated in GIDS manner If there is no join, the result set can be a simple union – Domain, range, subC, subP, inverseOf, symmetric, disjunction, has value Each node compute a local answer, the whole answer set is their union
7
MapReduce void map(String name, String document): // name: document name // document: document contents for each word w in document: EmitIntermediate(w, "1"); void reduce(String word, Iterator partialCounts): // word: a word // partialCounts: a list of aggregated partial counts int result = 0; for each pc in partialCounts: result += ParseInt(pc); Emit(AsString(result)); Negation and cardinality queries can be distributed by MapReduce (counting) Also see: http://ayende.com/Blog/archive/2010/03/14/map-reduce-ndash-a-visual-explanation.aspx
8
Remote Join E.g. C(x) :- D(x), E(x) – Node 1: { D(a) } – Node 2: { E(a) } One solution: in query answering, do dependency check, and copy partial result to one place E.,g. C1(x) : - D(X) C2(x) :-E(X) – Copy instances of C1 and C2 to one node – On that node, add rule C(x) :-C1(x), C2(x) Optimization: hashing or indexing?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.