Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Explicit Semantics in Graph DBs
Driving Digital Transformation With Neo4j
Dr. Jesús Barrasa - Senior Consultant
Me: Jesús Barrasa
:Researcher
{
topic: Semantic Tech
PhD Thesis : Mapping
RDBMS-RDF
}
:HOLDS_POSITION
{
from: 2002
to: 200...
My talk today
What do they mean when they call it semantics?
Semantics in Graph DBs. Is this a thing?
Explicit semantics i...
Quick show of hands: What do you
mean when you say semantics?
Fragment Syntax Semantic?
:JohnSmith :livesIn :London
:Londo...
Misconception… that some
cheeky RDF vendors keep alive.
Two facts:
John Smith lives in London and London is a city
in Engl...
A little detail is missing…
If someone lives in a city and that city is in a country, then
we can derive that this someone...
more “magic”...
Now with a reasoning engine that understands RDFS
semantics we can ask: What locations do we know?
:cityIn...
back to the origins: The Semantic Web
(1) https://www.w3.org/DesignIssues/RDFnot.html
TBL in 1998: The Semantic Web is not...
:JohnSmith :livesIn :London
:London :cityIn :England
…
:JohnSmith :livesIn :London
:London :cityIn :England
…
An example w...
So a semantic DB is…
• A graph database (often based on the RDF model,
but…)
• Some explicit description of the data in th...
Two consequences:
No, but don’t worry. It’s a GRAPH!
1. Is my DB still semantic if I just use RDF
but don’t make my semant...
After all… RDF Triple store (!)
• Graph based data/knowledge/… exchange model
• Using RDF as an exchange format does not n...
So…Linked data, semantic data,
graph data…
Graph Data
LPG Data RDF Data
Explicit Semantics
:abc :custId :def({id:’abc’})-[...
Build a Semantic Graph DB in 5’
• Learn an Ontology from a data set (3’)
• Formalize the ontology -> make semantics explic...
The dataset
• 230K+ article summaries from the Financial Times
Demo...
articleDate articleTitle articleUrl keywords descri...
More on explicit semantics in
Non-RDF graph DBs
https://jesusbarrasa.wordpress.com
THANK YOU!
Upcoming SlideShare
Loading in …5
×

Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j

922 views

Published on

Dr. Jesús Barrasa's slides from his talk at Connected Data London. Jesús, who is a senior field engineer at Neo4j presented how semantic web principles can be used in a graph database.

Published in: Technology

Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j

  1. 1. Explicit Semantics in Graph DBs Driving Digital Transformation With Neo4j Dr. Jesús Barrasa - Senior Consultant
  2. 2. Me: Jesús Barrasa :Researcher { topic: Semantic Tech PhD Thesis : Mapping RDBMS-RDF } :HOLDS_POSITION { from: 2002 to: 2007 } :HOLDS_POSITION { from: 2007 to: 2014 } :Graph+SemanticsSpecialist { sector: Telecoms useCases: [dependency modelling, impact analysis, root cause,…] } pecialist cy modelling, cause,…] :HOLDS_POSITION { from: 2015 to: … } :GraphConsultant { vendor:Neo4j useCases: [fraud detection, recommendation,MDM…] } ction, M…] :Person { name: J. Barrasa twitter: @BarrasaDV mail: jesus@neo4j.com }
  3. 3. My talk today What do they mean when they call it semantics? Semantics in Graph DBs. Is this a thing? Explicit semantics in Neo4j: A 5 min experiment And now what?
  4. 4. Quick show of hands: What do you mean when you say semantics? Fragment Syntax Semantic? :JohnSmith :livesIn :London :London :cityIn :England RDF/Turtle Y/N { uri: “JohnSmith”, livesIn: { uri:“London”, cityIn: { uri:”England”}}} JSON Y/N (j:Resource { uri:’JohnSmith’})-[:livesIn]->(l:Resource { uri:’London’}) (l)-[:cityIn]->(e:Resource { uri:’England’}) Cypher Y/N <rdf:RDF> <rdf:Description rdf:about=“Cljkfkojhg”> <fjoijlgkih rdf:resource=“lksdfjslkjghhhlkjsfd”/> </rdf:Description> </rdf:RDF> RDF/XML Y/N {"@graph": [{ "@id": "http://places.com/London", "v:cityIn": { "@id": “http://places.com/England" } },{ "@id": "v:cityIn", "rdfs:domain": { "@id": “v:Location"}, "rdfs:range": { "@id": "v:Location"} }]} RDFS (RDF/ JSON-LD) Y/N | who | livesIn | | what | cityIn | |JohnSmith | London | | London | England | CSV Y/N
  5. 5. Misconception… that some cheeky RDF vendors keep alive. Two facts: John Smith lives in London and London is a city in England. And magic will happen… Two triples: :JohnSmith :livesIn :London :London :cityIn :England One Question: Who lives in England? The Query: SELECT ?who WHERE { ?who :LivesIn :England } huh? what’s going on ?!?
  6. 6. A little detail is missing… If someone lives in a city and that city is in a country, then we can derive that this someone lives in that country. But someone has to EXPLICITLY state this for an “intelligent semantic DB” to apply it to the data ?x :livesIn ?city ^ ?city :cityIn ?ctry => ?x :LivesIn ?ctry Making the semantics of your data explicit is what operates the ‘magic’ Now we can try again: Who lives in England? ANSWER: JohnSmith
  7. 7. more “magic”... Now with a reasoning engine that understands RDFS semantics we can ask: What locations do we know? :cityIn rdfs:domain :Location :cityIn rdfs:range :Location :cityIn is a relationship stated between two locations ANSWER: London and England I’m a purist (and have a PhD in description logics) so I’m not writing rules, I use a set of primitives with well defined meaning like InverseFunctional, Domain, Disjoint, Range and a generic rules engine will apply them for me on my data.
  8. 8. back to the origins: The Semantic Web (1) https://www.w3.org/DesignIssues/RDFnot.html TBL in 1998: The Semantic Web is not AI […] it does not imply some magical artificial intelligence which allows machines to comprehend human mumblings. It only indicates a machine's ability to solve a well-defined problem by performing well-defined operations on existing well-defined data. Instead of asking machines to understand people's language, it involves asking people to make the extra effort. (1)
  9. 9. :JohnSmith :livesIn :London :London :cityIn :England … :JohnSmith :livesIn :London :London :cityIn :England … An example with (a bit of) code :JohnSmith :livesIn :London :London :cityIn :England … Implicit Semantics Application SELECt ?loc WHERE { ?loc a :Location} SELECt ?loc WHERE { ?loc a :Location} Application Explicit SemanticsSELECt ?loc WHERE { } Application { ?loc a :Location } union { [] :livesIn ?loc } union { ?loc :cityIn [] } union { [] :cityIn ?loc } ?x :livesIn ?place => ?place a :Location OWL/RDFS Ontology :cityIn rdfs:domain :Location :cityIn rdfs:range :Location OWL/RDFS Reasoner ?prop refs:domain ?class ^ ?res ?prop [] => ?res a ?class(FC/BC/H) Rules Engine
  10. 10. So a semantic DB is… • A graph database (often based on the RDF model, but…) • Some explicit description of the data in the graph (typically RDFS/OWL or rule based) • An (often rules based) domain-independent processor that applies the explicit semantics
  11. 11. Two consequences: No, but don’t worry. It’s a GRAPH! 1. Is my DB still semantic if I just use RDF but don’t make my semantics explicit? 2. RDF is not the only way to build a semantic DB? You got it!
  12. 12. After all… RDF Triple store (!) • Graph based data/knowledge/… exchange model • Using RDF as an exchange format does not necessarily imply using tiple storage: Think of Linked Data • Neo4j for instance can expose graph data as RDF as do other stores or middleware (DV, D2R). Indeed, one of the main driving forces for the Semantic web, has always been the expression, on the Web, of the vast amount of relational database information in a way that can be processed by machines (1). (1) https://www.w3.org/DesignIssues/RDB-RDF.html RDF is a standard model for data interchange on the Web. https://www.w3.org/TR/2004/REC-rdf-primer-20040210/ RDF is a directed, labeled graph data format for representing information in the Web. https://www.w3.org/TR/rdf-sparql-query/
  13. 13. So…Linked data, semantic data, graph data… Graph Data LPG Data RDF Data Explicit Semantics :abc :custId :def({id:’abc’})-[:custId]->(id:’def’) :custId a owl:InverseFunctionalProperty :custId rdfs:domain :Customer :Customer rdfs:subClassOf :Person ({id: ‘custId’})-[:domain]->({id: ‘Customer’}) ({id: ‘Customer’})-[:subClassOf]->({id: ‘Person’}) :abc :def :custId :abc :def :custId
  14. 14. Build a Semantic Graph DB in 5’ • Learn an Ontology from a data set (3’) • Formalize the ontology -> make semantics explicit (1’) • Use these semantics to drive your ‘intelligent’ application (1’)
  15. 15. The dataset • 230K+ article summaries from the Financial Times Demo... articleDate articleTitle articleUrl keywords description storySummary 2012-12-17 “Vintage performance” http://… "EU integration, economies, natural resources, energy policy, industry, entrepreneurs, investment, restaurants, filmmaking, central and eastern Europe” 2013-01-09 "Google and the US economy” "On a warm autumn afternoon in Tokaj, Laszlo Kalocsai waits patiently for his grapes to turn mouldy. On the edge of the Carpathian mountains, the best wines are only possible once the fog-borne fungus Botrytis cinerea has risen from the wetlands" "Thanks to investment and a focus on quality eastern European wines are now much in demand” http://… “Lex” ”A nice easy question: is the US economy growing or shrinking? The majority view, to simplify slightly, is that increasing employment and rising house prices must amount to an expansion. Dissident pessimists have a more complicated story. The current" "Bullish investors should look at world’s biggest internet search group"
  16. 16. More on explicit semantics in Non-RDF graph DBs https://jesusbarrasa.wordpress.com
  17. 17. THANK YOU!

×