public function testAttachValueNode() { $vocab = new RdfVocabulary('http://acme.com/item/', 'http://acme.com/data/'); $snakWriter = new NTriplesRdfWriter(); $snakWriter->prefix('www', "http://www/"); $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_VALUE, "http://acme/statement/value/"); $snakWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/"); $valueWriter = new NTriplesRdfWriter(); $valueWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/"); $valueWriter->prefix(RdfVocabulary::NS_ONTOLOGY, "http://acme/onto/"); $helper = new ComplexValueRdfHelper($vocab, $valueWriter, new HashDedupeBag()); // check we get the correct value writer $this->assertSame($valueWriter, $helper->getValueNodeWriter()); $snakWriter->start(); $snakWriter->about('www', 'Q1'); $valueWriter->start(); // attach a value node $value = new StringValue('http://en.wikipedia.org/wiki/Wikidata'); $lvalue = $helper->attachValueNode($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, 'testing', 'DUMMY', $value); $this->assertEquals('e93b68fef814eb52e813bb72e6867432', $lvalue); // do it again, tests dedupe $snakWriter->about('www', 'Q2'); $lvalue = $helper->attachValueNode($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, 'testing', 'DUMMY', $value); $this->assertNull($lvalue, 'lvalue produced by adding a value a second time should be null'); // check the triples written to the snak writer $expected = array('<http://www/Q1> <http://acme/statement/value/testing> <http://acme/value/e93b68fef814eb52e813bb72e6867432> .', '<http://www/Q2> <http://acme/statement/value/testing> <http://acme/value/e93b68fef814eb52e813bb72e6867432> .'); $this->helper->assertNTriplesEquals($expected, $snakWriter->drain()); // check the triples written to the value writer $expected = '<http://acme/value/e93b68fef814eb52e813bb72e6867432> ' . '<http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ' . '<http://acme/onto/StringValue> .'; $this->helper->assertNTriplesEquals($expected, $valueWriter->drain()); }
private function assertOrCreateNTriples($dataSetName, RdfWriter $writer) { $actual = $writer->drain(); $expected = $this->getTestData()->getNTriples($dataSetName); if ($expected === null) { $this->getTestData()->putTestData($dataSetName, $actual, '.actual'); $this->fail("Data set {$dataSetName} not found! Created file with the current data using" . " the suffix .actual"); } $this->helper->assertNTriplesEquals($expected, $actual, "Data set {$dataSetName}"); }
/** * @dataProvider provideAddValue */ public function testAddValue($typeBase, $typeLocal, PropertyValueSnak $snak, $expected) { $builder = new LiteralValueRdfBuilder($typeBase, $typeLocal); $writer = new NTriplesRdfWriter(); $writer->prefix('www', "http://www/"); $writer->prefix('acme', "http://acme/"); $writer->prefix($typeBase, "http://{$typeBase}/"); $writer->start(); $writer->about('www', 'Q1'); $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak); $this->helper->assertNTriplesEquals($expected, $writer->drain()); }
public function testAddValue() { $builder = new ObjectUriRdfBuilder(); $writer = new NTriplesRdfWriter(); $writer->prefix('www', "http://www/"); $writer->prefix('acme', "http://acme/"); $writer->start(); $writer->about('www', 'Q1'); $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('http://en.wikipedia.org/wiki/Wikidata')); $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak); $expected = '<http://www/Q1> <http://acme/testing> <http://en.wikipedia.org/wiki/Wikidata> .'; $this->helper->assertNTriplesEquals($expected, $writer->drain()); }
public function testAddValue() { $builder = new MonolingualTextRdfBuilder(); $writer = new NTriplesRdfWriter(); $writer->prefix('www', "http://www/"); $writer->prefix('acme', "http://acme/"); $writer->start(); $writer->about('www', 'Q1'); $snak = new PropertyValueSnak(new PropertyId('P1'), new MonolingualTextValue('de', 'Hallo Welt')); $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak); $expected = '<http://www/Q1> <http://acme/testing> "Hallo Welt"@de .'; $this->helper->assertNTriplesEquals($expected, $writer->drain()); }
public function testAddValue() { $vocab = new RdfVocabulary('http://test/item/', 'http://test/data/'); $builder = new CommonsMediaRdfBuilder($vocab); $writer = new NTriplesRdfWriter(); $writer->prefix('www', "http://www/"); $writer->prefix('acme', "http://acme/"); $writer->start(); $writer->about('www', 'Q1'); $snak = new PropertyValueSnak(new PropertyId('P1'), new StringValue('Bunny.jpg')); $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak); $expected = '<http://www/Q1> <http://acme/testing> <http://commons.wikimedia.org/wiki/Special:FilePath/Bunny.jpg> .'; $this->helper->assertNTriplesEquals($expected, $writer->drain()); }
public function testAddValue() { $vocab = new RdfVocabulary('http://test/item/', 'http://test/data/'); $builder = new EntityIdRdfBuilder($vocab, new NullEntityMentionListener()); $writer = new NTriplesRdfWriter(); $writer->prefix('www', "http://www/"); $writer->prefix('acme', "http://acme/"); $writer->prefix(RdfVocabulary::NS_ENTITY, 'http://test/item/'); $writer->start(); $writer->about('www', 'Q1'); $snak = new PropertyValueSnak(new PropertyId('P1'), new EntityIdValue(new ItemId('Q23'))); $builder->addValue($writer, 'acme', 'testing', 'DUMMY', $snak); $expected = '<http://www/Q1> <http://acme/testing> <http://test/item/Q23> .'; $this->helper->assertNTriplesEquals($expected, $writer->drain()); }
public function testAddSnakValue_novalue() { $propertyId = new PropertyId('P2'); $snak = new PropertyNoValueSnak($propertyId); $writer = $this->getTestData()->getNTriplesWriter(); $writer->about(RdfVocabulary::NS_ENTITY, 'Q11'); $builder = $this->newBuilder(RdfVocabulary::NSP_DIRECT_CLAIM, $propertyId->getSerialization(), 'wikibase-item'); $expectedTriples = array('<http://acme.test/Q11> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://acme.test/prop/novalue/P2> .'); $builder->addSnak($writer, $snak, RdfVocabulary::NSP_DIRECT_CLAIM); $this->helper->assertNTriplesEquals($expectedTriples, $writer->drain()); }
public function testDeduplication() { $bag = new HashDedupeBag(); $builder = $this->newRdfBuilder(RdfProducer::PRODUCE_ALL, $bag); $builder->addEntity($this->getEntityData('Q7')); $data1 = $builder->getRDF(); $builder = $this->newRdfBuilder(RdfProducer::PRODUCE_ALL, $bag); $builder->addEntity($this->getEntityData('Q9')); $data2 = $builder->getRDF(); $expected = $this->getTestData()->getNTriples('Q7_Q9_dedup'); $this->helper->assertNTriplesEquals($expected, $data1 . $data2); }
/** * @dataProvider provideAddValue */ public function testAddValue(PropertyValueSnak $snak, $complex, array $expected) { $vocab = new RdfVocabulary('http://acme.com/item/', 'http://acme.com/data/'); $snakWriter = new NTriplesRdfWriter(); $snakWriter->prefix('www', "http://www/"); $snakWriter->prefix('acme', "http://acme/"); $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_VALUE, "http://acme/statement/value/"); $snakWriter->prefix(RdfVocabulary::NSP_CLAIM_STATEMENT, "http://acme/statement/"); $snakWriter->prefix(RdfVocabulary::NS_VALUE, "http://acme/value/"); $snakWriter->prefix(RdfVocabulary::NS_ONTOLOGY, "http://acme/onto/"); if ($complex) { $valueWriter = $snakWriter->sub(); $helper = new ComplexValueRdfHelper($vocab, $valueWriter, new HashDedupeBag()); } else { $helper = null; } $builder = new QuantityRdfBuilder($helper); $snakWriter->start(); $snakWriter->about('www', 'Q1'); $builder->addValue($snakWriter, RdfVocabulary::NSP_CLAIM_STATEMENT, $vocab->getEntityLName($snak->getPropertyid()), 'DUMMY', $snak); $this->helper->assertNTriplesEquals($expected, $snakWriter->drain()); }
/** * @dataProvider loadDataProvider * @param EntityId[] $ids * @param string $dumpname */ public function testReferenceDedup(array $ids, $dumpname) { $entities = array(); $rdfTest = new RdfBuilderTest(); foreach ($ids as $id) { $id = $id->getSerialization(); $entities[$id] = $rdfTest->getEntityData($id); } $dumper = $this->newDumpGenerator($entities); $dumper->setTimestamp(1000000); $jsonTest = new JsonDumpGeneratorTest(); $pager = $jsonTest->makeIdPager($ids); ob_start(); $dumper->generateDump($pager); $actual = ob_get_clean(); $expected = $this->getTestData()->getNTriples($dumpname); $this->helper->assertNTriplesEquals($expected, $actual); }
/** * @param string $datasetName * @param string[]|string $actual */ private function assertOutputLines($datasetName, $actual) { $path = __DIR__ . '/../data/' . $datasetName . '.' . $this->getFileSuffix(); $this->helper->assertNTriplesEquals(file_get_contents($path), $actual, "Result mismatches data in {$path}"); }