- From: Thomas Lörtsch <tl@rat.io>
- Date: Tue, 24 Jan 2023 01:19:56 +0100
- To: public-rdf-star-wg@w3.org
Hi,
I collected some use cases for edge annotations by googling for "property graph example", checking some popular books on graph databases and consulting RDF-star implementors' documentations. It wasn’t a very systematic effort but I swear I didn’t pick favorites.
I did put a little effort in formatting, so with a monospaced font it should be fairly readable. When the example has 2 columns and 3 rows then the left column are subject, predicate and object of a statement and the right column are the attributes - you’ll get the idea.
Best,
Thomas
EXAMPLES:
Dave Bechberger, Josh Perryman - Graph Databases in Action, Manning Publications, 2020
Figure 2.18 Adding a role property to the acted_in edge creates a mutiple uniqueness edge to express the fact that Eddie Murphy acted in multiple roles in the movie Nutty Professor.
person Eddie Murphy
acted_in role: Sherman Klump, Buddy Love
movie Nutty Professor
Ian Robinson, Jim Webber, Emil Eifrim - Graph Databases New opportunities for Connected Data, O’Reilly, 2015
Figure 5-16. Timestamp properties on relationships
id:1 Location: Parcel Center
CONNECTED_TO cost: 3, start_date: 13502556000000, end_date: 13508604000000
id:1, name:… Location: Delivery Base
Neo4j Developer, Why Graph Databases?
https://neo4j.com/developer/graph-database/
Person name: Dan, born: May 29 1970, twitter: "@dan"
drives since: Jan 10, 2011
Car brand: "Volvo", model: "V70"
Neo4j Blog, RDF Triple Stores vs. Labeled Property Graphs: What’s the Difference?
https://neo4j.com/blog/rdf-triple-store-vs-labeled-property-graph-difference/
2042819 name: NYC
CONNECTION distanceKm: 4100, costUSD: 300
2042820 name: SFO
Oracle, Graph Developer's Guide for Property Graph, 1.1.1 What Are Property Graphs?
https://docs.oracle.com/en/database/oracle/property-graph/22.2/spgdg/what-are-property-graphs.html
1 name: Alice, age: 31
knows type: friends
2 name: Bob, age: 27
Oxford Semantics, What is a labeled property graph?
https://www.oxfordsemantic.tech/fundamentals/what-is-a-labeled-property-graph
ID: "12345", Label: "Person"
name: "Alice", dateOfBirth: "1975-10-22", height: 1.70
ID "24680", Label: "Married"
date: "2004-09-19"
ID: "67890", Label: "Person"
name: "Bob", dateOfBirth: "1976-01-07", height: 1.75
TerminusDB Community Blog post, Graph Fundamentals — Part 2: Labelled Property Graphs
https://medium.com/terminusdb/graph-fundamentals-part-2-labelled-property-graphs-ba9a8edb5dfe
NODE name: "Andy", title: "Developer"
EDGE rid:"MANAGES", from: 2011-12-12
NODE name: "Bob", title: "Manager"
OpenCredo, Blog post, Making Sense of Data with RDF* vs. LPG
https://opencredo.com/blogs/making-sense-of-data-with-rdf-vs-lpg/
Elon Musk
FOUNDED startDate: "2002-03-14", source: "https://en.wikipedia.org/wiki/SpaceX"
SpaceX
Cambridge Semantics, AnzoGraphDB 2.5, Creating and Querying Labeled Property Graphs (RDF*)
https://docs.cambridgesemantics.com/anzograph/v2.5/userdoc/lpgs.htm?Highlight=Labeled%20Property%20Graphs%20RDF*
@prefix tickit: <http://anzograph.com/tickit/> .
tickit:person3
rdf:type tickit:person ;
tickit:card "4984932249480735"^^xsd:long ;
tickit:birthday "1963-07-02"^^xsd:date ;
[…] .
<< tickit:person3 tickit:like "sports" >> tickit:weight 8 .
<< tickit:person3 tickit:like "rock" >> tickit:weight 9 .
[…]
<< tickit:person3 tickit:friend tickit:person8563 >> tickit:startDate "1990-01-04"^^xsd:date .
<< tickit:person3 tickit:friend tickit:person38436 >> tickit:startDate "2000-04-27"^^xsd:date .
<< tickit:person3 tickit:friend tickit:person11979 >> tickit:startDate "2004-11-09"^^xsd:date .
<< tickit:person3 tickit:friend tickit:person11979 >> tickit:endDate "2012-07-17"^^xsd:date .
tickit:person3 tickit:friend tickit:person8639,
[…]
tickit:person11979,
[…]
tickit:person38436
[…] .
[In this example something went wrong with asserting quoted triples:
person11979 should not be listed as friend anymore and
it’s unclear why person8563 isn’t listed.
Maybe a mishap, or mabye the friendship ended but we don’t know the date.]
Renzo Angles, 2018, The Property Graph Database Model
http://ceur-ws.org/Vol-2100/paper26.pdf
Entry title, numpages, keyword
hasAuthor order
Author fname, lname
InProceedings (inherits from Entry)
booktitle pages
Proceedings title, year, month
Article (inherits from Entry)
publishedIn pages
Journal title, year, vol, num
Stardog, Query Stardog/Edge Properties (beta)
https://docs.stardog.com/query-stardog/edge-properties
<< :Pete a :Engineer >> :since 2010 .
<< :Pete :worksAt :Stardog >> :source :HR .
:Pete a { :since 2010 ; until 2018} :Engineer ;
:worksAt { :source :HR } :Stardog
Stardog, Blog, Property Graphs meet Stardog
https://www.stardog.com/blog/property-graphs-meet-stardog/
<< :Alice :worksFor :ACME >> :role :CEO ;
:since 2010 ;
:probability 0.8 ;
:source <http://example.com/news> .
:Alice :worksFor {:role :CEO ;
:since 2010 ;
:probability 0.8 ;
:source <http://example.com/news>} :ACME ;
:birthDate {:probability 0.2} "1972-01-01"^^xsd:date ;
:nationality {:source <http://example.org/Alice>} :USA .
GraphDB 9.2 Documentation, RDF* and SPARQL*
https://graphdb.ontotext.com/documentation/9.2/free/devhub/rdf-sparql-star.html#id1
(the current 10.1 docs use the same examples, just with explicit namespaces)
:man :hasSpouse :woman .
<<:man :hasSpouse :woman>> :startDate "2020-02-11"^^xsd:date .
<<:man :hasSpouse :woman>> ex:certainty 0.9 .
Object relation qualifiers:
<<:man :hasSpouse :woman>> :startDate "2020-02-11"^^xsd:date
Data value qualifiers:
<<:painting :height 32.1>>
:unit :cm;
:measurementTechnique :laserScanning;
:measuredOn "2020-02-11"^^xsd:date.
Statement sources/references:
<<:man :hasSpouse :woman>>
:source :TheNationalEnquirer;
:webpage <http://nationalenquirer.com/news/2020-02-12>;
:retrieved "2020-02-13"^^xsd:dateTime.
Apache Jena, Documentation Support of RDF-star
https://jena.apache.org/documentation/rdf-star/
SELECT ?name { <<:john foaf:name ?name >> dct:source <http://example/directory> }
B.t.w., the page also says:
"Translating back to RDF-star relies on the consistency constraint
that there is only one reification for each unique quoted triple term."
That's another way to illustrate how misguided the type-based approach of RDF-star is.
TopQuadrant, RDF-Star – Why, how and when should you use it?
https://www.topquadrant.com/resources/rdf-star-why-how-and-when-should-you-use-it
example:Irene rdfs:label “Irene” ;
rdf:type example:Person ;
example:worksFor example:TopQuadrant .
<urn:triple:%3Chttp%3A%2F%2Fexample.org%2Freification%23Irene%3E:%3Chttp%3A%2F%2Fexample.org%2Freification%23worksFor%3E:%3Chttp%3A%2F%2Fexample.org%2Freification%23TopQuadrant%3E>
example:startDate “2001-12-01″^^xsd:date .
rdf4j, Doumentation, RDF-Star and SPARQL-Star
https://rdf4j.org/documentation/programming/rdfstar/
<<ex:bob foaf:age 23>> ex:certainty 0.9 .
Received on Tuesday, 24 January 2023 00:20:19 UTC