Search in sources :

Example 1 with Claim

use of org.wikidata.wdtk.datamodel.interfaces.Claim in project OpenRefine by OpenRefine.

the class WbStatementExpr method evaluate.

public StatementEdit evaluate(ExpressionContext ctxt, EntityIdValue subject, PropertyIdValue propertyId) throws SkipSchemaExpressionException {
    Snak mainSnak = null;
    if (mainSnakValueExpr != null) {
        Value mainSnakValue = mainSnakValueExpr.evaluate(ctxt);
        mainSnak = Datamodel.makeValueSnak(propertyId, mainSnakValue);
    } else {
        // hack to make sure we have a non-null snak
        mainSnak = Datamodel.makeNoValueSnak(propertyId);
    }
    // evaluate qualifiers
    List<Snak> qualifiers = new ArrayList<Snak>(getQualifiers().size());
    for (WbSnakExpr qExpr : getQualifiers()) {
        try {
            qualifiers.add(qExpr.evaluate(ctxt));
        } catch (SkipSchemaExpressionException e) {
            QAWarning warning = new QAWarning("ignored-qualifiers", null, QAWarning.Severity.INFO, 1);
            warning.setProperty("example_entity", subject);
            warning.setProperty("example_property_entity", mainSnak.getPropertyId());
            ctxt.addWarning(warning);
        }
    }
    List<SnakGroup> groupedQualifiers = groupSnaks(qualifiers);
    Claim claim = Datamodel.makeClaim(subject, mainSnak, groupedQualifiers);
    // evaluate references
    List<Reference> references = new ArrayList<Reference>();
    for (WbReferenceExpr rExpr : getReferences()) {
        try {
            references.add(rExpr.evaluate(ctxt));
        } catch (SkipSchemaExpressionException e) {
            QAWarning warning = new QAWarning("ignored-references", null, QAWarning.Severity.INFO, 1);
            warning.setProperty("example_entity", subject);
            warning.setProperty("example_property_entity", mainSnak.getPropertyId());
            ctxt.addWarning(warning);
        }
    }
    StatementRank rank = StatementRank.NORMAL;
    return new StatementEdit(Datamodel.makeStatement(claim, references, rank, ""), merger, mode);
}
Also used : Snak(org.wikidata.wdtk.datamodel.interfaces.Snak) SkipSchemaExpressionException(org.openrefine.wikidata.schema.exceptions.SkipSchemaExpressionException) Reference(org.wikidata.wdtk.datamodel.interfaces.Reference) StatementRank(org.wikidata.wdtk.datamodel.interfaces.StatementRank) ArrayList(java.util.ArrayList) StatementEdit(org.openrefine.wikidata.updates.StatementEdit) EntityIdValue(org.wikidata.wdtk.datamodel.interfaces.EntityIdValue) Value(org.wikidata.wdtk.datamodel.interfaces.Value) PropertyIdValue(org.wikidata.wdtk.datamodel.interfaces.PropertyIdValue) SnakGroup(org.wikidata.wdtk.datamodel.interfaces.SnakGroup) QAWarning(org.openrefine.wikidata.qa.QAWarning) Claim(org.wikidata.wdtk.datamodel.interfaces.Claim)

Example 2 with Claim

use of org.wikidata.wdtk.datamodel.interfaces.Claim in project OpenRefine by OpenRefine.

the class QuickStatementsExporterTest method testNoValue.

@Test
public void testNoValue() throws IOException {
    PropertyIdValue pid = Datamodel.makeWikidataPropertyIdValue("P123");
    Claim claim = Datamodel.makeClaim(qid1, Datamodel.makeNoValueSnak(pid), Collections.emptyList());
    Statement statement = Datamodel.makeStatement(claim, Collections.emptyList(), StatementRank.NORMAL, "");
    StatementEdit statementUpdate = new StatementEdit(statement, StatementMerger.FORMER_DEFAULT_STRATEGY, StatementEditingMode.ADD_OR_MERGE);
    TermedStatementEntityEdit update = new TermedStatementEntityEditBuilder(qid1).addStatement(statementUpdate).build();
    assertEquals("Q1377\tP123\tnovalue\n", export(update));
}
Also used : PropertyIdValue(org.wikidata.wdtk.datamodel.interfaces.PropertyIdValue) TermedStatementEntityEditBuilder(org.openrefine.wikidata.updates.TermedStatementEntityEditBuilder) Statement(org.wikidata.wdtk.datamodel.interfaces.Statement) TermedStatementEntityEdit(org.openrefine.wikidata.updates.TermedStatementEntityEdit) Claim(org.wikidata.wdtk.datamodel.interfaces.Claim) StatementEdit(org.openrefine.wikidata.updates.StatementEdit) Test(org.testng.annotations.Test) WikidataRefineTest(org.openrefine.wikidata.testing.WikidataRefineTest)

Example 3 with Claim

use of org.wikidata.wdtk.datamodel.interfaces.Claim in project OpenRefine by OpenRefine.

the class QuickStatementsExporterTest method testSomeValue.

@Test
public void testSomeValue() throws IOException {
    PropertyIdValue pid = Datamodel.makeWikidataPropertyIdValue("P123");
    Claim claim = Datamodel.makeClaim(qid1, Datamodel.makeSomeValueSnak(pid), Collections.emptyList());
    Statement statement = Datamodel.makeStatement(claim, Collections.emptyList(), StatementRank.NORMAL, "");
    StatementEdit statementUpdate = new StatementEdit(statement, StatementMerger.FORMER_DEFAULT_STRATEGY, StatementEditingMode.ADD_OR_MERGE);
    TermedStatementEntityEdit update = new TermedStatementEntityEditBuilder(qid1).addStatement(statementUpdate).build();
    assertEquals("Q1377\tP123\tsomevalue\n", export(update));
}
Also used : PropertyIdValue(org.wikidata.wdtk.datamodel.interfaces.PropertyIdValue) TermedStatementEntityEditBuilder(org.openrefine.wikidata.updates.TermedStatementEntityEditBuilder) Statement(org.wikidata.wdtk.datamodel.interfaces.Statement) TermedStatementEntityEdit(org.openrefine.wikidata.updates.TermedStatementEntityEdit) Claim(org.wikidata.wdtk.datamodel.interfaces.Claim) StatementEdit(org.openrefine.wikidata.updates.StatementEdit) Test(org.testng.annotations.Test) WikidataRefineTest(org.openrefine.wikidata.testing.WikidataRefineTest)

Example 4 with Claim

use of org.wikidata.wdtk.datamodel.interfaces.Claim in project OpenRefine by OpenRefine.

the class ConstraintTest method setUp.

@BeforeMethod
public void setUp() {
    Snak qualifierSnak1 = Datamodel.makeValueSnak(constraintException, exceptionValue);
    List<Snak> qualifierSnakList1 = Collections.singletonList(qualifierSnak1);
    Snak qualifierSnak2 = Datamodel.makeValueSnak(constraintStatus, statusValue);
    List<Snak> qualifierSnakList2 = Collections.singletonList(qualifierSnak2);
    SnakGroup qualifier1 = Datamodel.makeSnakGroup(qualifierSnakList1);
    SnakGroup qualifier2 = Datamodel.makeSnakGroup(qualifierSnakList2);
    List<SnakGroup> snakGroupList = Arrays.asList(qualifier1, qualifier2);
    PropertyIdValue propertyIdValue = Datamodel.makeWikidataPropertyIdValue("P2302");
    Snak mainSnak = Datamodel.makeValueSnak(propertyIdValue, itemIdValue);
    Claim claim = Datamodel.makeClaim(itemIdValue, mainSnak, snakGroupList);
    Reference reference = Datamodel.makeReference(snakGroupList);
    List<Reference> referenceList = Collections.singletonList(reference);
    statement = Datamodel.makeStatement(claim, referenceList, StatementRank.NORMAL, "P2302$77BD7FE4-C051-4776-855C-543F0CE697D0");
    constraint = new Constraint(statement);
}
Also used : PropertyIdValue(org.wikidata.wdtk.datamodel.interfaces.PropertyIdValue) Snak(org.wikidata.wdtk.datamodel.interfaces.Snak) Reference(org.wikidata.wdtk.datamodel.interfaces.Reference) SnakGroup(org.wikidata.wdtk.datamodel.interfaces.SnakGroup) Claim(org.wikidata.wdtk.datamodel.interfaces.Claim) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 5 with Claim

use of org.wikidata.wdtk.datamodel.interfaces.Claim in project OpenRefine by OpenRefine.

the class SnakScrutinizerTest method scrutinize.

public void scrutinize(Snak snak) {
    Claim claim = Datamodel.makeClaim(TestingData.existingId, snak, Collections.emptyList());
    Statement statement = Datamodel.makeStatement(claim, Collections.emptyList(), StatementRank.NORMAL, "");
    scrutinize(statement);
}
Also used : Statement(org.wikidata.wdtk.datamodel.interfaces.Statement) Claim(org.wikidata.wdtk.datamodel.interfaces.Claim)

Aggregations

Claim (org.wikidata.wdtk.datamodel.interfaces.Claim)12 Statement (org.wikidata.wdtk.datamodel.interfaces.Statement)8 Snak (org.wikidata.wdtk.datamodel.interfaces.Snak)7 Reference (org.wikidata.wdtk.datamodel.interfaces.Reference)6 SnakGroup (org.wikidata.wdtk.datamodel.interfaces.SnakGroup)6 StatementEdit (org.openrefine.wikidata.updates.StatementEdit)5 PropertyIdValue (org.wikidata.wdtk.datamodel.interfaces.PropertyIdValue)5 WikidataRefineTest (org.openrefine.wikidata.testing.WikidataRefineTest)4 TermedStatementEntityEdit (org.openrefine.wikidata.updates.TermedStatementEntityEdit)4 TermedStatementEntityEditBuilder (org.openrefine.wikidata.updates.TermedStatementEntityEditBuilder)4 Test (org.testng.annotations.Test)4 ArrayList (java.util.ArrayList)2 QAWarning (org.openrefine.wikidata.qa.QAWarning)1 SkipSchemaExpressionException (org.openrefine.wikidata.schema.exceptions.SkipSchemaExpressionException)1 BeforeMethod (org.testng.annotations.BeforeMethod)1 EntityIdValue (org.wikidata.wdtk.datamodel.interfaces.EntityIdValue)1 NoValueSnak (org.wikidata.wdtk.datamodel.interfaces.NoValueSnak)1 SomeValueSnak (org.wikidata.wdtk.datamodel.interfaces.SomeValueSnak)1 StatementRank (org.wikidata.wdtk.datamodel.interfaces.StatementRank)1 Value (org.wikidata.wdtk.datamodel.interfaces.Value)1