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()); }
/** * @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() { $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 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()); }
/** * Returns a new NTriplesRdfWriter, with vocabulary namespaces registered. * * @param bool $start whether to call start() on the writer. * * @return NTriplesRdfWriter */ public function getNTriplesWriter($start = true) { $writer = new NTriplesRdfWriter(); foreach ($this->getVocabulary()->getNamespaces() as $ns => $uri) { $writer->prefix($ns, $uri); } if ($start) { $writer->start(); } return $writer; }
/** * @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); $triples = trim($snakWriter->drain()); $this->assertEquals(join("\n", $expected), $triples); }