jenkins-bot has submitted this change and it was merged.
Change subject: Process dump files
......................................................................
Process dump files
To use it:
mvn install
cd tools
java -cp target/wikidata-query-tools-0.0.1-SNAPSHOT-jar-with-dependencies.jar
org.wikidata.query.rdf.tool.Munge -f
src/test/java/org/wikidata/query/rdf/tool/dump.rdf.gz -w test.wikidata.org
See the parameters for more.
Change-Id: I151cb0c4edb9ccc8a6a2968d164161895814bc6f
---
M common/src/main/java/org/wikidata/query/rdf/common/uri/Ontology.java
M common/src/main/java/org/wikidata/query/rdf/common/uri/RDFS.java
M common/src/main/java/org/wikidata/query/rdf/common/uri/SchemaDotOrg.java
M pom.xml
M tools/pom.xml
A tools/src/main/java/org/wikidata/query/rdf/tool/CliUtils.java
A tools/src/main/java/org/wikidata/query/rdf/tool/Munge.java
M tools/src/main/java/org/wikidata/query/rdf/tool/Update.java
M tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Munger.java
A tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Normalizer.java
M tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java
M
tools/src/test/java/org/wikidata/query/rdf/tool/AbstractRdfRepositoryIntegrationTestBase.java
A tools/src/test/java/org/wikidata/query/rdf/tool/MungeIntegrationTest.java
A tools/src/test/java/org/wikidata/query/rdf/tool/test.ttl
14 files changed, 2,651 insertions(+), 83 deletions(-)
Approvals:
Smalyshev: Looks good to me, approved
jenkins-bot: Verified
diff --git
a/common/src/main/java/org/wikidata/query/rdf/common/uri/Ontology.java
b/common/src/main/java/org/wikidata/query/rdf/common/uri/Ontology.java
index faf4b63..c8b0d4e 100644
--- a/common/src/main/java/org/wikidata/query/rdf/common/uri/Ontology.java
+++ b/common/src/main/java/org/wikidata/query/rdf/common/uri/Ontology.java
@@ -27,6 +27,11 @@
public static final String VALUE = NAMESPACE + "Value";
/**
+ * Wikibase exports dump information with this subject.
+ */
+ public static final Object DUMP = NAMESPACE + "Dump";
+
+ /**
* Predicate for marking Wikibase's Rank.
*
* @see <a href="http://www.wikidata.org/wiki/Help:Ranking">The
diff --git a/common/src/main/java/org/wikidata/query/rdf/common/uri/RDFS.java
b/common/src/main/java/org/wikidata/query/rdf/common/uri/RDFS.java
index f0afad5..978cbb9 100644
--- a/common/src/main/java/org/wikidata/query/rdf/common/uri/RDFS.java
+++ b/common/src/main/java/org/wikidata/query/rdf/common/uri/RDFS.java
@@ -7,4 +7,11 @@
public class RDFS {
public static final String NAMESPACE =
"http://www.w3.org/2000/01/rdf-schema#";
public static final String LABEL = NAMESPACE + "label";
+
+ /**
+ * Add the rdfs: prefix to the query.
+ */
+ public static StringBuilder prefixes(StringBuilder query) {
+ return query.append("PREFIX rdfs: <").append(NAMESPACE).append(">\n");
+ }
}
diff --git
a/common/src/main/java/org/wikidata/query/rdf/common/uri/SchemaDotOrg.java
b/common/src/main/java/org/wikidata/query/rdf/common/uri/SchemaDotOrg.java
index e8b3e93..438b872 100644
--- a/common/src/main/java/org/wikidata/query/rdf/common/uri/SchemaDotOrg.java
+++ b/common/src/main/java/org/wikidata/query/rdf/common/uri/SchemaDotOrg.java
@@ -34,4 +34,11 @@
* Wikibase adds the descriptions as schema:description.
*/
public static final String DESCRIPTION = NAMESPACE + "description";
+
+ /**
+ * Adds the schema: prefix to the query.
+ */
+ public static StringBuilder prefix(StringBuilder query) {
+ return query.append("PREFIX schema:
<").append(NAMESPACE).append(">\n");
+ }
}
diff --git a/pom.xml b/pom.xml
index b0e17a0..d678455 100644
--- a/pom.xml
+++ b/pom.xml
@@ -215,14 +215,12 @@
<plugin>
<groupId>de.thetaphi</groupId>
<artifactId>forbiddenapis</artifactId>
- <version>1.5</version>
+ <version>1.7</version>
<configuration>
<targetVersion>1.7</targetVersion>
<failOnMissingClasses>false</failOnMissingClasses> <!-- this is a
bug in forbidden APIs since 1.5 looks also at annotations -->
<!-- disallow undocumented classes like sun.misc.Unsafe: -->
<internalRuntimeForbidden>true</internalRuntimeForbidden>
- <!-- if the used Java version is too new, don't fail, just do
nothing: -->
- <failOnUnsupportedJava>false</failOnUnsupportedJava>
<bundledSignatures>
<!-- This will automatically choose the right signatures based on
'maven.compiler.target': -->
<bundledSignature>jdk-unsafe</bundledSignature>
@@ -243,6 +241,10 @@
<signaturesFile>../src/build/forbidden/all.txt</signaturesFile>
<signaturesFile>../src/build/forbidden/core.txt</signaturesFile>
</signaturesFiles>
+ <excludes>
+ <!-- Some portions of the project need access to System.out
and things so we contain them in inner classes of this form. -->
+ <exclude>**/*$ForbiddenOk.class</exclude>
+ </excludes>
</configuration>
</execution>
<execution>
diff --git a/tools/pom.xml b/tools/pom.xml
index 7c64795..78bb6df 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -75,6 +75,12 @@
<artifactId>metrics-core</artifactId>
<version>3.1.0</version>
</dependency>
+ <dependency>
+ <!-- Tiny http server used with Munge's to option in port style -->
+ <groupId>com.nanohttpd</groupId>
+ <artifactId>nanohttpd</artifactId>
+ <version>2.1.1</version>
+ </dependency>
</dependencies>
<build>
diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/CliUtils.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/CliUtils.java
new file mode 100644
index 0000000..e73aa53
--- /dev/null
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/CliUtils.java
@@ -0,0 +1,218 @@
+package org.wikidata.query.rdf.tool;
+
+import static com.google.common.io.Resources.getResource;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.lang.Thread.UncaughtExceptionHandler;
+import java.net.URI;
+import java.util.List;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.wikidata.query.rdf.common.uri.Entity;
+import org.wikidata.query.rdf.common.uri.EntityData;
+import org.wikidata.query.rdf.tool.rdf.Munger;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.util.StatusPrinter;
+
+import com.google.common.base.Charsets;
+import com.lexicalscope.jewel.cli.ArgumentValidationException;
+import com.lexicalscope.jewel.cli.Cli;
+import com.lexicalscope.jewel.cli.CliFactory;
+import com.lexicalscope.jewel.cli.HelpRequestedException;
+import com.lexicalscope.jewel.cli.Option;
+
+/**
+ * Utilities for command line scripts.
+ */
+public class CliUtils {
+ private static final Logger log = LoggerFactory.getLogger(Update.class);
+
+ /**
+ * Basic options for parsing with JewelCLI.
+ */
+ public interface BasicOptions {
+ @Option(shortName = "v", description = "Verbose mode")
+ boolean verbose();
+
+ @Option(helpRequest = true, description = "Show this message")
+ boolean help();
+ }
+
+ /**
+ * Command line options for setting up a Munger instance.
+ */
+ public interface MungerOptions extends WikibaseOptions {
+ @Option(longName = "labelLanguage", defaultToNull = true, description
= "Only import labels, aliases, and descriptions in these languages.")
+ List<String> labelLanguages();
+
+ @Option(longName = "singleLabel", defaultToNull = true, description =
"Always import a single label and description using the languages specified as
a fallback list. If there aren't any matching labels or descriptions them the
entity itself is used as the label or description.")
+ List<String> singleLabelLanguages();
+
+ @Option(description = "Skip site links")
+ boolean skipSiteLinks();
+ }
+
+ /**
+ * Options specifying information about a Wikibase instance.
+ */
+ public interface WikibaseOptions {
+ @Option(shortName = "w", defaultValue = "www.wikidata.org",
description = "Wikibase host")
+ String wikibaseHost();
+ }
+
+ /**
+ * Parses options and handles the verbose flag.
+ *
+ * @param optionsClass class defining options
+ * @param args arguments to parse
+ * @return parse options
+ */
+ public static <T extends BasicOptions> T handleOptions(Class<T>
optionsClass, String... args) {
+ T options = parseOptions(optionsClass, args);
+ if (options.verbose()) {
+ log.info("Verbose mode activated");
+ // Assumes logback which is pretty safe in main.
+ LoggerContext context = (LoggerContext)
LoggerFactory.getILoggerFactory();
+ try {
+ JoranConfigurator configurator = new JoranConfigurator();
+ configurator.setContext(context);
+ context.reset();
+ configurator.doConfigure(getResource("logback-verbose.xml"));
+ } catch (JoranException je) {
+ // StatusPrinter will handle this
+ }
+ StatusPrinter.printInCaseOfErrorsOrWarnings(context);
+ }
+ return options;
+ }
+
+ /**
+ * Build a munger from a MungerOptions instance.
+ */
+ public static Munger mungerFromOptions(MungerOptions options) {
+ Munger munger = new Munger(new EntityData(options.wikibaseHost()), new
Entity(options.wikibaseHost()));
+ if (options.skipSiteLinks()) {
+ munger = munger.removeSiteLinks();
+ }
+ if (options.labelLanguages() != null) {
+ munger = munger.limitLabelLanguages(options.labelLanguages());
+ }
+ if (options.singleLabelLanguages() != null) {
+ munger = munger.singleLabelMode(options.singleLabelLanguages());
+ }
+ return munger;
+ }
+
+ /**
+ * Build a reader for the uri.
+ */
+ public static Reader reader(String uri) throws IOException {
+ return new InputStreamReader(inputStream(uri), Charsets.UTF_8);
+ }
+
+ /**
+ * Get an input stream for a uri. If the uri looks like a gzip file then
+ * unzips it on the fly.
+ */
+ public static InputStream inputStream(String uri) throws IOException {
+ if (uri.equals("-")) {
+ return ForbiddenOk.systemDotIn();
+ }
+ InputStream stream;
+ if (!uri.contains(":/")) {
+ stream = new BufferedInputStream(new FileInputStream(uri));
+ } else {
+ stream = URI.create(uri).toURL().openStream();
+ }
+ if (uri.endsWith(".gz")) {
+ stream = new GZIPInputStream(stream);
+ }
+ return stream;
+ }
+
+ /**
+ * Build a writer for the uri.
+ */
+ public static Writer writer(String uri) throws IOException {
+ return new OutputStreamWriter(outputStream(uri), Charsets.UTF_8);
+ }
+
+ /**
+ * Get an output stream for a uri. If the uri looks like a gzip file then
+ * zips it on the fly.
+ */
+ public static OutputStream outputStream(String out) throws IOException {
+ if (out.equals("-")) {
+ return ForbiddenOk.systemDotOut();
+ }
+ OutputStream stream = new BufferedOutputStream(new
FileOutputStream(out));
+ if (out.endsWith(".gz")) {
+ stream = new GZIPOutputStream(stream);
+ }
+ return stream;
+ }
+
+ public static UncaughtExceptionHandler
loggingUncaughtExceptionHandler(final String message, final Logger log) {
+ return new UncaughtExceptionHandler() {
+ @Override
+ public void uncaughtException(Thread thread, Throwable exception) {
+ log.error(message, exception);
+ }
+ };
+ }
+
+ private static <T> T parseOptions(Class<T> optionsClass, String... args) {
+ Cli<T> cli = CliFactory.createCli(optionsClass);
+ try {
+ return cli.parseArguments(args);
+ } catch (HelpRequestedException e) {
+ ForbiddenOk.systemDotOut().println(cli.getHelpMessage());
+ System.exit(0);
+ } catch (ArgumentValidationException e) {
+ ForbiddenOk.systemDotErr().println("Invalid argument: " + e);
+ ForbiddenOk.systemDotErr().println(cli.getHelpMessage());
+ System.exit(1);
+ }
+ throw new RuntimeException("Should be unreachable.");
+ }
+
+ /**
+ * Methods in this class are ignored by the forbiddenapis checks. Thus you
+ * need to really really really be sure what you are putting in here is
+ * right.
+ */
+ private static class ForbiddenOk {
+ /**
+ * Get System.in. CliTools should be allowed to use System.in/out/err.
+ * This is private because we only want them to be used by cli tools.
+ */
+ private static InputStream systemDotIn() {
+ return System.in;
+ }
+
+ private static PrintStream systemDotOut() {
+ return System.out;
+ }
+
+ private static PrintStream systemDotErr() {
+ return System.err;
+ }
+ }
+}
diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/Munge.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/Munge.java
new file mode 100644
index 0000000..a9283f3
--- /dev/null
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/Munge.java
@@ -0,0 +1,278 @@
+package org.wikidata.query.rdf.tool;
+
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openrdf.model.Statement;
+import org.openrdf.rio.RDFFormat;
+import org.openrdf.rio.RDFHandler;
+import org.openrdf.rio.RDFHandlerException;
+import org.openrdf.rio.RDFParseException;
+import org.openrdf.rio.RDFParser;
+import org.openrdf.rio.RDFWriter;
+import org.openrdf.rio.Rio;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.wikidata.query.rdf.common.uri.Entity;
+import org.wikidata.query.rdf.common.uri.EntityData;
+import org.wikidata.query.rdf.common.uri.Ontology;
+import org.wikidata.query.rdf.common.uri.SchemaDotOrg;
+import org.wikidata.query.rdf.tool.CliUtils.BasicOptions;
+import org.wikidata.query.rdf.tool.CliUtils.MungerOptions;
+import org.wikidata.query.rdf.tool.CliUtils.WikibaseOptions;
+import org.wikidata.query.rdf.tool.exception.ContainedException;
+import org.wikidata.query.rdf.tool.rdf.Munger;
+import org.wikidata.query.rdf.tool.rdf.Normalizer;
+
+import com.google.common.base.Charsets;
+import com.lexicalscope.jewel.cli.Option;
+
+import fi.iki.elonen.NanoHTTPD;
+
+/**
+ * Munges a Wikidata RDF dump so that it can be loaded in a single import.
+ */
+public class Munge implements Runnable {
+ private static final Logger log = LoggerFactory.getLogger(Munge.class);
+
+ /**
+ * CLI options for use with JewelCli.
+ */
+ public static interface Options extends BasicOptions, MungerOptions,
WikibaseOptions {
+ @Option(shortName = "f", defaultValue = "-", description = "Source
file (or uri) to munge. Default is - aka stdin.")
+ String from();
+
+ @Option(shortName = "t", defaultValue = "-", description =
"Destination of munge. Use port:<port_number> to start an "
+ + "http server on that port. Default is - aka stdout.")
+ String to();
+ }
+
+ public static void main(String[] args) {
+ Options options = CliUtils.handleOptions(Options.class, args);
+ EntityData entityDataUris = new EntityData(options.wikibaseHost());
+ Entity entityUris = new Entity(options.wikibaseHost());
+ Munger munger = CliUtils.mungerFromOptions(options);
+
+ if (options.to().startsWith("port:")) {
+ int port =
Integer.parseInt(options.to().substring("port:".length()));
+ Httpd http = new Httpd(port, entityDataUris, entityUris, munger,
options.from());
+ try {
+ log.info("Starting embedded http server for munged rdf on port
{}.", port);
+ http.start();
+ // Just wait until ctrl-c
+ while (true) {
+ try {
+ Thread.sleep(100000000L);
+ } catch (InterruptedException e) {
+ return;
+ }
+ }
+ } catch (IOException e) {
+ log.error("Error starting embedded http server", e);
+ return;
+ }
+ }
+
+ Writer to;
+ try {
+ to = new BufferedWriter(new
OutputStreamWriter(CliUtils.outputStream(options.to()), Charsets.UTF_8));
+ } catch (IOException e) {
+ log.error("Error finding output", e);
+ System.exit(1);
+ return;
+ }
+ Reader from;
+ try {
+ from = CliUtils.reader(options.from());
+ } catch (IOException e) {
+ log.error("Error finding input", e);
+ System.exit(1);
+ return;
+ }
+ try {
+ Munge munge = new Munge(entityDataUris, entityUris, munger, from,
to);
+ munge.run();
+ } catch (RuntimeException e) {
+ log.error("Fatal error munging RDF", e);
+ }
+ }
+
+ private final EntityData entityDataUris;
+ private final Entity entityUris;
+ private final Munger munger;
+ private final Reader from;
+ private final Writer to;
+
+ public Munge(EntityData entityDataUris, Entity entityUris, Munger munger,
Reader from, Writer to) {
+ this.entityDataUris = entityDataUris;
+ this.entityUris = entityUris;
+ this.munger = munger;
+ this.from = from;
+ this.to = to;
+ }
+
+ @Override
+ public void run() {
+ try {
+ RDFParser parser = Rio.createParser(RDFFormat.TURTLE);
+ RDFWriter writer = Rio.createWriter(RDFFormat.TURTLE, to);
+ RDFHandler handler = new EntityMungingRdfHandler(entityDataUris,
munger, writer);
+ handler = new Normalizer(handler);
+ parser.setRDFHandler(handler);
+ try {
+ parser.parse(from, entityUris.namespace());
+ } catch (RDFParseException | RDFHandlerException | IOException e) {
+ throw new RuntimeException(e);
+ }
+ } finally {
+ try {
+ from.close();
+ } catch (IOException e) {
+ log.error("Error closing input", e);
+ }
+ try {
+ to.close();
+ } catch (IOException e) {
+ log.error("Error closing output", e);
+ }
+ }
+ }
+
+ /**
+ * Collects statements about entities until it hits the next entity or the
+ * end of the file, munges those statements, and then passes them to the
+ * next handler. Note that this relies on the order of the data in the file
+ * to be like:
+ * <ul>
+ * <li>http://www.wikidata.org/wiki/Special:EntityData/EntityId ?p ?o .
+ * <li>everything about EntityId
+ * <li>http://www.wikidata.org/wiki/Special:EntityData/NextEntityId ?p ?o .
+ * <li>etc
+ * </ul>
+ * This is how the files are built so that is OK.
+ */
+ private static class EntityMungingRdfHandler implements RDFHandler {
+ private final EntityData entityDataUris;
+ private final Munger munger;
+ private final RDFHandler next;
+ private final List<Statement> statements = new ArrayList<>();
+ private boolean haveNonEntityDataStatements;
+ private String entityId;
+
+ public EntityMungingRdfHandler(EntityData entityDataUris, Munger
munger, RDFHandler next) {
+ this.entityDataUris = entityDataUris;
+ this.munger = munger;
+ this.next = next;
+ }
+
+ @Override
+ public void startRDF() throws RDFHandlerException {
+ haveNonEntityDataStatements = false;
+ next.startRDF();
+ }
+
+ @Override
+ public void handleNamespace(String prefix, String uri) throws
RDFHandlerException {
+ // Namespaces go through to the next handler.
+ next.handleNamespace(prefix, uri);
+ }
+
+ @Override
+ public void handleComment(String comment) throws RDFHandlerException {
+ // Comments go right through to the next handler.
+ next.handleComment(comment);
+ }
+
+ @Override
+ public void handleStatement(Statement statement) throws
RDFHandlerException {
+ String subject = statement.getSubject().stringValue();
+ if (subject.startsWith(entityDataUris.namespace())) {
+ if (haveNonEntityDataStatements) {
+ munge();
+ }
+ if
(statement.getPredicate().stringValue().equals(SchemaDotOrg.ABOUT)) {
+ entityId = statement.getObject().stringValue();
+ entityId = entityId.substring(entityId.lastIndexOf('/') +
1);
+ }
+ statements.add(statement);
+ return;
+ }
+ if (subject.equals(Ontology.DUMP)) {
+ /*
+ * Just pipe dump statements strait through.
+ */
+ next.handleStatement(statement);
+ return;
+ }
+ haveNonEntityDataStatements = true;
+ statements.add(statement);
+ }
+
+ @Override
+ public void endRDF() throws RDFHandlerException {
+ munge();
+ next.endRDF();
+ }
+
+ private void munge() throws RDFHandlerException {
+ try {
+ log.debug("Munging {}", entityId);
+ munger.munge(entityId, statements);
+ for (Statement statement : statements) {
+ next.handleStatement(statement);
+ }
+ } catch (ContainedException e) {
+ log.warn("Error munging {}", entityId, e);
+ }
+ statements.clear();
+ haveNonEntityDataStatements = false;
+ }
+ }
+
+ /**
+ * Very simple HTTP server that only knows how to spit out the result of
the
+ * munge. Useful because tools like Blazegraph can import from any URI so
+ * this removes the need to create a temporary file.
+ */
+ public static class Httpd extends NanoHTTPD {
+ private final EntityData entityDataUris;
+ private final Entity entityUris;
+ private final Munger munger;
+ private final String source;
+
+ public Httpd(int port, EntityData entityDataUris, Entity entityUris,
Munger munger, String source) {
+ super(port);
+ this.entityDataUris = entityDataUris;
+ this.entityUris = entityUris;
+ this.munger = munger;
+ this.source = source;
+ }
+
+ @Override
+ public Response serve(IHTTPSession session) {
+ try {
+ PipedInputStream sentToResponse = new PipedInputStream();
+ Reader from = new
InputStreamReader(CliUtils.inputStream(source), Charsets.UTF_8);
+ final Writer to = new OutputStreamWriter(new
PipedOutputStream(sentToResponse), Charsets.UTF_8);
+ final Munge munge = new Munge(entityDataUris, entityUris,
munger, from, to);
+ Thread thread = new Thread(munge);
+
thread.setUncaughtExceptionHandler(CliUtils.loggingUncaughtExceptionHandler("Error
serving rdf", log));
+ thread.start();
+ Response response = new Response(Response.Status.OK, "
application/x-turtle", sentToResponse);
+ response.setChunkedTransfer(true);
+ return response;
+ } catch (IOException e) {
+ log.error("Error serving rdf", e);
+ return new Response(Response.Status.INTERNAL_ERROR,
"text/plain", "internal server error");
+ }
+ }
+ }
+}
diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/Update.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/Update.java
index bf532f5..3ae9107 100644
--- a/tools/src/main/java/org/wikidata/query/rdf/tool/Update.java
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/Update.java
@@ -1,6 +1,5 @@
package org.wikidata.query.rdf.tool;
-import static com.google.common.io.Resources.getResource;
import static java.util.concurrent.TimeUnit.SECONDS;
import static
org.wikidata.query.rdf.tool.wikibase.WikibaseRepository.inputDateFormat;
import static
org.wikidata.query.rdf.tool.wikibase.WikibaseRepository.outputDateFormat;
@@ -8,6 +7,7 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;
@@ -18,10 +18,13 @@
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import org.openrdf.model.Statement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wikidata.query.rdf.common.uri.Entity;
-import org.wikidata.query.rdf.common.uri.EntityData;
+import org.wikidata.query.rdf.tool.CliUtils.BasicOptions;
+import org.wikidata.query.rdf.tool.CliUtils.MungerOptions;
+import org.wikidata.query.rdf.tool.CliUtils.WikibaseOptions;
import org.wikidata.query.rdf.tool.change.Change;
import org.wikidata.query.rdf.tool.change.Change.Batch;
import org.wikidata.query.rdf.tool.change.IdChangeSource;
@@ -32,17 +35,8 @@
import org.wikidata.query.rdf.tool.rdf.RdfRepository;
import org.wikidata.query.rdf.tool.wikibase.WikibaseRepository;
-import ch.qos.logback.classic.LoggerContext;
-import ch.qos.logback.classic.joran.JoranConfigurator;
-import ch.qos.logback.core.joran.spi.JoranException;
-import ch.qos.logback.core.util.StatusPrinter;
-
import com.codahale.metrics.Meter;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-import com.lexicalscope.jewel.cli.ArgumentValidationException;
-import com.lexicalscope.jewel.cli.Cli;
-import com.lexicalscope.jewel.cli.CliFactory;
-import com.lexicalscope.jewel.cli.HelpRequestedException;
import com.lexicalscope.jewel.cli.Option;
/**
@@ -54,15 +48,9 @@
/**
* CLI options for use with JewelCli.
*/
- public static interface Options {
- @Option(shortName = "w", defaultValue = "www.wikidata.org",
description = "Wikidata host")
- String wikidataHost();
-
- @Option(defaultValue = "https", description = "Wikidata url schema")
- String wikidataSchema();
-
- @Option(shortName = "v")
- boolean verbose();
+ public static interface Options extends BasicOptions, MungerOptions,
WikibaseOptions {
+ @Option(defaultValue = "https", description = "Wikidata url scheme")
+ String wikibaseScheme();
@Option(shortName = "s", defaultToNull = true, description = "Start
time in 2015-02-11T17:11:08Z or 20150211170100 format.")
String start();
@@ -73,51 +61,13 @@
@Option(shortName = "u", description = "URL to post updates and
queries.")
String sparqlUrl();
- @Option(longName = "labelLanguage", defaultToNull = true, description
= "Only import labels, aliases, and descriptions in these languages.")
- List<String> labelLanguages();
-
- @Option(longName = "singleLabel", defaultToNull = true, description =
"Always import a single label and description using the languages specified as
a fallback list. If there aren't any matching labels or descriptions them the
entity itself is used as the label or description.")
- List<String> singleLabelLanguages();
-
- @Option(description = "Skip site links")
- boolean skipSiteLinks();
-
- @Option(helpRequest = true)
- boolean help();
-
@Option(shortName = "d", defaultValue = "10", description = "Poll
delay when no updates found")
int pollDelay();
}
public static void main(String args[]) {
- Options options;
- Cli<Options> cli = CliFactory.createCli(Options.class);
-
- try {
- options = cli.parseArguments(args);
- } catch (HelpRequestedException e) {
- log.info(cli.getHelpMessage());
- return;
- } catch (ArgumentValidationException e) {
- log.error("Invalid argument", e);
- log.error(cli.getHelpMessage());
- return;
- }
- if (options.verbose()) {
- log.info("Verbose mode activated");
- // Assumes logback which is pretty safe in main.
- LoggerContext context = (LoggerContext)
LoggerFactory.getILoggerFactory();
- try {
- JoranConfigurator configurator = new JoranConfigurator();
- configurator.setContext(context);
- context.reset();
- configurator.doConfigure(getResource("logback-verbose.xml"));
- } catch (JoranException je) {
- // StatusPrinter will handle this
- }
- StatusPrinter.printInCaseOfErrorsOrWarnings(context);
- }
- WikibaseRepository wikibaseRepository = new
WikibaseRepository(options.wikidataSchema(), options.wikidataHost());
+ Options options = CliUtils.handleOptions(Options.class, args);
+ WikibaseRepository wikibaseRepository = new
WikibaseRepository(options.wikibaseScheme(), options.wikibaseHost());
URI sparqlUri;
try {
sparqlUri = new URI(options.sparqlUrl());
@@ -125,8 +75,7 @@
log.error("Invalid url: " + options.sparqlUrl() + " caused by " +
e.getMessage());
return;
}
- Entity entityUris = new Entity(options.wikidataHost());
- EntityData entityDataUris = new EntityData(options.wikidataHost());
+ Entity entityUris = new Entity(options.wikibaseHost());
RdfRepository rdfRepository = new RdfRepository(sparqlUri, entityUris);
Change.Source<? extends Change.Batch> changeSource =
buildChangeSource(options, rdfRepository,
wikibaseRepository);
@@ -137,16 +86,7 @@
ExecutorService executor = new ThreadPoolExecutor(10, 10, 0,
TimeUnit.SECONDS,
new LinkedBlockingQueue<Runnable>(), threadFactory.build());
- Munger munger = new Munger(entityDataUris, entityUris);
- if (options.skipSiteLinks()) {
- munger = munger.removeSiteLinks();
- }
- if (options.labelLanguages() != null) {
- munger = munger.limitLabelLanguages(options.labelLanguages());
- }
- if (options.singleLabelLanguages() != null) {
- munger = munger.singleLabelMode(options.singleLabelLanguages());
- }
+ Munger munger = CliUtils.mungerFromOptions(options);
new Update<>(changeSource, wikibaseRepository, rdfRepository, munger,
executor).
setPollDelay(options.pollDelay()).
@@ -312,8 +252,9 @@
log.debug("RDF repository already has this revision, skipping.");
return;
}
- rdfRepository.sync(change.entityId(),
- munger.munge(change.entityId(),
wikibase.fetchRdfForEntity(change.entityId())));
+ Collection<Statement> statements =
wikibase.fetchRdfForEntity(change.entityId());
+ munger.munge(change.entityId(), statements);
+ rdfRepository.sync(change.entityId(), statements);
updateMeter.mark();
}
diff --git a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Munger.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Munger.java
index f81c219..f941f88 100644
--- a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Munger.java
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Munger.java
@@ -113,16 +113,15 @@
* RDF exports into a more queryable form.
*
* @param statements statements to munge
- * @return a reference to statements
*/
- public Collection<Statement> munge(String entityId, Collection<Statement>
statements) throws ContainedException {
+ public void munge(String entityId, Collection<Statement> statements)
throws ContainedException {
if (statements.isEmpty()) {
// Empty collection is a delete.
- return statements;
+ return;
}
MungeOperation op = new MungeOperation(entityId, statements);
op.munge();
- return op.statements;
+ return;
}
/**
diff --git
a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Normalizer.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Normalizer.java
new file mode 100644
index 0000000..1e040df
--- /dev/null
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/Normalizer.java
@@ -0,0 +1,55 @@
+package org.wikidata.query.rdf.tool.rdf;
+
+import org.openrdf.model.Statement;
+import org.openrdf.model.impl.StatementImpl;
+import org.openrdf.model.impl.URIImpl;
+import org.openrdf.rio.RDFHandler;
+import org.openrdf.rio.RDFHandlerException;
+
+/**
+ * An RDFHandler that wraps another handler normalizing any of the (currently)
+ * rather different wikidata output forms into a single form.
+ */
+public class Normalizer implements RDFHandler {
+ private final RDFHandler next;
+
+ public Normalizer(RDFHandler next) {
+ this.next = next;
+ }
+
+ @Override
+ public void startRDF() throws RDFHandlerException {
+ next.startRDF();
+ }
+
+ @Override
+ public void endRDF() throws RDFHandlerException {
+ next.endRDF();
+ }
+
+ @Override
+ public void handleNamespace(String prefix, String uri) throws
RDFHandlerException {
+ next.handleNamespace(prefix, uri);
+ }
+
+ @Override
+ public void handleComment(String comment) throws RDFHandlerException {
+ next.handleComment(comment);
+ }
+
+ @Override
+ public void handleStatement(Statement statement) throws
RDFHandlerException {
+ String subject = statement.getSubject().stringValue();
+ /*
+ * Some dumps contained a versioned ontology but those are getting
+ * unversioned soon.
+ */
+ if (subject.contains("ontology-0.0.1")) {
+ subject = subject.replace("ontology-0.0.1", "ontology");
+ }
+ if (!statement.getSubject().stringValue().equals(subject)) {
+ statement = new StatementImpl(new URIImpl(subject),
statement.getPredicate(), statement.getObject());
+ }
+ next.handleStatement(statement);
+ }
+}
diff --git
a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java
b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java
index a29653b..aabbc60 100644
--- a/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java
+++ b/tools/src/main/java/org/wikidata/query/rdf/tool/rdf/RdfRepository.java
@@ -279,6 +279,8 @@
private static final Pattern ELAPSED_LINE =
Pattern.compile("><p>totalElapsed=[^ ]+ elapsed=([^<]+)</p");
private static final Pattern COMMIT_LINE = Pattern
.compile("><hr><p>COMMIT: totalElapsed=[^ ]+ commitTime=[^ ]+
mutationCount=([^<]+)</p");
+ private static final Pattern BULK_UPDATE_LINE = Pattern
+ .compile("<\\?xml version=\"1.0\"\\?><data modified=\"(\\d+)\"
milliseconds=\"(\\d+)\"/>");
@Override
public String acceptHeader() {
@@ -294,11 +296,19 @@
Matcher m = ELAPSED_LINE.matcher(line);
if (m.matches()) {
log.trace("elapsed = {}", m.group(1));
+ continue;
}
m = COMMIT_LINE.matcher(line);
if (m.matches()) {
- log.trace("mutation count = {}", m.group(1));
+ log.debug("mutation count = {}", m.group(1));
mutationCount = Integer.valueOf(m.group(1));
+ continue;
+ }
+ m = BULK_UPDATE_LINE.matcher(line);
+ if (m.matches()) {
+ log.debug("bulk updated {} items in {} millis",
m.group(1), m.group(2));
+ mutationCount = Integer.valueOf(m.group(1));
+ continue;
}
}
}
diff --git
a/tools/src/test/java/org/wikidata/query/rdf/tool/AbstractRdfRepositoryIntegrationTestBase.java
b/tools/src/test/java/org/wikidata/query/rdf/tool/AbstractRdfRepositoryIntegrationTestBase.java
index da2ef70..f48a09e 100644
---
a/tools/src/test/java/org/wikidata/query/rdf/tool/AbstractRdfRepositoryIntegrationTestBase.java
+++
b/tools/src/test/java/org/wikidata/query/rdf/tool/AbstractRdfRepositoryIntegrationTestBase.java
@@ -6,6 +6,7 @@
import org.junit.Before;
import org.junit.runner.RunWith;
import org.wikidata.query.rdf.common.uri.Entity;
+import org.wikidata.query.rdf.common.uri.EntityData;
import org.wikidata.query.rdf.tool.rdf.RdfRepository;
import com.carrotsearch.randomizedtesting.RandomizedRunner;
@@ -17,10 +18,20 @@
*/
@RunWith(RandomizedRunner.class)
public abstract class AbstractRdfRepositoryIntegrationTestBase extends
RandomizedTest {
- protected final Entity entityUris = Entity.WIKIDATA;
+ protected final EntityData entityDataUris;
+ protected final Entity entityUris;
protected final RdfRepositoryForTesting rdfRepository;
+ /**
+ * Build the test against prod wikidata.
+ */
public AbstractRdfRepositoryIntegrationTestBase() {
+ this(EntityData.WIKIDATA, Entity.WIKIDATA);
+ }
+
+ public AbstractRdfRepositoryIntegrationTestBase(EntityData entityDataUris,
Entity entityUris) {
+ this.entityDataUris = entityDataUris;
+ this.entityUris = entityUris;
try {
rdfRepository = new RdfRepositoryForTesting(new
URI("http://localhost:9999/bigdata/namespace/kb/sparql"),
entityUris);
@@ -49,5 +60,13 @@
public void clear() {
execute("update", RdfRepository.UPDATE_COUNT_RESPONSE, "CLEAR
DEFAULT");
}
+
+ /**
+ * Loads a uri into this rdf repository. Uses Blazegraph's update with
+ * uri's feature.
+ */
+ public int loadUrl(String uri) {
+ return execute("uri", RdfRepository.UPDATE_COUNT_RESPONSE, uri);
+ }
}
}
diff --git
a/tools/src/test/java/org/wikidata/query/rdf/tool/MungeIntegrationTest.java
b/tools/src/test/java/org/wikidata/query/rdf/tool/MungeIntegrationTest.java
new file mode 100644
index 0000000..3ba2976
--- /dev/null
+++ b/tools/src/test/java/org/wikidata/query/rdf/tool/MungeIntegrationTest.java
@@ -0,0 +1,42 @@
+package org.wikidata.query.rdf.tool;
+
+import java.io.IOException;
+
+import org.junit.Test;
+import org.wikidata.query.rdf.common.uri.Entity;
+import org.wikidata.query.rdf.common.uri.EntityData;
+import org.wikidata.query.rdf.common.uri.Ontology;
+import org.wikidata.query.rdf.common.uri.RDFS;
+import org.wikidata.query.rdf.common.uri.SchemaDotOrg;
+import org.wikidata.query.rdf.tool.rdf.Munger;
+
+import com.google.common.io.Resources;
+
+/**
+ * Tests the munger that loads dumps.
+ */
+public class MungeIntegrationTest extends
AbstractRdfRepositoryIntegrationTestBase {
+ public MungeIntegrationTest() {
+ super(new EntityData("test.wikidata.org"), new
Entity("test.wikidata.org"));
+ }
+
+ /**
+ * Loads a truncated version of a test dump from test wikidata.
+ */
+ @Test
+ public void loadTest() throws IOException {
+ String source = Resources.getResource(MungeIntegrationTest.class,
"test.ttl").toString();
+ Munge.Httpd http = new Munge.Httpd(10999, entityDataUris, entityUris,
+ new Munger(entityDataUris, entityUris).singleLabelMode("en"),
source);
+ http.start();
+ try {
+ assertEquals(907, rdfRepository.loadUrl("http://localhost:10999"));
+ } finally {
+ http.stop();
+ }
+ assertTrue(rdfRepository.ask(RDFS.prefixes(entityUris.prefixes(new
StringBuilder()))
+ .append("ASK { entity:Q10 rdfs:label \"Wikidata\"@en
}").toString()));
+ assertTrue(rdfRepository.ask(SchemaDotOrg.prefix(Ontology.prefix(new
StringBuilder()))
+ .append("ASK { ontology:Dump schema:dateModified
\"2015-04-02T10:54:56Z\"^^xsd:dateTime }").toString()));
+ }
+}
diff --git a/tools/src/test/java/org/wikidata/query/rdf/tool/test.ttl
b/tools/src/test/java/org/wikidata/query/rdf/tool/test.ttl
new file mode 100644
index 0000000..99c696d
--- /dev/null
+++ b/tools/src/test/java/org/wikidata/query/rdf/tool/test.ttl
@@ -0,0 +1,1979 @@
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix wikibase: <http://www.wikidata.org/ontology-0.0.1#> .
+@prefix wdt: <http://test.wikidata.org/entity/assert/> .
+@prefix v: <http://test.wikidata.org/entity/value/> .
+@prefix q: <http://test.wikidata.org/entity/qualifier/> .
+@prefix s: <http://test.wikidata.org/entity/statement/> .
+@prefix ref: <http://test.wikidata.org/entity/reference/> .
+@prefix data: <http://test.wikidata.org/wiki/Special:EntityData/> .
+@prefix entity: <http://test.wikidata.org/entity/> .
+@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
+@prefix schema: <http://schema.org/> .
+@prefix cc: <http://creativecommons.org/ns#> .
+@prefix geo: <http://www.opengis.net/ont/geosparql#> .
+@prefix prov: <http://www.w3.org/ns/prov#> .
+
+wikibase:Dump a schema:Dataset ;
+ cc:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
+ schema:softwareVersion "0.0.1" ;
+ schema:dateModified "2015-04-02T10:54:56Z"^^xsd:dateTime .
+
+data:Q9 schema:version "7177"^^xsd:integer ;
+ schema:dateModified "2014-07-27T12:15:09Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q9 .
+
+entity:Q9 a wikibase:Item ;
+ rdfs:label "History of cartography"@en ;
+ skos:prefLabel "History of cartography"@en ;
+ schema:name "History of cartography"@en ;
+ rdfs:label "Planet"@de ;
+ skos:prefLabel "Planet"@de ;
+ schema:name "Planet"@de ;
+ rdfs:label "test"@fr ;
+ skos:prefLabel "test"@fr ;
+ schema:name "test"@fr ;
+ rdfs:label "testita2"@it ;
+ skos:prefLabel "testita2"@it ;
+ schema:name "testita2"@it ;
+ schema:description "desc"@en ;
+ skos:altLabel "Test"@en .
+
+<http://en.wikipedia.org/wiki/History%20of%20cartography> a schema:Article ;
+ schema:about entity:Q9 ;
+ schema:inLanguage "en" .
+
+data:P9 schema:version "183"^^xsd:integer ;
+ schema:dateModified "2013-06-08T16:02:44Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:P9 .
+
+entity:P9 a wikibase:Property ;
+ wikibase:propertyType "wikibase-item" ;
+ rdfs:label "imported from"@en ;
+ skos:prefLabel "imported from"@en ;
+ schema:name "imported from"@en .
+
+data:Q10 schema:version "7397"^^xsd:integer ;
+ schema:dateModified "2014-08-10T00:09:48Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q10 .
+
+entity:Q10 a wikibase:Item ;
+ rdfs:label "Wikidata"@en ;
+ skos:prefLabel "Wikidata"@en ;
+ schema:name "Wikidata"@en ;
+ rdfs:label "Wikidata"@de ;
+ skos:prefLabel "Wikidata"@de ;
+ schema:name "Wikidata"@de ;
+ rdfs:label "维基数据"@zh-hans ;
+ skos:prefLabel "维基数据"@zh-hans ;
+ schema:name "维基数据"@zh-hans ;
+ rdfs:label "Wikidata"@da ;
+ skos:prefLabel "Wikidata"@da ;
+ schema:name "Wikidata"@da ;
+ rdfs:label "Wikidata"@de-ch ;
+ skos:prefLabel "Wikidata"@de-ch ;
+ schema:name "Wikidata"@de-ch ;
+ rdfs:label "Wikidata"@en-ca ;
+ skos:prefLabel "Wikidata"@en-ca ;
+ schema:name "Wikidata"@en-ca ;
+ rdfs:label "Wikidata"@en-gb ;
+ skos:prefLabel "Wikidata"@en-gb ;
+ schema:name "Wikidata"@en-gb ;
+ rdfs:label "Vikidatumoj"@eo ;
+ skos:prefLabel "Vikidatumoj"@eo ;
+ schema:name "Vikidatumoj"@eo ;
+ rdfs:label "Wikidata"@es ;
+ skos:prefLabel "Wikidata"@es ;
+ schema:name "Wikidata"@es ;
+ rdfs:label "Wikidata"@fi ;
+ skos:prefLabel "Wikidata"@fi ;
+ schema:name "Wikidata"@fi ;
+ rdfs:label "Wikidata"@fr ;
+ skos:prefLabel "Wikidata"@fr ;
+ schema:name "Wikidata"@fr ;
+ rdfs:label "Wikidata"@it ;
+ skos:prefLabel "Wikidata"@it ;
+ schema:name "Wikidata"@it ;
+ rdfs:label "Wikidata"@nl ;
+ skos:prefLabel "Wikidata"@nl ;
+ schema:name "Wikidata"@nl ;
+ rdfs:label "Wikidata"@nb ;
+ skos:prefLabel "Wikidata"@nb ;
+ schema:name "Wikidata"@nb ;
+ rdfs:label "Wikidata"@pt ;
+ skos:prefLabel "Wikidata"@pt ;
+ schema:name "Wikidata"@pt ;
+ rdfs:label "Wikidata"@pt-br ;
+ skos:prefLabel "Wikidata"@pt-br ;
+ schema:name "Wikidata"@pt-br ;
+ rdfs:label "Викиданные"@ru ;
+ skos:prefLabel "Викиданные"@ru ;
+ schema:name "Викиданные"@ru ;
+ rdfs:label "维基数据"@zh ;
+ skos:prefLabel "维基数据"@zh ;
+ schema:name "维基数据"@zh ;
+ rdfs:label "Wikidata"@af ;
+ skos:prefLabel "Wikidata"@af ;
+ schema:name "Wikidata"@af ;
+ rdfs:label "ويكي بيانات"@ar ;
+ skos:prefLabel "ويكي بيانات"@ar ;
+ schema:name "ويكي بيانات"@ar ;
+ rdfs:label "ويكى داتا"@arz ;
+ skos:prefLabel "ويكى داتا"@arz ;
+ schema:name "ويكى داتا"@arz ;
+ rdfs:label "Vikiverilənlər"@az ;
+ skos:prefLabel "Vikiverilənlər"@az ;
+ schema:name "Vikiverilənlər"@az ;
+ rdfs:label "Вікідадзеныя"@be ;
+ skos:prefLabel "Вікідадзеныя"@be ;
+ schema:name "Вікідадзеныя"@be ;
+ rdfs:label "Уикиданни"@bg ;
+ skos:prefLabel "Уикиданни"@bg ;
+ schema:name "Уикиданни"@bg ;
+ rdfs:label "উইকিউপাত্ত"@bn ;
+ skos:prefLabel "উইকিউপাত্ত"@bn ;
+ schema:name "উইকিউপাত্ত"@bn ;
+ rdfs:label "Wikipodaci"@bs ;
+ skos:prefLabel "Wikipodaci"@bs ;
+ schema:name "Wikipodaci"@bs ;
+ rdfs:label "Wikidata"@ca ;
+ skos:prefLabel "Wikidata"@ca ;
+ schema:name "Wikidata"@ca ;
+ rdfs:label "維基數據"@cdo ;
+ skos:prefLabel "維基數據"@cdo ;
+ schema:name "維基數據"@cdo ;
+ rdfs:label "Wikidata"@cs ;
+ skos:prefLabel "Wikidata"@cs ;
+ schema:name "Wikidata"@cs ;
+ rdfs:label "Wiciddata"@cy ;
+ skos:prefLabel "Wiciddata"@cy ;
+ schema:name "Wiciddata"@cy ;
+ rdfs:label "Wikidata"@et ;
+ skos:prefLabel "Wikidata"@et ;
+ schema:name "Wikidata"@et ;
+ rdfs:label "Wikidata"@eu ;
+ skos:prefLabel "Wikidata"@eu ;
+ schema:name "Wikidata"@eu ;
+ rdfs:label "ویکیداده"@fa ;
+ skos:prefLabel "ویکیداده"@fa ;
+ schema:name "ویکیداده"@fa ;
+ rdfs:label "Wikidata"@gl ;
+ skos:prefLabel "Wikidata"@gl ;
+ schema:name "Wikidata"@gl ;
+ rdfs:label "ויקינתונים"@he ;
+ skos:prefLabel "ויקינתונים"@he ;
+ schema:name "ויקינתונים"@he ;
+ rdfs:label "Վիքիշտեմարան"@hy ;
+ skos:prefLabel "Վիքիշտեմարան"@hy ;
+ schema:name "Վիքիշտեմարան"@hy ;
+ rdfs:label "Wikidata"@id ;
+ skos:prefLabel "Wikidata"@id ;
+ schema:name "Wikidata"@id ;
+ rdfs:label "Wikidata"@ilo ;
+ skos:prefLabel "Wikidata"@ilo ;
+ schema:name "Wikidata"@ilo ;
+ rdfs:label "Wikidata"@is ;
+ skos:prefLabel "Wikidata"@is ;
+ schema:name "Wikidata"@is ;
+ rdfs:label "ウィキデータ"@ja ;
+ skos:prefLabel "ウィキデータ"@ja ;
+ schema:name "ウィキデータ"@ja ;
+ rdfs:label "ვიკიმონაცემები"@ka ;
+ skos:prefLabel "ვიკიმონაცემები"@ka ;
+ schema:name "ვიკიმონაცემები"@ka ;
+ rdfs:label "위키데이터"@ko ;
+ skos:prefLabel "위키데이터"@ko ;
+ schema:name "위키데이터"@ko ;
+ rdfs:label "Vikidati"@lv ;
+ skos:prefLabel "Vikidati"@lv ;
+ schema:name "Vikidati"@lv ;
+ rdfs:label "Википодатоци"@mk ;
+ skos:prefLabel "Википодатоци"@mk ;
+ schema:name "Википодатоци"@mk ;
+ rdfs:label "വിക്കിഡാറ്റ"@ml ;
+ skos:prefLabel "വിക്കിഡാറ്റ"@ml ;
+ schema:name "വിക്കിഡാറ്റ"@ml ;
+ rdfs:label "Wikidata"@ms ;
+ skos:prefLabel "Wikidata"@ms ;
+ schema:name "Wikidata"@ms ;
+ rdfs:label "Wikidata"@oc ;
+ skos:prefLabel "Wikidata"@oc ;
+ schema:name "Wikidata"@oc ;
+ rdfs:label "Wikidata"@pam ;
+ skos:prefLabel "Wikidata"@pam ;
+ schema:name "Wikidata"@pam ;
+ rdfs:label "Wikidane"@pl ;
+ skos:prefLabel "Wikidane"@pl ;
+ schema:name "Wikidane"@pl ;
+ rdfs:label "Wikidata"@sco ;
+ skos:prefLabel "Wikidata"@sco ;
+ schema:name "Wikidata"@sco ;
+ rdfs:label "Wikidata"@sh ;
+ skos:prefLabel "Wikidata"@sh ;
+ schema:name "Wikidata"@sh ;
+ rdfs:label "Wikiúdaje"@sk ;
+ skos:prefLabel "Wikiúdaje"@sk ;
+ schema:name "Wikiúdaje"@sk ;
+ rdfs:label "Wikipodatki"@sl ;
+ skos:prefLabel "Wikipodatki"@sl ;
+ schema:name "Wikipodatki"@sl ;
+ rdfs:label "Википодаци"@sr ;
+ skos:prefLabel "Википодаци"@sr ;
+ schema:name "Википодаци"@sr ;
+ rdfs:label "วิกิสนเทศ"@th ;
+ skos:prefLabel "วิกิสนเทศ"@th ;
+ schema:name "วิกิสนเทศ"@th ;
+ rdfs:label "Vikiveri"@tr ;
+ skos:prefLabel "Vikiveri"@tr ;
+ schema:name "Vikiveri"@tr ;
+ rdfs:label "Wikidata"@tt ;
+ skos:prefLabel "Wikidata"@tt ;
+ schema:name "Wikidata"@tt ;
+ rdfs:label "Вікідані"@uk ;
+ skos:prefLabel "Вікідані"@uk ;
+ schema:name "Вікідані"@uk ;
+ rdfs:label "ویکی ڈیٹا"@ur ;
+ skos:prefLabel "ویکی ڈیٹا"@ur ;
+ schema:name "ویکی ڈیٹا"@ur ;
+ rdfs:label "Wikidata"@vec ;
+ skos:prefLabel "Wikidata"@vec ;
+ schema:name "Wikidata"@vec ;
+ rdfs:label "Wikidata"@vi ;
+ skos:prefLabel "Wikidata"@vi ;
+ schema:name "Wikidata"@vi ;
+ rdfs:label "Wikidata"@war ;
+ skos:prefLabel "Wikidata"@war ;
+ schema:name "Wikidata"@war ;
+ rdfs:label "維基數據"@zh-yue ;
+ skos:prefLabel "維基數據"@zh-yue ;
+ schema:name "維基數據"@zh-yue ;
+ rdfs:label "維基數據"@yue ;
+ skos:prefLabel "維基數據"@yue ;
+ schema:name "維基數據"@yue ;
+ schema:description "free knowledge database hosted by Wikimedia and
edited by volunteers"@en,
+ "freie Wissensdatenbank"@de,
+ "自由的知识库"@zh-hans ;
+ wdt:P33 <http://test.wikidata.org> ;
+ entity:P33 s:Q10-623409b4-4857-528e-dc7a-dbadd8a8ff43 .
+
+<http://da.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "da" .
+
+<http://de.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "de" .
+
+<http://en.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "en" .
+
+<http://eo.wikipedia.org/wiki/Vikidatumoj> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "eo" .
+
+<http://es.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "es" .
+
+<http://fi.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "fi" .
+
+<http://fr.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "fr" .
+
+<http://it.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "it" .
+
+<http://nl.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "nl" .
+
+<http://no.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "no" .
+
+<http://pt.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "pt" .
+
+<http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ru" .
+
+<http://simple.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "simple" .
+
+<http://zh.wikipedia.org/wiki/%E7%BB%B4%E5%9F%BA%E6%95%B0%E6%8D%AE> a
schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "zh" .
+
+<http://af.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "af" .
+
+<http://ar.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%8A%20%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ar" .
+
+<http://arz.wikipedia.org/wiki/%D9%88%D9%8A%D9%83%D9%89%20%D8%AF%D8%A7%D8%AA%D8%A7>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "arz" .
+
+<http://az.wikipedia.org/wiki/Vikiveril%C9%99nl%C9%99r> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "az" .
+
+<http://be.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%B4%D0%B0%D0%B4%D0%B7%D0%B5%D0%BD%D1%8B%D1%8F>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "be" .
+
+<http://bg.wikipedia.org/wiki/%D0%A3%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D0%B8>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "bg" .
+
+<http://bn.wikipedia.org/wiki/%E0%A6%89%E0%A6%87%E0%A6%95%E0%A6%BF%E0%A6%89%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A7%8D%E0%A6%A4>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "bn" .
+
+<http://bs.wikipedia.org/wiki/Wikipodaci> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "bs" .
+
+<http://ca.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ca" .
+
+<http://cdo.wikipedia.org/wiki/%E7%B6%AD%E5%9F%BA%E6%95%B8%E6%93%9A> a
schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "cdo" .
+
+<http://cs.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "cs" .
+
+<http://cy.wikipedia.org/wiki/Wiciddata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "cy" .
+
+<http://et.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "et" .
+
+<http://eu.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "eu" .
+
+<http://fa.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D8%AF%D8%A7%D8%AF%D9%87>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "fa" .
+
+<http://gl.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "gl" .
+
+<http://he.wikipedia.org/wiki/%D7%95%D7%99%D7%A7%D7%99%D7%A0%D7%AA%D7%95%D7%A0%D7%99%D7%9D>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "he" .
+
+<http://hy.wikipedia.org/wiki/%D5%8E%D5%AB%D6%84%D5%AB%D5%B7%D5%BF%D5%A5%D5%B4%D5%A1%D6%80%D5%A1%D5%B6>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "hy" .
+
+<http://id.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "id" .
+
+<http://ilo.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ilo" .
+
+<http://is.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "is" .
+
+<http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%87%E3%83%BC%E3%82%BF>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ja" .
+
+<http://ka.wikipedia.org/wiki/%E1%83%95%E1%83%98%E1%83%99%E1%83%98%E1%83%9B%E1%83%9D%E1%83%9C%E1%83%90%E1%83%AA%E1%83%94%E1%83%9B%E1%83%94%E1%83%91%E1%83%98>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ka" .
+
+<http://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%8D%B0%EC%9D%B4%ED%84%B0> a
schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ko" .
+
+<http://lv.wikipedia.org/wiki/Vikidati> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "lv" .
+
+<http://mk.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%BE%D0%B4%D0%B0%D1%82%D0%BE%D1%86%D0%B8>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "mk" .
+
+<http://ml.wikipedia.org/wiki/%E0%B4%B5%E0%B4%BF%E0%B4%95%E0%B5%8D%E0%B4%95%E0%B4%BF%E0%B4%A1%E0%B4%BE%E0%B4%B1%E0%B5%8D%E0%B4%B1>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ml" .
+
+<http://ms.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ms" .
+
+<http://oc.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "oc" .
+
+<http://pam.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "pam" .
+
+<http://pl.wikipedia.org/wiki/Wikidane> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "pl" .
+
+<http://sco.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "sco" .
+
+<http://sh.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "sh" .
+
+<http://sk.wikipedia.org/wiki/Wiki%C3%BAdaje> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "sk" .
+
+<http://sl.wikipedia.org/wiki/Wikipodatki> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "sl" .
+
+<http://sr.wikipedia.org/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%BE%D0%B4%D0%B0%D1%86%D0%B8>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "sr" .
+
+<http://th.wikipedia.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%81%E0%B8%B4%E0%B8%AA%E0%B8%99%E0%B9%80%E0%B8%97%E0%B8%A8>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "th" .
+
+<http://tr.wikipedia.org/wiki/Vikiveri> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "tr" .
+
+<http://tt.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "tt" .
+
+<http://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%B4%D0%B0%D0%BD%D1%96>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "uk" .
+
+<http://ur.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%20%DA%88%DB%8C%D9%B9%D8%A7>
a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "ur" .
+
+<http://vec.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "vec" .
+
+<http://vi.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "vi" .
+
+<http://war.wikipedia.org/wiki/Wikidata> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "war" .
+
+<http://zh-yue.wikipedia.org/wiki/%E7%B6%AD%E5%9F%BA%E6%95%B8%E6%93%9A> a
schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "zh-yue" .
+
+<http://test.wikidata.org/wiki/Q10> a schema:Article ;
+ schema:about entity:Q10 ;
+ schema:inLanguage "en" .
+
+s:Q10-623409b4-4857-528e-dc7a-dbadd8a8ff43 a wikibase:Statement ;
+ v:P33 <http://test.wikidata.org> ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+data:Q11 schema:version "7191"^^xsd:integer ;
+ schema:dateModified "2014-07-27T13:04:35Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q11 .
+
+entity:Q11 a wikibase:Item ;
+ rdfs:label "Wikipedia"@en ;
+ skos:prefLabel "Wikipedia"@en ;
+ schema:name "Wikipedia"@en ;
+ rdfs:label "Wikipédia"@fr ;
+ skos:prefLabel "Wikipédia"@fr ;
+ schema:name "Wikipédia"@fr ;
+ rdfs:label "Wikipedia"@es ;
+ skos:prefLabel "Wikipedia"@es ;
+ schema:name "Wikipedia"@es ;
+ schema:description "free online encyclopedia that anyone can edit"@en ;
+ wdt:P21 <http://www.wikipedia.org> ;
+ wdt:P125 "Point(33 22)"^^geo:wktLiteral ;
+ wdt:P81 entity:Q272 ;
+ entity:P21 s:q11-5cdf3ae5-40fe-d462-0ae1-5563f3f1e297 ;
+ entity:P125 s:Q11-F87123DD-EE14-4012-A6A4-9A11422CC065 ;
+ entity:P81 s:Q11-67466A3E-AFD1-4883-9791-814D76A71DF8 .
+
+<http://en.wikipedia.org/wiki/Wikipedia> a schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "en" .
+
+<http://zh.wikipedia.org/wiki/%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91> a
schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "zh" .
+
+<http://fr.wikipedia.org/wiki/Wikip%C3%A9dia> a schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "fr" .
+
+<http://de.wikipedia.org/wiki/Wikipedia> a schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "de" .
+
+<http://es.wikipedia.org/wiki/Wikipedia> a schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "es" .
+
+<http://it.wikipedia.org/wiki/Wikipedia> a schema:Article ;
+ schema:about entity:Q11 ;
+ schema:inLanguage "it" .
+
+s:q11-5cdf3ae5-40fe-d462-0ae1-5563f3f1e297 a wikibase:Statement ;
+ v:P21 <http://www.wikipedia.org> ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q11-F87123DD-EE14-4012-A6A4-9A11422CC065 a wikibase:Statement ;
+ v:P125 "Point(33 22)"^^geo:wktLiteral ;
+ v:P125-value v:bf2ab36fb64c0174477c2455da198d2c ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q11-67466A3E-AFD1-4883-9791-814D76A71DF8 a wikibase:Statement ;
+ v:P81 entity:Q272 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+v:bf2ab36fb64c0174477c2455da198d2c a wikibase:Value ;
+ wikibase:geoLatitude "33"^^xsd:decimal ;
+ wikibase:geoLongitude "22"^^xsd:decimal ;
+ wikibase:geoPrecision "1"^^xsd:decimal ;
+ wikibase:geoGlobe <http://www.wikidata.org/entity/Q2> .
+
+data:P12 schema:version "9385"^^xsd:integer ;
+ schema:dateModified "2014-12-19T14:17:34Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:P12 .
+
+entity:P12 a wikibase:Property ;
+ wikibase:propertyType "wikibase-item" ;
+ rdfs:label "shares border with"@en ;
+ skos:prefLabel "shares border with"@en ;
+ schema:name "shares border with"@en ;
+ rdfs:label "objekt-typ-datatyp"@sv ;
+ skos:prefLabel "objekt-typ-datatyp"@sv ;
+ schema:name "objekt-typ-datatyp"@sv ;
+ schema:description "shares border with"@en ;
+ wdt:P93 <https://test.wikidata.org/wiki/Property:P12> ;
+ wdt:P268 "2013-01-01T00:00:00Z"^^xsd:dateTime ;
+ entity:P93 s:P12-c8272682-4bfc-6eb0-7028-fb4ac7e8e82b ;
+ entity:P268 s:P12-ee37a6b9-4681-8a86-7302-dae2cd631f4a .
+
+s:P12-c8272682-4bfc-6eb0-7028-fb4ac7e8e82b a wikibase:Statement ;
+ v:P93 <https://test.wikidata.org/wiki/Property:P12> ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:P12-ee37a6b9-4681-8a86-7302-dae2cd631f4a a wikibase:Statement ;
+ v:P268 "2013-01-01T00:00:00Z"^^xsd:dateTime ;
+ v:P268-value v:5ecc8d72111da6fbcc582342d3205365 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+v:5ecc8d72111da6fbcc582342d3205365 a wikibase:Value ;
+ wikibase:timeTime "+00000002013-00-00T00:00:00Z" ;
+ wikibase:timePrecision "9"^^xsd:integer ;
+ wikibase:timeTimezone "0"^^xsd:integer ;
+ wikibase:timeCalendarModel <http://www.wikidata.org/entity/Q1985727> .
+
+data:Q14 schema:version "7194"^^xsd:integer ;
+ schema:dateModified "2014-07-27T13:06:07Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q14 .
+
+entity:Q14 a wikibase:Item ;
+ rdfs:label "San Diego"@en ;
+ skos:prefLabel "San Diego"@en ;
+ schema:name "San Diego"@en ;
+ rdfs:label "San Diego"@en-ca ;
+ skos:prefLabel "San Diego"@en-ca ;
+ schema:name "San Diego"@en-ca ;
+ rdfs:label "San Diego"@en-gb ;
+ skos:prefLabel "San Diego"@en-gb ;
+ schema:name "San Diego"@en-gb ;
+ rdfs:label "San Diego"@it ;
+ skos:prefLabel "San Diego"@it ;
+ schema:name "San Diego"@it ;
+ rdfs:label "San Diego"@nl ;
+ skos:prefLabel "San Diego"@nl ;
+ schema:name "San Diego"@nl ;
+ rdfs:label "San Diego"@de ;
+ skos:prefLabel "San Diego"@de ;
+ schema:name "San Diego"@de ;
+ rdfs:label "San Diego"@de-ch ;
+ skos:prefLabel "San Diego"@de-ch ;
+ schema:name "San Diego"@de-ch ;
+ rdfs:label "San Diego"@fr ;
+ skos:prefLabel "San Diego"@fr ;
+ schema:name "San Diego"@fr ;
+ rdfs:label "San Diego"@pl ;
+ skos:prefLabel "San Diego"@pl ;
+ schema:name "San Diego"@pl ;
+ rdfs:label "San Diego"@pt ;
+ skos:prefLabel "San Diego"@pt ;
+ schema:name "San Diego"@pt ;
+ rdfs:label "San Diego"@pt-br ;
+ skos:prefLabel "San Diego"@pt-br ;
+ schema:name "San Diego"@pt-br ;
+ rdfs:label "San Diego"@ro ;
+ skos:prefLabel "San Diego"@ro ;
+ schema:name "San Diego"@ro ;
+ rdfs:label "San Diego"@sv ;
+ skos:prefLabel "San Diego"@sv ;
+ schema:name "San Diego"@sv ;
+ schema:description "a city in California"@en ;
+ wdt:P63 "-150000"^^xsd:decimal,
+ "+1234"^^xsd:decimal,
+ "+12345"^^xsd:decimal,
+ "+12.345"^^xsd:decimal,
+ wikibase:Novalue,
+ "+1234"^^xsd:decimal ;
+ wdt:P10 "Point(32.715 -117.1625)"^^geo:wktLiteral ;
+ wdt:P69 "+1"^^xsd:decimal ;
+ wdt:P71 wikibase:Somevalue ;
+ entity:P63 s:Q14-7ca7fe20-4822-63db-200f-055ce04f0e57,
+ s:Q14-568030e7-4a90-7b4e-48c5-3a58d80ebc32,
+ s:Q14-ffcba827-478f-a4e1-bdb1-39f8ac7be416,
+ s:Q14-43fe1754-4952-ceef-d3ca-7e0abe8c62d1,
+ s:Q14-9907765f-4002-95b8-a228-21115ffcf9db,
+ s:Q14-2588f04c-4a41-0b68-0615-1b9c02193d2b,
+ s:Q14-3b260ea8-471d-b6eb-5782-2f7093139e46,
+ s:Q14-af5e714a-4473-e05a-c0a5-37ec5e2a6d63,
+ s:Q14-0dd75a97-476c-ee9c-adf1-570723c8a3f8 ;
+ entity:P10 s:q14-4ffeaaec-4bbe-ff8b-db39-66d9cb22101c ;
+ entity:P69 s:Q14-042C4302-5A9E-495E-A7C3-8157EC28C02E,
+ s:Q14-8AD1E314-05F9-40DD-A5A7-E21B51070C94,
+ s:Q14-0FF6C05D-3DED-43F1-80A0-3BDBDA4A95E4,
+ s:Q14-8cc9ce3f-4465-5e5f-6cce-4fc7313967d2,
+ s:Q14-ADA0CCC1-10DD-4B4C-BAC8-C4405DA61EF1,
+ s:Q14-3CA6FD5A-3289-4055-88D2-F1AC6E13E798,
+ s:Q14-7aadc03b-44b0-4f65-6198-bee60d7a93de ;
+ entity:P71 s:Q14-b4082c40-49c9-1b6c-1973-c7da7b999956 .
+
+<http://en.wikipedia.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "en" .
+
+<http://en.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "en" .
+
+<http://nl.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "nl" .
+
+<http://it.wikivoyage.org/wiki/San%20Diego%20%28California%29> a
schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "it" .
+
+<http://de.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "de" .
+
+<http://fr.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "fr" .
+
+<http://pl.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "pl" .
+
+<http://pt.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "pt" .
+
+<http://ro.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "ro" .
+
+<http://sv.wikivoyage.org/wiki/San%20Diego> a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "sv" .
+
+<http://es.wikipedia.org/wiki/San%20Diego%20%28California%29> a schema:Article
;
+ schema:about entity:Q14 ;
+ schema:inLanguage "es" .
+
+<http://commons.wikimedia.org/wiki/San%20Diego%2C%20California> a
schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "en" .
+
+<http://en.wikisource.org/wiki/San%20Diego%20Land%20Town%20Company%20v.%20Jasper>
a schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "en" .
+
+<http://zh.wikipedia.org/wiki/%E8%81%96%E5%9C%B0%E7%89%99%E5%93%A5> a
schema:Article ;
+ schema:about entity:Q14 ;
+ schema:inLanguage "zh" .
+
+s:Q14-7ca7fe20-4822-63db-200f-055ce04f0e57 a wikibase:Statement ;
+ v:P63 "-150000"^^xsd:decimal ;
+ v:P63-value v:7c981c800a4464b63c818720d579254b ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q14-568030e7-4a90-7b4e-48c5-3a58d80ebc32 a wikibase:Statement ;
+ v:P63 "+1234"^^xsd:decimal ;
+ v:P63-value v:d64d9775421c3d2bc179588b46837a29 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q14-ffcba827-478f-a4e1-bdb1-39f8ac7be416 a wikibase:Statement ;
+ v:P63 "+12345"^^xsd:decimal ;
+ v:P63-value v:5cf7b5f3be01a3e6111a79d18ba7be7c ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q14-43fe1754-4952-ceef-d3ca-7e0abe8c62d1 a wikibase:Statement ;
+ v:P63 "+12.345"^^xsd:decimal ;
+ v:P63-value v:fb6ee2d7a0fbec85c01e0625ac8ca124 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q14-9907765f-4002-95b8-a228-21115ffcf9db a wikibase:Statement ;
+ v:P63 "+12.3450"^^xsd:decimal ;
+ v:P63-value v:12fb348573db2d8a13ecfb23d8639803 ;
+ wikibase:rank wikibase:DeprecatedRank .
+
+s:Q14-2588f04c-4a41-0b68-0615-1b9c02193d2b a wikibase:Statement ;
+ v:P63 wikibase:Novalue ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q14-3b260ea8-471d-b6eb-5782-2f7093139e46 a wikibase:Statement ;
+ v:P63 "+0.00"^^xsd:decimal ;
+ v:P63-value v:d95264dae8710b3f8e1584688ea3f0a8 ;
+ wikibase:rank wikibase:DeprecatedRank .
+
+s:Q14-af5e714a-4473-e05a-c0a5-37ec5e2a6d63 a wikibase:Statement ;
+ v:P63 "+126.5"^^xsd:decimal ;
+ v:P63-value v:394f940eb6b136333bff2e050fede187 ;
+ wikibase:rank wikibase:DeprecatedRank .
+
+s:Q14-0dd75a97-476c-ee9c-adf1-570723c8a3f8 a wikibase:Statement ;
+ v:P63 "+1234"^^xsd:decimal ;
+ v:P63-value v:d64d9775421c3d2bc179588b46837a29 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:q14-4ffeaaec-4bbe-ff8b-db39-66d9cb22101c a wikibase:Statement ;
+ v:P10 "Point(32.715 -117.1625)"^^geo:wktLiteral ;
+ v:P10-value v:dd1a4cb705e33cd129676923939b1747 ;
+ wikibase:rank wikibase:PreferredRank,
+ wikibase:BestRank .
+
+s:Q14-042C4302-5A9E-495E-A7C3-8157EC28C02E a wikibase:Statement ;
+ v:P69 "+1"^^xsd:decimal ;
+ v:P69-value v:75c28912294a055e365a4038f039eee7 ;
+ wikibase:rank wikibase:PreferredRank,
+ wikibase:BestRank .
+
+s:Q14-8AD1E314-05F9-40DD-A5A7-E21B51070C94 a wikibase:Statement ;
+ v:P69 "+0"^^xsd:decimal ;
+ v:P69-value v:1bd4c72ac43b1924aab9b38fef5e4305 ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-0FF6C05D-3DED-43F1-80A0-3BDBDA4A95E4 a wikibase:Statement ;
+ v:P69 "+0"^^xsd:decimal ;
+ v:P69-value v:1bd4c72ac43b1924aab9b38fef5e4305 ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-8cc9ce3f-4465-5e5f-6cce-4fc7313967d2 a wikibase:Statement ;
+ v:P69 "+989"^^xsd:decimal ;
+ v:P69-value v:80b77f8ea48a3a749c557e2f223e1db2 ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-ADA0CCC1-10DD-4B4C-BAC8-C4405DA61EF1 a wikibase:Statement ;
+ v:P69 "+989"^^xsd:decimal ;
+ v:P69-value v:80b77f8ea48a3a749c557e2f223e1db2 ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-3CA6FD5A-3289-4055-88D2-F1AC6E13E798 a wikibase:Statement ;
+ v:P69 "+84"^^xsd:decimal ;
+ v:P69-value v:3867f29c0d46f8b3f92d68d93e9bf27e ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-7aadc03b-44b0-4f65-6198-bee60d7a93de a wikibase:Statement ;
+ v:P69 "+222.2"^^xsd:decimal ;
+ v:P69-value v:3de5f41db1f4f32f932baec49a81e9ef ;
+ wikibase:rank wikibase:NormalRank .
+
+s:Q14-b4082c40-49c9-1b6c-1973-c7da7b999956 a wikibase:Statement ;
+ v:P71 wikibase:Somevalue ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+v:7c981c800a4464b63c818720d579254b a wikibase:Value ;
+ wikibase:quantityAmount "-150000"^^xsd:decimal ;
+ wikibase:quantityUpperBound "-149999"^^xsd:decimal ;
+ wikibase:quantityLowerBound "-150001"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:d64d9775421c3d2bc179588b46837a29 a wikibase:Value ;
+ wikibase:quantityAmount "+1234"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+1235"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+1233"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:5cf7b5f3be01a3e6111a79d18ba7be7c a wikibase:Value ;
+ wikibase:quantityAmount "+12345"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+12346"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+12344"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:fb6ee2d7a0fbec85c01e0625ac8ca124 a wikibase:Value ;
+ wikibase:quantityAmount "+12.345"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+12.346"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+12.344"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:12fb348573db2d8a13ecfb23d8639803 a wikibase:Value ;
+ wikibase:quantityAmount "+12.3450"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+12.3451"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+12.3449"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:d95264dae8710b3f8e1584688ea3f0a8 a wikibase:Value ;
+ wikibase:quantityAmount "+0.00"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+0.01"^^xsd:decimal ;
+ wikibase:quantityLowerBound "-0.01"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:394f940eb6b136333bff2e050fede187 a wikibase:Value ;
+ wikibase:quantityAmount "+126.5"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+126.6"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+126.4"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:dd1a4cb705e33cd129676923939b1747 a wikibase:Value ;
+ wikibase:geoLatitude "32.715"^^xsd:decimal ;
+ wikibase:geoLongitude "-117.1625"^^xsd:decimal ;
+ wikibase:geoPrecision "0.00027777777777778"^^xsd:decimal ;
+ wikibase:geoGlobe <http://www.wikidata.org/entity/Q2> .
+
+v:75c28912294a055e365a4038f039eee7 a wikibase:Value ;
+ wikibase:quantityAmount "+1"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+2"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+0"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:1bd4c72ac43b1924aab9b38fef5e4305 a wikibase:Value ;
+ wikibase:quantityAmount "+0"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+0"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+0"^^xsd:decimal ;
+ wikibase:quantityUnit "+0" .
+
+v:80b77f8ea48a3a749c557e2f223e1db2 a wikibase:Value ;
+ wikibase:quantityAmount "+989"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+990"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+988"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:3867f29c0d46f8b3f92d68d93e9bf27e a wikibase:Value ;
+ wikibase:quantityAmount "+84"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+85"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+83"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:3de5f41db1f4f32f932baec49a81e9ef a wikibase:Value ;
+ wikibase:quantityAmount "+222.2"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+222.3"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+222.1"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+data:Q15 schema:version "7380"^^xsd:integer ;
+ schema:dateModified "2014-08-10T00:02:27Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q15 .
+
+entity:Q15 a wikibase:Item ;
+ rdfs:label "A"@en ;
+ skos:prefLabel "A"@en ;
+ schema:name "A"@en ;
+ rdfs:label "A"@en-ca ;
+ skos:prefLabel "A"@en-ca ;
+ schema:name "A"@en-ca ;
+ rdfs:label "A"@en-gb ;
+ skos:prefLabel "A"@en-gb ;
+ schema:name "A"@en-gb ;
+ rdfs:label "A"@zh ;
+ skos:prefLabel "A"@zh ;
+ schema:name "A"@zh ;
+ rdfs:label "A"@ace ;
+ skos:prefLabel "A"@ace ;
+ schema:name "A"@ace ;
+ rdfs:label "A"@af ;
+ skos:prefLabel "A"@af ;
+ schema:name "A"@af ;
+ rdfs:label "A"@als ;
+ skos:prefLabel "A"@als ;
+ schema:name "A"@als ;
+ rdfs:label "A"@am ;
+ skos:prefLabel "A"@am ;
+ schema:name "A"@am ;
+ rdfs:label "A"@an ;
+ skos:prefLabel "A"@an ;
+ schema:name "A"@an ;
+ rdfs:label "A"@ar ;
+ skos:prefLabel "A"@ar ;
+ schema:name "A"@ar ;
+ rdfs:label "A"@arc ;
+ skos:prefLabel "A"@arc ;
+ schema:name "A"@arc ;
+ rdfs:label "A"@ast ;
+ skos:prefLabel "A"@ast ;
+ schema:name "A"@ast ;
+ rdfs:label "A"@az ;
+ skos:prefLabel "A"@az ;
+ schema:name "A"@az ;
+ rdfs:label "A"@ba ;
+ skos:prefLabel "A"@ba ;
+ schema:name "A"@ba ;
+ rdfs:label "A"@bar ;
+ skos:prefLabel "A"@bar ;
+ schema:name "A"@bar ;
+ rdfs:label "A"@bat-smg ;
+ skos:prefLabel "A"@bat-smg ;
+ schema:name "A"@bat-smg ;
+ rdfs:label "A, літара"@be ;
+ skos:prefLabel "A, літара"@be ;
+ schema:name "A, літара"@be ;
+ rdfs:label "A"@be-x-old ;
+ skos:prefLabel "A"@be-x-old ;
+ schema:name "A"@be-x-old ;
+ rdfs:label "A"@bg ;
+ skos:prefLabel "A"@bg ;
+ schema:name "A"@bg ;
+ rdfs:label "A"@br ;
+ skos:prefLabel "A"@br ;
+ schema:name "A"@br ;
+ rdfs:label "A"@bs ;
+ skos:prefLabel "A"@bs ;
+ schema:name "A"@bs ;
+ rdfs:label "A"@ca ;
+ skos:prefLabel "A"@ca ;
+ schema:name "A"@ca ;
+ rdfs:label "A"@ckb ;
+ skos:prefLabel "A"@ckb ;
+ schema:name "A"@ckb ;
+ rdfs:label "A"@co ;
+ skos:prefLabel "A"@co ;
+ schema:name "A"@co ;
+ rdfs:label "A"@crh ;
+ skos:prefLabel "A"@crh ;
+ schema:name "A"@crh ;
+ rdfs:label "A"@cs ;
+ skos:prefLabel "A"@cs ;
+ schema:name "A"@cs ;
+ rdfs:label "A"@csb ;
+ skos:prefLabel "A"@csb ;
+ schema:name "A"@csb ;
+ rdfs:label "A"@cy ;
+ skos:prefLabel "A"@cy ;
+ schema:name "A"@cy ;
+ rdfs:label "A"@da ;
+ skos:prefLabel "A"@da ;
+ schema:name "A"@da ;
+ rdfs:label "A"@de ;
+ skos:prefLabel "A"@de ;
+ schema:name "A"@de ;
+ rdfs:label "A"@de-ch ;
+ skos:prefLabel "A"@de-ch ;
+ schema:name "A"@de-ch ;
+ rdfs:label "A"@diq ;
+ skos:prefLabel "A"@diq ;
+ schema:name "A"@diq ;
+ rdfs:label "އޭ"@dv ;
+ skos:prefLabel "އޭ"@dv ;
+ schema:name "އޭ"@dv ;
+ rdfs:label "A"@el ;
+ skos:prefLabel "A"@el ;
+ schema:name "A"@el ;
+ rdfs:label "A"@eml ;
+ skos:prefLabel "A"@eml ;
+ schema:name "A"@eml ;
+ rdfs:label "A"@eo ;
+ skos:prefLabel "A"@eo ;
+ schema:name "A"@eo ;
+ rdfs:label "A"@es ;
+ skos:prefLabel "A"@es ;
+ schema:name "A"@es ;
+ rdfs:label "A"@et ;
+ skos:prefLabel "A"@et ;
+ schema:name "A"@et ;
+ rdfs:label "A"@eu ;
+ skos:prefLabel "A"@eu ;
+ schema:name "A"@eu ;
+ rdfs:label "A"@fa ;
+ skos:prefLabel "A"@fa ;
+ schema:name "A"@fa ;
+ rdfs:label "A"@fi ;
+ skos:prefLabel "A"@fi ;
+ schema:name "A"@fi ;
+ rdfs:label "A"@fo ;
+ skos:prefLabel "A"@fo ;
+ schema:name "A"@fo ;
+ rdfs:label "A"@fr ;
+ skos:prefLabel "A"@fr ;
+ schema:name "A"@fr ;
+ rdfs:label "A"@fur ;
+ skos:prefLabel "A"@fur ;
+ schema:name "A"@fur ;
+ rdfs:label "A"@fy ;
+ skos:prefLabel "A"@fy ;
+ schema:name "A"@fy ;
+ rdfs:label "A"@ga ;
+ skos:prefLabel "A"@ga ;
+ schema:name "A"@ga ;
+ rdfs:label "A"@gan ;
+ skos:prefLabel "A"@gan ;
+ schema:name "A"@gan ;
+ rdfs:label "A"@gd ;
+ skos:prefLabel "A"@gd ;
+ schema:name "A"@gd ;
+ rdfs:label "A"@gl ;
+ skos:prefLabel "A"@gl ;
+ schema:name "A"@gl ;
+ rdfs:label "A"@gn ;
+ skos:prefLabel "A"@gn ;
+ schema:name "A"@gn ;
+ rdfs:label "Aittyn"@gv ;
+ skos:prefLabel "Aittyn"@gv ;
+ schema:name "Aittyn"@gv ;
+ rdfs:label "A"@he ;
+ skos:prefLabel "A"@he ;
+ schema:name "A"@he ;
+ rdfs:label "A"@hr ;
+ skos:prefLabel "A"@hr ;
+ schema:name "A"@hr ;
+ rdfs:label "A"@ht ;
+ skos:prefLabel "A"@ht ;
+ schema:name "A"@ht ;
+ rdfs:label "A"@hu ;
+ skos:prefLabel "A"@hu ;
+ schema:name "A"@hu ;
+ rdfs:label "A"@hy ;
+ skos:prefLabel "A"@hy ;
+ schema:name "A"@hy ;
+ rdfs:label "A"@ia ;
+ skos:prefLabel "A"@ia ;
+ schema:name "A"@ia ;
+ rdfs:label "A"@id ;
+ skos:prefLabel "A"@id ;
+ schema:name "A"@id ;
+ rdfs:label "A"@ilo ;
+ skos:prefLabel "A"@ilo ;
+ schema:name "A"@ilo ;
+ rdfs:label "A"@io ;
+ skos:prefLabel "A"@io ;
+ schema:name "A"@io ;
+ rdfs:label "A"@is ;
+ skos:prefLabel "A"@is ;
+ schema:name "A"@is ;
+ rdfs:label "A"@it ;
+ skos:prefLabel "A"@it ;
+ schema:name "A"@it ;
+ rdfs:label "A"@ja ;
+ skos:prefLabel "A"@ja ;
+ schema:name "A"@ja ;
+ rdfs:label "A"@jv ;
+ skos:prefLabel "A"@jv ;
+ schema:name "A"@jv ;
+ rdfs:label "A"@ka ;
+ skos:prefLabel "A"@ka ;
+ schema:name "A"@ka ;
+ rdfs:label "A"@ko ;
+ skos:prefLabel "A"@ko ;
+ schema:name "A"@ko ;
+ rdfs:label "A"@ku ;
+ skos:prefLabel "A"@ku ;
+ schema:name "A"@ku ;
+ rdfs:label "A"@kw ;
+ skos:prefLabel "A"@kw ;
+ schema:name "A"@kw ;
+ rdfs:label "A"@la ;
+ skos:prefLabel "A"@la ;
+ schema:name "A"@la ;
+ rdfs:label "A"@lb ;
+ skos:prefLabel "A"@lb ;
+ schema:name "A"@lb ;
+ rdfs:label "A"@lmo ;
+ skos:prefLabel "A"@lmo ;
+ schema:name "A"@lmo ;
+ rdfs:label "A"@lt ;
+ skos:prefLabel "A"@lt ;
+ schema:name "A"@lt ;
+ rdfs:label "A"@lv ;
+ skos:prefLabel "A"@lv ;
+ schema:name "A"@lv ;
+ rdfs:label "A"@map-bms ;
+ skos:prefLabel "A"@map-bms ;
+ schema:name "A"@map-bms ;
+ rdfs:label "A"@mg ;
+ skos:prefLabel "A"@mg ;
+ schema:name "A"@mg ;
+ rdfs:label "A"@mhr ;
+ skos:prefLabel "A"@mhr ;
+ schema:name "A"@mhr ;
+ rdfs:label "A"@mk ;
+ skos:prefLabel "A"@mk ;
+ schema:name "A"@mk ;
+ rdfs:label "A"@ml ;
+ skos:prefLabel "A"@ml ;
+ schema:name "A"@ml ;
+ rdfs:label "A"@mr ;
+ skos:prefLabel "A"@mr ;
+ schema:name "A"@mr ;
+ rdfs:label "A"@ms ;
+ skos:prefLabel "A"@ms ;
+ schema:name "A"@ms ;
+ rdfs:label "အေ"@my ;
+ skos:prefLabel "အေ"@my ;
+ schema:name "အေ"@my ;
+ rdfs:label "A"@nah ;
+ skos:prefLabel "A"@nah ;
+ schema:name "A"@nah ;
+ rdfs:label "A"@nap ;
+ skos:prefLabel "A"@nap ;
+ schema:name "A"@nap ;
+ rdfs:label "A"@nl ;
+ skos:prefLabel "A"@nl ;
+ schema:name "A"@nl ;
+ rdfs:label "A"@nn ;
+ skos:prefLabel "A"@nn ;
+ schema:name "A"@nn ;
+ rdfs:label "A"@nb ;
+ skos:prefLabel "A"@nb ;
+ schema:name "A"@nb ;
+ rdfs:label "A"@nrm ;
+ skos:prefLabel "A"@nrm ;
+ schema:name "A"@nrm ;
+ rdfs:label "A"@oc ;
+ skos:prefLabel "A"@oc ;
+ schema:name "A"@oc ;
+ rdfs:label "A"@pa ;
+ skos:prefLabel "A"@pa ;
+ schema:name "A"@pa ;
+ rdfs:label "A"@pag ;
+ skos:prefLabel "A"@pag ;
+ schema:name "A"@pag ;
+ rdfs:label "A"@pl ;
+ skos:prefLabel "A"@pl ;
+ schema:name "A"@pl ;
+ rdfs:label "A"@pt ;
+ skos:prefLabel "A"@pt ;
+ schema:name "A"@pt ;
+ rdfs:label "A"@pt-br ;
+ skos:prefLabel "A"@pt-br ;
+ schema:name "A"@pt-br ;
+ rdfs:label "A"@qu ;
+ skos:prefLabel "A"@qu ;
+ schema:name "A"@qu ;
+ rdfs:label "A"@ro ;
+ skos:prefLabel "A"@ro ;
+ schema:name "A"@ro ;
+ rdfs:label "A"@ru ;
+ skos:prefLabel "A"@ru ;
+ schema:name "A"@ru ;
+ rdfs:label "A"@sc ;
+ skos:prefLabel "A"@sc ;
+ schema:name "A"@sc ;
+ rdfs:label "A"@scn ;
+ skos:prefLabel "A"@scn ;
+ schema:name "A"@scn ;
+ rdfs:label "A"@sco ;
+ skos:prefLabel "A"@sco ;
+ schema:name "A"@sco ;
+ rdfs:label "A"@se ;
+ skos:prefLabel "A"@se ;
+ schema:name "A"@se ;
+ rdfs:label "A"@sh ;
+ skos:prefLabel "A"@sh ;
+ schema:name "A"@sh ;
+ rdfs:label "A"@sk ;
+ skos:prefLabel "A"@sk ;
+ schema:name "A"@sk ;
+ rdfs:label "A"@sl ;
+ skos:prefLabel "A"@sl ;
+ schema:name "A"@sl ;
+ rdfs:label "A"@sr ;
+ skos:prefLabel "A"@sr ;
+ schema:name "A"@sr ;
+ rdfs:label "A"@srn ;
+ skos:prefLabel "A"@srn ;
+ schema:name "A"@srn ;
+ rdfs:label "A"@stq ;
+ skos:prefLabel "A"@stq ;
+ schema:name "A"@stq ;
+ rdfs:label "A"@su ;
+ skos:prefLabel "A"@su ;
+ schema:name "A"@su ;
+ rdfs:label "A"@sv ;
+ skos:prefLabel "A"@sv ;
+ schema:name "A"@sv ;
+ rdfs:label "A"@sw ;
+ skos:prefLabel "A"@sw ;
+ schema:name "A"@sw ;
+ rdfs:label "A"@szl ;
+ skos:prefLabel "A"@szl ;
+ schema:name "A"@szl ;
+ rdfs:label "A"@te ;
+ skos:prefLabel "A"@te ;
+ schema:name "A"@te ;
+ rdfs:label "A"@th ;
+ skos:prefLabel "A"@th ;
+ schema:name "A"@th ;
+ rdfs:label "A"@tk ;
+ skos:prefLabel "A"@tk ;
+ schema:name "A"@tk ;
+ rdfs:label "A"@tl ;
+ skos:prefLabel "A"@tl ;
+ schema:name "A"@tl ;
+ rdfs:label "A"@tr ;
+ skos:prefLabel "A"@tr ;
+ schema:name "A"@tr ;
+ rdfs:label "A"@tt ;
+ skos:prefLabel "A"@tt ;
+ schema:name "A"@tt ;
+ rdfs:label "A"@tum ;
+ skos:prefLabel "A"@tum ;
+ schema:name "A"@tum ;
+ rdfs:label "A"@uk ;
+ skos:prefLabel "A"@uk ;
+ schema:name "A"@uk ;
+ rdfs:label "A"@uz ;
+ skos:prefLabel "A"@uz ;
+ schema:name "A"@uz ;
+ rdfs:label "A"@vec ;
+ skos:prefLabel "A"@vec ;
+ schema:name "A"@vec ;
+ rdfs:label "A"@vep ;
+ skos:prefLabel "A"@vep ;
+ schema:name "A"@vep ;
+ rdfs:label "A"@vi ;
+ skos:prefLabel "A"@vi ;
+ schema:name "A"@vi ;
+ rdfs:label "A"@vo ;
+ skos:prefLabel "A"@vo ;
+ schema:name "A"@vo ;
+ rdfs:label "A"@war ;
+ skos:prefLabel "A"@war ;
+ schema:name "A"@war ;
+ rdfs:label "A үзг"@xal ;
+ skos:prefLabel "A үзг"@xal ;
+ schema:name "A үзг"@xal ;
+ rdfs:label "A"@yi ;
+ skos:prefLabel "A"@yi ;
+ schema:name "A"@yi ;
+ rdfs:label "A"@yo ;
+ skos:prefLabel "A"@yo ;
+ schema:name "A"@yo ;
+ rdfs:label "A"@zh-min-nan ;
+ skos:prefLabel "A"@zh-min-nan ;
+ schema:name "A"@zh-min-nan ;
+ rdfs:label "A"@zh-yue ;
+ skos:prefLabel "A"@zh-yue ;
+ schema:name "A"@zh-yue ;
+ rdfs:label "A"@yue ;
+ skos:prefLabel "A"@yue ;
+ schema:name "A"@yue ;
+ schema:description "asdfghjkl"@en ;
+ wdt:P61 "978-2-253-93358-8" ;
+ wdt:P63 "+1212"^^xsd:decimal,
+ "+800000"^^xsd:decimal,
+ "-45"^^xsd:decimal,
+ "+98.2"^^xsd:decimal ;
+ wdt:P72 "2-235-53099-0",
+ "0-441-37388-7" ;
+ entity:P61 s:Q15-4EAA058C-CD28-4D94-A6F1-9E85301F4CD6 ;
+ entity:P63 s:Q15-48c9384c-4f69-b061-e28a-acbc7e9f5162,
+ s:Q15-9c840f65-4ed6-71b3-b813-03834c9a2ce1,
+ s:Q15-bb087c95-4f8f-d83d-702a-2e06d14c916c,
+ s:Q15-eb7bb813-4004-a9a8-4988-a66fb1608e16 ;
+ entity:P72 s:Q15-fbb17f28-452c-9dfc-35af-89d5c869f863,
+ s:Q15-276653CE-F775-4BA0-84BD-A8B9E6BB89A7 .
+
+<http://en.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "en" .
+
+<http://zh.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "zh" .
+
+<http://ace.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ace" .
+
+<http://af.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "af" .
+
+<http://als.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "als" .
+
+<http://am.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "am" .
+
+<http://an.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "an" .
+
+<http://ar.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ar" .
+
+<http://arc.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "arc" .
+
+<http://ast.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ast" .
+
+<http://az.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "az" .
+
+<http://ba.wikipedia.org/wiki/A%20%28%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%20%D1%85%D3%99%D1%80%D0%B5%D1%84%D0%B5%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ba" .
+
+<http://bar.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "bar" .
+
+<http://bat-smg.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "bat-smg" .
+
+<http://be.wikipedia.org/wiki/A%2C%20%D0%BB%D1%96%D1%82%D0%B0%D1%80%D0%B0> a
schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "be" .
+
+<http://be-x-old.wikipedia.org/wiki/A%20%28%D0%BB%D1%96%D1%82%D0%B0%D1%80%D0%B0%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "be-x-old" .
+
+<http://bg.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "bg" .
+
+<http://br.wikipedia.org/wiki/A%20%28lizherenn%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "br" .
+
+<http://bs.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "bs" .
+
+<http://ca.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ca" .
+
+<http://ckb.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ckb" .
+
+<http://co.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "co" .
+
+<http://crh.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "crh" .
+
+<http://cs.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "cs" .
+
+<http://csb.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "csb" .
+
+<http://cy.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "cy" .
+
+<http://da.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "da" .
+
+<http://de.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "de" .
+
+<http://diq.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "diq" .
+
+<http://dv.wikipedia.org/wiki/%DE%87%DE%AD> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "dv" .
+
+<http://el.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "el" .
+
+<http://eml.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "eml" .
+
+<http://eo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "eo" .
+
+<http://es.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "es" .
+
+<http://et.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "et" .
+
+<http://eu.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "eu" .
+
+<http://fa.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fa" .
+
+<http://fi.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fi" .
+
+<http://fo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fo" .
+
+<http://fr.wikipedia.org/wiki/A%20%28lettre%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fr" .
+
+<http://fur.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fur" .
+
+<http://fy.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "fy" .
+
+<http://ga.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ga" .
+
+<http://gan.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "gan" .
+
+<http://gd.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "gd" .
+
+<http://gl.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "gl" .
+
+<http://gn.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "gn" .
+
+<http://gv.wikipedia.org/wiki/Aittyn> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "gv" .
+
+<http://he.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "he" .
+
+<http://hr.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "hr" .
+
+<http://ht.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ht" .
+
+<http://hu.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "hu" .
+
+<http://hy.wikipedia.org/wiki/A%20%28%D5%AC%D5%A1%D5%BF%D5%AB%D5%B6%D5%A1%D5%AF%D5%A1%D5%B6%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "hy" .
+
+<http://ia.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ia" .
+
+<http://id.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "id" .
+
+<http://ilo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ilo" .
+
+<http://io.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "io" .
+
+<http://is.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "is" .
+
+<http://it.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "it" .
+
+<http://ja.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ja" .
+
+<http://jv.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "jv" .
+
+<http://ka.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ka" .
+
+<http://ko.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ko" .
+
+<http://ku.wikipedia.org/wiki/A%20%28t%C3%AEp%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ku" .
+
+<http://kw.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "kw" .
+
+<http://la.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "la" .
+
+<http://lb.wikipedia.org/wiki/A%20%28Buschtaf%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "lb" .
+
+<http://lmo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "lmo" .
+
+<http://lt.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "lt" .
+
+<http://lv.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "lv" .
+
+<http://map-bms.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "map-bms" .
+
+<http://mg.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "mg" .
+
+<http://mhr.wikipedia.org/wiki/A%20%28%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%20%D1%82%D0%B8%D1%88%D1%82%D0%B5%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "mhr" .
+
+<http://mk.wikipedia.org/wiki/A%20%28%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D0%B0%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "mk" .
+
+<http://ml.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ml" .
+
+<http://mr.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "mr" .
+
+<http://ms.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ms" .
+
+<http://my.wikipedia.org/wiki/%E1%80%A1%E1%80%B1%20%28%E1%80%A1%E1%80%80%E1%80%B9%E1%80%81%E1%80%9B%E1%80%AC%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "my" .
+
+<http://nah.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "nah" .
+
+<http://nap.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "nap" .
+
+<http://nl.wikipedia.org/wiki/A%20%28letter%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "nl" .
+
+<http://nn.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "nn" .
+
+<http://no.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "no" .
+
+<http://nrm.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "nrm" .
+
+<http://oc.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "oc" .
+
+<http://pa.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "pa" .
+
+<http://pag.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "pag" .
+
+<http://pl.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "pl" .
+
+<http://pt.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "pt" .
+
+<http://qu.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "qu" .
+
+<http://ro.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ro" .
+
+<http://ru.wikipedia.org/wiki/A%20%28%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D0%B0%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "ru" .
+
+<http://sc.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sc" .
+
+<http://scn.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "scn" .
+
+<http://sco.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sco" .
+
+<http://se.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "se" .
+
+<http://sh.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sh" .
+
+<http://simple.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "simple" .
+
+<http://sk.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sk" .
+
+<http://sl.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sl" .
+
+<http://sr.wikipedia.org/wiki/A%20%28%D1%81%D0%BB%D0%BE%D0%B2%D0%BE%20%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D0%B5%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sr" .
+
+<http://srn.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "srn" .
+
+<http://stq.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "stq" .
+
+<http://su.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "su" .
+
+<http://sv.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sv" .
+
+<http://sw.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "sw" .
+
+<http://szl.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "szl" .
+
+<http://te.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "te" .
+
+<http://th.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "th" .
+
+<http://tk.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "tk" .
+
+<http://tl.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "tl" .
+
+<http://tr.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "tr" .
+
+<http://tt.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "tt" .
+
+<http://tum.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "tum" .
+
+<http://uk.wikipedia.org/wiki/A%20%28%D0%BB%D0%B0%D1%82%D0%B8%D0%BD%D0%B8%D1%86%D1%8F%29>
a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "uk" .
+
+<http://uz.wikipedia.org/wiki/A%20%28lotin%29> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "uz" .
+
+<http://vec.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "vec" .
+
+<http://vep.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "vep" .
+
+<http://vi.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "vi" .
+
+<http://vo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "vo" .
+
+<http://war.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "war" .
+
+<http://xal.wikipedia.org/wiki/A%20%D2%AF%D0%B7%D0%B3> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "xal" .
+
+<http://yi.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "yi" .
+
+<http://yo.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "yo" .
+
+<http://zh-min-nan.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "zh-min-nan" .
+
+<http://zh-yue.wikipedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "zh-yue" .
+
+<http://en.wikisource.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "en" .
+
+<http://commons.wikimedia.org/wiki/A> a schema:Article ;
+ schema:about entity:Q15 ;
+ schema:inLanguage "en" .
+
+s:Q15-4EAA058C-CD28-4D94-A6F1-9E85301F4CD6 a wikibase:Statement ;
+ v:P61 "978-2-253-93358-8" ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-48c9384c-4f69-b061-e28a-acbc7e9f5162 a wikibase:Statement ;
+ v:P63 "+1212"^^xsd:decimal ;
+ v:P63-value v:6216f6cc07a04f88ab05387a3e7aac30 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-9c840f65-4ed6-71b3-b813-03834c9a2ce1 a wikibase:Statement ;
+ v:P63 "+800000"^^xsd:decimal ;
+ v:P63-value v:fe067bc3a4680e114b9c41a8bffdf208 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-bb087c95-4f8f-d83d-702a-2e06d14c916c a wikibase:Statement ;
+ v:P63 "-45"^^xsd:decimal ;
+ v:P63-value v:d4a64aafba6a4ac39db06a3951926ea5 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-eb7bb813-4004-a9a8-4988-a66fb1608e16 a wikibase:Statement ;
+ v:P63 "+98.2"^^xsd:decimal ;
+ v:P63-value v:87ec7deee25511032644133f42a3da42 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-fbb17f28-452c-9dfc-35af-89d5c869f863 a wikibase:Statement ;
+ v:P72 "2-235-53099-0" ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:Q15-276653CE-F775-4BA0-84BD-A8B9E6BB89A7 a wikibase:Statement ;
+ v:P72 "0-441-37388-7" ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank ;
+ prov:wasDerivedFrom ref:c62188e0951659b86554bf79929ae821981c1f45,
+ ref:b390ecc110fb3279258a2905b0708772cdb9187f .
+
+ref:c62188e0951659b86554bf79929ae821981c1f45 a wikibase:Reference ;
+ v:P9 entity:Q12 .
+
+ref:b390ecc110fb3279258a2905b0708772cdb9187f a wikibase:Reference ;
+ v:P9 entity:Q9 ;
+ v:P40 "bbbb" .
+
+v:6216f6cc07a04f88ab05387a3e7aac30 a wikibase:Value ;
+ wikibase:quantityAmount "+1212"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+1213"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+1211"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:fe067bc3a4680e114b9c41a8bffdf208 a wikibase:Value ;
+ wikibase:quantityAmount "+800000"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+800001"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+799999"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:d4a64aafba6a4ac39db06a3951926ea5 a wikibase:Value ;
+ wikibase:quantityAmount "-45"^^xsd:decimal ;
+ wikibase:quantityUpperBound "-44"^^xsd:decimal ;
+ wikibase:quantityLowerBound "-46"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+v:87ec7deee25511032644133f42a3da42 a wikibase:Value ;
+ wikibase:quantityAmount "+98.2"^^xsd:decimal ;
+ wikibase:quantityUpperBound "+98.3"^^xsd:decimal ;
+ wikibase:quantityLowerBound "+98.1"^^xsd:decimal ;
+ wikibase:quantityUnit "1" .
+
+data:P15 schema:version "986"^^xsd:integer ;
+ schema:dateModified "2013-08-07T08:05:22Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:P15 .
+
+entity:P15 a wikibase:Property ;
+ wikibase:propertyType "wikibase-item" ;
+ rdfs:label "ok"@en ;
+ skos:prefLabel "ok"@en ;
+ schema:name "ok"@en ;
+ schema:description "fof"@en .
+
+data:P16 schema:version "989"^^xsd:integer ;
+ schema:dateModified "2013-08-08T08:58:17Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:P16 .
+
+entity:P16 a wikibase:Property ;
+ wikibase:propertyType "wikibase-item" ;
+ rdfs:label "hasprop"@en ;
+ skos:prefLabel "hasprop"@en ;
+ schema:name "hasprop"@en ;
+ schema:description "has it"@en .
+
+data:Q19 schema:version "7205"^^xsd:integer ;
+ schema:dateModified "2014-07-27T13:16:26Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:Q19 .
+
+entity:Q19 a wikibase:Item ;
+ rdfs:label "somesoftware"@en ;
+ skos:prefLabel "somesoftware"@en ;
+ schema:name "somesoftware"@en ;
+ schema:description "this is some software with some version"@en ;
+ wdt:P11 "1.0.0",
+ "1.1.2" ;
+ entity:P11 s:q19-f724408e-4837-ebb0-5300-690d69efccf2,
+ s:q19-29696855-4344-6cf6-b131-471bd0e1bc63 .
+
+s:q19-f724408e-4837-ebb0-5300-690d69efccf2 a wikibase:Statement ;
+ v:P11 "1.0.0" ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+s:q19-29696855-4344-6cf6-b131-471bd0e1bc63 a wikibase:Statement ;
+ v:P11 "1.1.2" ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
+
+data:P19 schema:version "9200"^^xsd:integer ;
+ schema:dateModified "2014-11-30T13:10:42Z"^^xsd:dateTime ;
+ a schema:Dataset ;
+ schema:about entity:P19 .
+
+entity:P19 a wikibase:Property ;
+ wikibase:propertyType "url" ;
+ rdfs:label "official site"@en ;
+ skos:prefLabel "official site"@en ;
+ schema:name "official site"@en ;
+ wdt:P192 entity:Q21 ;
+ entity:P192 s:P19-e1907a91-4e6d-abe1-c79d-5d69bb7176dc .
+
+s:P19-e1907a91-4e6d-abe1-c79d-5d69bb7176dc a wikibase:Statement ;
+ v:P192 entity:Q21 ;
+ wikibase:rank wikibase:NormalRank,
+ wikibase:BestRank .
--
To view, visit https://gerrit.wikimedia.org/r/202405
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I151cb0c4edb9ccc8a6a2968d164161895814bc6f
Gerrit-PatchSet: 6
Gerrit-Project: wikidata/query/rdf
Gerrit-Branch: master
Gerrit-Owner: Manybubbles <[email protected]>
Gerrit-Reviewer: Jdouglas <[email protected]>
Gerrit-Reviewer: Manybubbles <[email protected]>
Gerrit-Reviewer: Smalyshev <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits