Hjfocs added a comment.

State triple solution experiment.

Input dataset, Turtle format, named graph http://chuck-berry

@prefix wd: <http://www.wikidata.org/entity/> .
@prefix wds: <http://www.wikidata.org/entity/statement/> .
@prefix wdref: <http://www.wikidata.org/reference/> .
@prefix p: <http://www.wikidata.org/prop/> .
@prefix ps: <http://www.wikidata.org/prop/statement/> .
@prefix pq: <http://www.wikidata.org/prop/qualifier/> .
@prefix pr: <http://www.wikidata.org/prop/reference/> .
@prefix prov: <http://www.w3.org/ns/prov#> .

wd:Q5921 p:P18 wds:Q5921-583C7277-B344-4C96-8CF2-0557C2D0CD34 .

wds:Q5921-583C7277-B344-4C96-8CF2-0557C2D0CD34 ps:P18 <http://commons.wikimedia.org/wiki/Special:FilePath/Chuck-berry-2007-07-18.jpg> ;
	pq:P2096 "Chuck Berry (2007)"@ca ;
	prov:wasDerivedFrom wdref:288ab581e7d2d02995a26dfa8b091d96e78457fc .

wdref:288ab581e7d2d02995a26dfa8b091d96e78457fc pr:P143 wd:Q206855 .

State triples to be added at upload time (into the same named graph http://chuck-berry)

# Claim
wd:Q5921 <http://www.wikidata.org/primary-sources/state> "new" .

# Reference
wdref:288ab581e7d2d02995a26dfa8b091d96e78457fc <http://www.wikidata.org/primary-sources/state> "new" .

# Qualifier
pq:P2096 <http://www.wikidata.org/primary-sources/state> "new" .

Given the Chuck Berry Item Q5921, the front end must run the following query to retrieve the data

PREFIX pst: <http://www.wikidata.org/primary-sources/>
SELECT ?property ?statement_property ?statement_value ?reference_property ?reference_value
WHERE {
  GRAPH <http://chuck-berry> {
    # Claim
    wd:Q5921 pst:state "new" ;
             ?property ?statement .
    ?statement ?statement_property ?statement_value .
    # Qualifier
    OPTIONAL {
      ?statement_property pst:state "new" .
    }
    # Reference
    OPTIONAL {
      ?statement_value pst:state "new" ;
         ?reference_property ?reference_value .
    }
  }
}

The front end must run the following update queries, depending on which part of the statement.

On claim approval

PREFIX pst: <http://www.wikidata.org/primary-sources/>
WITH <http://chuck-berry>
DELETE {
  wd:Q5921 pst:state "new" .
  ?statement_property pst:state "new" .
  ?statement_value pst:state "new" .
}
INSERT {
  wd:Q5921 pst:state "approved" .
  ?statement_property pst:state "approved" .
  ?statement_value pst:state "approved" .
}
WHERE {
  wd:Q5921 pst:state "new" ;
           ?property ?statement .
  ?statement ?statement_property ?statement_value .
  OPTIONAL {
    ?statement_property pst:state "new" .
  }
  OPTIONAL {
    ?statement_value pst:state "new" .
  }
}

On qualifier approval

PREFIX pst: <http://www.wikidata.org/primary-sources/>
WITH <http://chuck-berry>
DELETE {
  ?statement_property pst:state "new" .
}
INSERT {
  ?statement_property pst:state "approved" .
}
WHERE {
  wd:Q5921 pst:state "new" ;
           ?property ?statement .
  ?statement ?statement_property ?statement_value .
  ?statement_property pst:state "new" .
}

On reference approval

PREFIX pst: <http://www.wikidata.org/primary-sources/>
WITH <http://chuck-berry>
DELETE {
  ?statement_value pst:state "new" .
}
INSERT {
  ?statement_value pst:state "approved" .
}
WHERE {
  wd:Q5921 pst:state "new" ;
           ?property ?statement .
  ?statement ?statement_property ?statement_value .
  ?statement_value pst:state "new" .
}

Notes

  • storage overhead in terms of additional state triples;
  • relatively complex queries to both retrieve the data and to update;
  • since full values for qualifiers seem to be required only for complex data types, they should be mostly represented by simple values. Hence, the state triple must be attached to a predicate, instead of a subject, e.g., pq:P2096 <http://www.wikidata.org/primary-sources/state> "new" .

TASK DETAIL
https://phabricator.wikimedia.org/T169986

EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Hjfocs
Cc: Aklapper, Hjfocs, Kiailandi, dachary, Wikidata-bugs, Ricordisamoa, Sjoerddebruin, Mbch331
_______________________________________________
Wikidata-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to