Vikiveri Sorgulama Hizmeti/Kullanıcı Kılavuzu

This page is a translated version of the page Wikidata Query Service/User Manual and the translation is 100% complete.

Vikiveri Sorgulama Hizmeti (WDQS), Vikiveri verilerine ayarlamak karşı sorgulama yapmanızı sağlayan bir SPARQL uç noktası sağlamak üzere tasarlanmış bir yazılım paketi ve kamu hizmetidir.

15 dakikalık Vikiveri Sorgulama Hizmeti eğitimi

Bu sayfa veya diğer ilgili belgelendirme sayfaları buna göre güncellenecektir; hizmeti kullanıyorsanız bunları izlemeniz önerilir.

SPARQL Sorgularının örneklerini SPARQL örnekler sayfasında görebilirsiniz.

Veri ayarı

Vikiveri Sorgulama Hizmeti, RDF döküm biçimi belgelerinde açıklandığı gibi RDF'de temsil edilen Wikidata.org'dan alınan bir veri kümesi üzerinde çalışır.

Hizmetin veri kümesi, esas olarak performans nedenleriyle, RDF dökümleri tarafından üretilen veri kümesiyle tam olarak eşleşmiyor; belgeler, küçük bir dizi farkı açıklar.

Aynı verilerin haftalık dökümünü şuradan indirebilirsiniz:

https://dumps.wikimedia.org/wikidatawiki/entities/

Temel Bilgiler - Anlamsal Üçlü olarak da bilinen DPT'yi (Konu, Yüklem, Nesne) anlama

spo veya "özne, yüklem, nesne" üçlü olarak bilinir veya Vikiveri'de genellikle verilerle ilgili bir ifade olarak anılır.

"Amerika Birleşik Devletleri'nin başkenti Washington DC'dir" ifadesi "Birleşik Devletler" konusundan (Q30), ve bir "Washington DC" nesnesi (Q61) "sermaye" yükleminden (P36) oluşur. Bu ifade üç URI olarak temsil edilebilir:

<http://www.wikidata.org/entity/Q30>  <http://www.wikidata.org/prop/direct/P36>  <http://www.wikidata.org/entity/Q61> .

Önekler sayesinde (aşağıya bakınız), aynı ifade daha özlü bir biçimde yazılabilir. İfadenin sonunu temsil etmek için sondaki noktaya dikkat edin.

wd:Q30  wdt:P36  wd:Q61 .

/entity/ (wd:) Vikiveri varlığını (Q-sayı değerleri) temsil eder. /prop/direct/ (wdt:), "gerçek" bir özelliktir. İfadeye bakarken en sık bekleyeceğimiz bir değerdir. Doğruluk özelliklerine ihtiyaç vardır çünkü bazı ifadeler diğerlerinden "daha doğru" olabilir. Örneğin, "ABD'nin başkenti New York City'dir" ifadesi doğrudur, ancak yalnızca 1790 yılının tarihsel bağlamında. WDQS, hangi ifadelerin "doğru" olarak kullanılması gerektiğini belirlemek için sıralamayı kullanır.

Doğru ifadelere ek olarak, WDQS tüm ifadeleri saklar (hem doğru hem de değil), ancak aynı wdt: önekini kullanmazlar. ABD başkenti üç değere sahiptir: DC, Philadelphia ve New York. Ve bu değerlerin her birinin "niteleyicileri" vardır, her bir ifadenin kapsamını daraltan başlangıç ​​ve bitiş tarihleri ​​gibi ek bilgiler. Bu bilgiyi üçlü depoda depolamak için WDQS, esasen rastgele bir sayı olan otomatik bir "ifade" konusunu sunar:

wd:Q30  p:P36  <random_URI_1> .         # US "indirect capital" is <X>
<random_URI_1>  ps:P36  wd:Q61 .        # The X's "real capital value" is  Washington DC
<random_URI_1>  pq:P580  "1800-11-17" . # The X's start date is 1800-11-17

Daha fazla bilgi için SPARQL eğitimi - niteleyicilere bakın.

spo ayrıca RDF veri yapılarını veya Blazegraph yüksek performanslı bir grafik veritabanı tarafından desteklenen Vikiveri Sorgu Hizmeti (WDQS) gibi herhangi bir grafik veritabanını veya üçlü depoyu sorgulamak için bir temel sözdizimi düzeni biçimi olarak kullanılır.

Üçlülerin (spo) gelişmiş kullanımları, üçlüleri diğer üçlülerin nesnesi veya öznesi olarak kullanmak da dahil!

Temel Bilgiler - Önekleri Anlama

Özneler ve yüklemler (üçlü sayının birinci ve ikinci değerleri) her zaman URI olarak saklanmalıdır. Örneğin, konu Evren (Q1) ise, <https://www.wikidata.org/wiki/Q1> olarak depolanacaktır. Ön ekler, bu uzun URI'yi daha kısa bir biçimde yazmamıza izin verir: wd:Q1. Öznelerden ve yüklemlerden farklı olarak, nesne (üçlü'nün üçüncü değeri) bir URI veya bir hazır bilgi olabilir, ör. bir sayı veya bir dize.

WDQS, önek olarak bilinen birçok kısayol kısaltmasını anlar. Bazıları Vikiveri'ye dahildir, ör. wd, wdt, p, ps, bd ve diğerleri, rdf, skos, owl, schema gibi yaygın olarak kullanılan harici öneklerdir.

Aşağıdaki sorguda, "P279 = Q7725634" ifadesinin olduğu veya daha eksiksiz bir ifadeyle, nesnesi = "edebi eser" olan "alt sınıf" yüklemi olan konuları seçerek öğeleri istiyoruz.

Çıkış değişkenleri:

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wds: <http://www.wikidata.org/entity/statement/>
PREFIX wdv: <http://www.wikidata.org/value/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bd: <http://www.bigdata.com/rdf#>

# The below SELECT query does the following:
# Selects all the items(?s subjects) and their descriptions(?desc)
# that have(WHERE) the statement(?s subject) has a direct property(wdt:) = P279 <subclasses of>
# with a value of entity(wd:) = Q7725634 <Literary Work>
# and optionally return the label using the Wikidata label service

SELECT ?s ?desc WHERE {
  ?s wdt:P279 wd:Q7725634 .
  OPTIONAL {
     ?s rdfs:label ?desc filter (lang(?desc) = "en").
   }
 }

Uzantılar

Hizmet, standart SPARQL yeteneklerinin aşağıdaki uzantılarını destekler:

Etiket hizmeti

URI <http://wikiba.se/ontology#label> ile özel hizmeti kullanarak, dil yedeğini kullanarak sorguladığınız varlıkların etiketini, diğer adını veya açıklamasını getirebilirsiniz. Hizmet, etiketleri almak istediğinizde çok faydalıdır, çünkü aksi takdirde aynı etkiyi elde etmek için ihtiyaç duyacağınız SPARQL sorgularının karmaşıklığını azaltır.

Servis iki moddan birinde kullanılabilir: el ve otomatik.

Otomatik modda, yalnızca hizmet şablonunu belirtmeniz gerekir, örn.:

PREFIX wikibase: <http://wikiba.se/ontology#>
SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
}

ve WDQS otomatik olarak aşağıdaki gibi etiketler oluşturacaktır:

  • SELECT içindeki ilişkisiz bir değişken ?NAMELabel olarak adlandırılırsa, WDQS, ?NAME değişkenindeki varlık için etiketi (rdfs:label) üretir.
  • SELECT içindeki bir ilişkisiz değişken ?NAMEAltLabel olarak adlandırılırsa, WDQS, ?NAME değişkenindeki varlık için diğer adı (skos:altLabel) üretir.
  • SELECT içindeki bir ilişkisiz değişken ?NAMEDescription olarak adlandırılırsa, WDQS, ?NAME değişkenindeki varlık için açıklamayı (schema:description) üretir.

Her durumda, ?NAME içindeki değişken bağlanmalıdır, aksi takdirde hizmet başarısız olur.

Otomatik mod yalnızca sorgunun projeksiyonunu denetler. Örneğin, SELECT ?aLabel (GROUP_CONCAT(?bLabel) AS ?bLabels) içinde yalnızca ilk etiket tanınır ve SELECT * otomatik mod tarafından hiç desteklenmez. Bu gibi durumlarda, el modu kullanmanız gerekecektir (aşağıya bakın).

Bir veya daha fazla bd:serviceParam wikibase:language "language-code" üçlüsü içeren etiket için tercih ettiğiniz dili/dilleri belirtirsiniz. Her dize, virgülle ayrılmış bir veya daha fazla dil kodu içerebilir. WDQS, dilleri belirttiğiniz sıraya göre değerlendirir. Belirtilen dillerden herhangi birinde etiket yoksa, varlığın Q-id'si (herhangi bir önek olmadan) etiketidir.

Vikiveri Sorgulama Hizmeti web sitesi, [AUTO_LANGUAGE] öğesini otomatik olarak geçerli kullanıcı arayüzünün dil koduyla değiştirir. Örneğin, kullanıcının kullanıcı arayüzü Fransızca ise, SPARQLnin kodu bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" sorgu hizmetine gönderilmeden önce bd:serviceParam wikibase:language "fr,en" biçimine dönüştürülecektir.


ABD başkanlarının ve eşlerinin listesini gösteren örnek:

SELECT ?p ?pLabel ?w ?wLabel WHERE {
   wd:Q30 p:P6/ps:P6 ?p .
   ?p wdt:P26 ?w .
   SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
 }

Deneyin!

Bu örnekte WDQS, özellikler için otomatik olarak ?pLabel ve ?wLabel etiketlerini oluşturur.

El modda, hizmet çağrısı içindeki etiket değişkenlerini açıkça bağlarsınız, ancak WDQS yine de dil çözünürlüğü ve geri dönüş sağlar. Örnek:

  SELECT *
   WHERE {
     SERVICE wikibase:label {
       bd:serviceParam wikibase:language "fr,de,en" .
       wd:Q123 rdfs:label ?q123Label .
       wd:Q123 skos:altLabel ?q123Alt .
       wd:Q123 schema:description ?q123Desc .
       wd:Q321 rdf:label ?q321Label .
    }
  }

Bu, Fransızca, Almanca ve İngilizce etiketleri ve açıklamaları dikkate alacak ve hiçbiri mevcut değilse, etiket olarak Q-id'yi kullanacaktır.

Coğrafi arama

Hizmet, merkezi bir noktanın belirli bir yarıçapında veya belirli bir sınırlayıcı kutu içinde yer alan koordinatlara sahip öğelerin aranmasına olanak tanır.

Etrafta arama noktası

Örnek:

# Airports within 100km from Berlin
#defaultView:Map
SELECT ?place ?placeLabel ?location ?dist WHERE {
  # Berlin coordinates
  wd:Q64 wdt:P625 ?berlinLoc . 
  SERVICE wikibase:around { 
      ?place wdt:P625 ?location . 
      bd:serviceParam wikibase:center ?berlinLoc . 
      bd:serviceParam wikibase:radius "100" . 
      bd:serviceParam wikibase:distance ?dist.
  } 
  # Is an airport
  FILTER EXISTS { ?place wdt:P31/wdt:P279* wd:Q1248784 }
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" . 
  }
} ORDER BY ASC(?dist)

Deneyin!

around hizmet çağrısının ilk satırı, aramanın sonucunun belirtilen konum içindeki öğelere ?item ve koordinatlarına ?location bağlayacağı ?item predicate ?location biçiminde olmalıdır. Desteklenen parametreler şunlardır:

Yüklem Anlamı
wikibase:center Aramanın gerçekleştirildiği nokta. Aramanın çalışması için bağlı olmalıdır.
wikibase:radius Merkezden uzaklık. Şu anda mesafe her zaman kilometre cinsindendir, diğer birimler henüz desteklenmemektedir.
wikibase:globe Aranan küre. İsteğe bağlı, varsayılan Dünya (wd:Q2)'dir.
wikibase:distance Değişken alma mesafesi bilgisi

Kutunun içinde arama

Kutu arama örneği:

# Schools between San Jose, CA and Sacramento, CA
#defaultView:Map
SELECT * WHERE {
  wd:Q16553 wdt:P625 ?SJloc .
  wd:Q18013 wdt:P625 ?SCloc .
  SERVICE wikibase:box {
      ?place wdt:P625 ?location .
      bd:serviceParam wikibase:cornerSouthWest ?SJloc .
      bd:serviceParam wikibase:cornerNorthEast ?SCloc .
  }
  FILTER EXISTS { ?place wdt:P31/wdt:P279* wd:Q3914 }
}

Deneyin!

veya:

#Schools between San Jose, CA and San Francisco, CA
#defaultView:Map
SELECT ?place ?location WHERE {
  wd:Q62 wdt:P625 ?SFloc .
  wd:Q16553 wdt:P625 ?SJloc .
  SERVICE wikibase:box {
    ?place wdt:P625 ?location .
    bd:serviceParam wikibase:cornerWest ?SFloc .
    bd:serviceParam wikibase:cornerEast ?SJloc .
  }
  FILTER EXISTS { ?place wdt:P31/wdt:P279* wd:Q3914 }
}

Deneyin!

Koordinatlar doğrudan belirtilebilir:

# Schools between San Jose, CA and Sacramento, CA
#same as previous
#defaultView:Map
SELECT * WHERE {
SERVICE wikibase:box {
    ?place wdt:P625 ?location .
    bd:serviceParam wikibase:cornerWest "Point(-121.872777777 37.304166666)"^^geo:wktLiteral .
    bd:serviceParam wikibase:cornerEast "Point(-121.486111111 38.575277777)"^^geo:wktLiteral .
  }
  FILTER EXISTS { ?place wdt:P31/wdt:P279* wd:Q3914 }
}

Deneyin!

box hizmet çağrısının ilk satırı, ?item predicate ?location biçiminde olmalıdır, burada ve aramanın sonucu, ?item ile belirtilen konum içindeki öğelere ve ?location koordinatlarına bağlayacaktır. Desteklenen parametreler şunlardır:

Yüklem Anlamı
wikibase:cornerSouthWest Kutunun güney-batı köşesi.
wikibase:cornerNorthEast Kutunun kuzey-doğu köşesi.
wikibase:cornerWest Kutunun batı köşesi.
wikibase:cornerEast Kutunun doğu köşesi.
wikibase:globe Aranan küre. İsteğe bağlı, varsayılan Dünya (wd:Q2)'dir.

wikibase:cornerSouthWest ve wikibase:cornerNorthEast birlikte, ayrıca wikibase:cornerWest ve wikibase:cornerEast birlikte kullanılmalıdır ve karıştırılamaz. wikibase:cornerWest ve wikibase:cornerEast yüklemleri kullanılırsa, noktaların kutunun köşegeninin koordinatları olduğu varsayılır ve köşeler buna göre türetilir.

Genişletilmiş işlevler

Mesafe işlevi

geof:distance işlevi, Dünya üzerindeki iki nokta arasındaki mesafeyi kilometre cinsinden döndürür. Örnek kullanım:

# Airports within 100km from Berlin
SELECT ?place ?placeLabel ?location ?dist WHERE {

  # Berlin coordinates
  wd:Q64 wdt:P625 ?berlinLoc . 
  SERVICE wikibase:around { 
      ?place wdt:P625 ?location . 
      bd:serviceParam wikibase:center ?berlinLoc . 
      bd:serviceParam wikibase:radius "100" . 
  } 
  # Is an airport
  ?place wdt:P31/wdt:P279* wd:Q1248784 .
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" . 
  }
  BIND(geof:distance(?berlinLoc, ?location) as ?dist) 
} ORDER BY ?dist

Deneyin!

# Places around 0°,0° 
SELECT *
{
  SERVICE wikibase:around { 
      ?place wdt:P625 ?location . 
      bd:serviceParam wikibase:center "Point(0 0)"^^geo:wktLiteral .
      bd:serviceParam wikibase:radius "250" . 
  } 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . ?place rdfs:label ?placeLabel }
  BIND(geof:distance("Point(0 0)"^^geo:wktLiteral, ?location) as ?dist) 
} 
ORDER BY ?dist

Deneyin!

Koordinat parçaları işlevleri

İşlevler geof:globe, geof:latitude ve geof:longitude koordinatlarının parçalarını döndürür. Buna göre dünya URI'si, enlem ve boylam.

URL işlevlerinin kodunu çözün

wikibase:decodeUri işlevi, verilen URI dizesinin kodunu çözer (yani yüzde kodlama) tersine çevirir. Bu, Vikipedi başlıklarını (kodlanmış) gerçek dizelere dönüştürürken gerekli olabilir. Bu işlev, SPARQL encode_for_uri işlevinin tersidir.

Otomatik önekler

Yaygın sorgularda kullanılan çoğu önekler, açıkça belirtilmelerine gerek kalmadan motor tarafından desteklenir.

Genişletilmiş tarihler

Hizmet, geçmişte ve gelecekte yaklaşık 290 milyar yıl aralığındaki xsd:dateTime türündeki tarih değerlerini bir saniyelik çözünürlükle destekler. WDQS, tarihleri ​​Unix çağından bu yana 64 bitlik saniye sayısı olarak depolar.

Blazegraph uzantıları

  Uyarı: As Blazegraph is not actively developed, it is planned to migrate Wikidata Query Service to another triplestore. The following may be discontinued at some point.

Üstünde WDQS'nin uygulandığı Blazegraph platformu kendi SPARQL uzantısına sahiptir. Bunların arasında, BFS, en kısa yol, CC ve PageRank uygulamaları dahil Blazegraph Wiki'de belgelenmiş olan çeşitli grafik geçiş algoritmaları vardır.

Sorgu yürütme ve motorun çeşitli yönlerinin nasıl kontrol edileceği hakkında bilgi için lütfen ayrıca Blazegraph sorgu ipuçlarına ilişkin belgelere bakın.

There is no documentation in the BlazeGraph wiki about the bd:sample extension. It's documented only in a comment in the code.


Federasyon

SPARQL Federasyonlu Sorgular'ın seçili sayıda harici veritabanına çağrı yapmasına izin veriyoruz. Lütfen ilgili sayfadaki federe uç noktaların tam listesine bakın.

Örnek federasyonlu sorgu:


SELECT ?workLabel WHERE {
  wd:Q165257 wdt:P2799 ?id 
  BIND(uri(concat("http://data.cervantesvirtual.com/person/", ?id)) as ?bvmcID)
  SERVICE <http://data.cervantesvirtual.com/openrdf-sesame/repositories/data> {
    ?bvmcID <http://rdaregistry.info/Elements/a/otherPFCManifestationOf> ?work .
    ?work rdfs:label ?workLabel        
  }
}

Deneyin!

Lütfen, federasyonlu uç noktaların hizmet verdiği veritabanlarının Vikiveri'den çok farklı olabilecek ontolojiler kullandığını unutmayın. Bu veritabanlarına ontolojiler ve veri erişimi hakkında bilgi edinmek için lütfen sahip belgelendirme bağlantılarına bakın.

MediaWiki API

Lütfen MediaWiki API Hizmeti belgelendirme sayfasında tam açıklamaya bakın.

MediaWiki API Hizmeti, SPARQL'den MediaWiki API'sine çağrı yapılmasına ve sonuçların SPARQL sorgusunun içinden alınmasına olanak tanır. Örnek (kategori üyelerini bulma):


SELECT * WHERE {
  wd:Q6501349 wdt:P910 ?category .
  ?link schema:about ?category; schema:isPartOf <https://en.wikipedia.org/>; schema:name ?title .
  SERVICE wikibase:mwapi {
	 bd:serviceParam wikibase:api "Generator" .
     bd:serviceParam wikibase:endpoint "en.wikipedia.org" .
     bd:serviceParam mwapi:gcmtitle ?title .
     bd:serviceParam mwapi:generator "categorymembers" .
     bd:serviceParam mwapi:gcmprop "ids|title|type" .
     bd:serviceParam mwapi:gcmlimit "max" .
    # out
    ?subcat wikibase:apiOutput mwapi:title  .
    ?ns wikibase:apiOutput "@ns" .
    ?item wikibase:apiOutputItem mwapi:item .
  }
}

Deneyin!

Wikimedia servisi

Wikimedia, http://query.wikidata.org/ adresinde kullanılabilen WDQS'nin kamu hizmeti örneğini çalıştırır.

Genel uç noktada sorgunun çalışma zamanı 60 saniye ile sınırlıdır. Bu hem GUI hem de genel SPARQL uç noktası için geçerlidir.

GUI

http://query.wikidata.org/ değerinin ana sayfasındaki GUI, SPARQL sorgularını düzenlemenize ve sorgu motoruna göndermenize izin verir. Sonuçlar bir HTML tablosu olarak görüntülenir. Her sorgunun daha sonra kullanılmak üzere işaretlenebilecek benzersiz bir URL'si olduğunu unutmayın. Bu URL'ye gitmek, sorguyu düzenleme penceresine yerleştirecek, ancak çalıştırmayacaktır. Bunun için yine de "Yürüt" düğmesine tıklamanız gerekiyor.

Ayrıca, sağdaki "Kısa URL oluştur" bağlantısını tıklayarak bir URL kısaltma hizmeti aracılığıyla sorgu için kısa bir URL oluşturabilirsiniz. Bu, geçerli sorgu için kısaltılmış URL'yi üretecektir.

"Önek ekle" düğmesi, SPARQL sorguları için standart önekleri içeren başlığı oluşturur. Yararlı olabilecek öneklerin tam listesi RDF format belgelendirmede listelenmiştir. WDQS bunları kutudan çıktığı gibi desteklediğinden, en yaygın öneklerin otomatik olarak çalıştığını unutmayın.

GUI ayrıca, varlık sonucunun yanındaki "🔍" sembolüne tıklayarak etkinleştirilebilen basit bir varlık gezgini içerir. Q-id varlığına tıklamak sizi wikidata.org adresindeki varlık sayfasına götürecektir.

Varsayılan görünümler

Ana madde: wikidata:Special:MyLanguage/Wikidata:SPARQL query service/Wikidata Query Help/Result Views

Sorguyu WDQS GUI'de çalıştırırsanız, sorgunun başında bir yorum belirterek hangi görünümün sunulacağını seçebilirsiniz: #defaultView:viewName.

Display a title

If you run the query in the WDQS GUI, you can display a title on top of the results by specifying a comment: #title: String you want to display at the beginning of the query.

SPARQL uç noktası

SPARQL sorguları, https://query.wikidata.org/sparql ile bir GET veya POST isteği ile doğrudan SPARQL uç noktasına gönderilebilir.

GET istekleri, URL'de https://query.wikidata.org/sparql?query=(SPARQL_query) biçiminde belirtilen sorguya sahiptir, ör. https://query.wikidata.org/sparql?query=SELECT%20?dob%20WHERE%20{wd:Q42%20wdt:P569%20?dob.}.

POST istekleri, alternatif olarak, URL uzunluk sınırlarına ulaşmadan daha büyük sorguların çalıştırılmasına izin veren URL yerine isteğin gövdesindeki sorguyu kabul edebilir. (POST gövdesinin yine de query= önekini içermesi gerektiğini unutmayın (yani, yalnızca (SPARQL query) yerine query=(SPARQL_query) olmalıdır) ve SPARQL sorgusu yine de URL çıkışlı olmalıdır.)

Sonuç, varsayılan olarak XML olarak veya format=json sorgu parametresi URL'ye dahil edilmişse veya istekle birlikte Accept: application/sparql-results+json başlığı sağlanmışsa JSON olarak döndürülür.

JSON formatı standarttır. SPARQL 1.1 Sorgu Sonuçları JSON Formatı.

POST sorguları önbelleğe alınmadığından daha küçük sorgular için GET ve daha büyük sorgular için POST kullanılması önerilir.

Desteklenen formatlar

Aşağıdaki çıkış biçimleri şu anda SPARQL uç noktası tarafından desteklenmektedir:

Biçim HTTP Başlığı Sorgu parametresi Açıklama
XML Accept: application/sparql-results+xml format=xml XML sonuç biçimi, varsayılan olarak döndürülür. https://www.w3.org/TR/rdf-sparql-XMLres/ adresinde belirtildiği gibi
JSON Accept: application/sparql-results+json format=json JSON sonuç biçimi, şu şekilde: https://www.w3.org/TR/sparql11-results-json/
TSV Accept: text/tab-separated-values Şurada tanımlandığı şekilde: https://www.w3.org/TR/sparql11-results-csv-tsv/
CSV Accept: text/csv Şurada tanımlandığı şekilde: https://www.w3.org/TR/sparql11-results-csv-tsv/
İkili RDF Accept: application/x-binary-rdf-results-table

Sorgu limitleri

60 saniye olarak ayarlanmış bir sabit sorgu son tarihi var. Ayrıca aşağıdaki sınırlar vardır:

  • Bir istemciye (kullanıcı aracısı + IP) her 60 saniyede 60 saniyelik işlem süresine izin verilir
  • Bir istemciye dakikada 30 hata sorgusu izni verilir

Yukarıdaki sınırları aşan istemciler, HTTP kodu 429 ile kısıtlanır. İsteğin ne zaman tekrarlanabileceğini görmek için Retry-After başlığını kullanın. İstemci 429 yanıtı yok sayar ve sınırları üzerinde istek üretmeye devam ederse, hizmetten geçici olarak yasaklanabilir. Kullanıcı Denetim politikası ile uyumlu olmayan istemciler tamamen engellenebilir. İyi bir User-Agent başlık gönderdiğinizden emin olun.

Her sorgu, yürütülmesi bu yapılandırılmış son tarihten daha fazla zaman aldığında zaman aşımına uğrar. Sorguyu optimize etmek veya sorunlu bir sorguyu buradan bildirmek isteyebilirsiniz.

Ayrıca şu anda hizmete erişimin IP başına 5 paralel sorgu ile sınırlı olduğunu unutmayın. Yukarıdaki sınırlar, kaynaklara ve kullanım biçimlerine bağlı olarak değişebilir.

Sorgu Açıklaması

Blazegraph, sorgunun nasıl ayrıştırıldığını ve hangi optimizasyonların uygulandığını açıklayan sorgu analizinin gösterilmesini sağlar. Bu bilgiyi görmek için, sorgu dizesine explain=details parametresi ekleyin, örneğin: https://query.wikidata.org/sparql?query=SELECT%20?dob%20WHERE%20{wd:Q42%20wdt:P569%20?dob.}&explain=details.

Ad alanları

Vikiveri Sorgu Hizmeti'ndeki veriler, ana SPARQL uç noktasına yönelik sorguların yönlendirildiği ana ad alanını, wdq ile ve aşağıda listelenen diğer yardımcı ad alanlarını içerir. Farklı ad alanındaki verileri sorgulamak için bitiş noktası URL'si https://query.wikidata.org/bigdata/namespace/NAMESPACENAME/sparql olarak kullanın.

Kategoriler

Lütfen Kategoriler belgelendirme sayfasında tam açıklamaya bakın.

Vikiveri Sorgulama Hizmeti ayrıca belirli vikilerin kategori grafiğine erişim sağlar. Kapsanan vikilerin listesi burada görülebilir: https://noc.wikimedia.org/conf/dblists/categories-rdf.dblist

Kategori ad alanı adı categories. SPARQL'e erişim için uç noktası https://query.wikidata.org/bigdata/namespace/categories/sparql.

Ayrıntılı belgeler için lütfen Kategoriler sayfasına bakın.

DCAT-AP

Vikiveri için DCAT-AP verileri, https://query.wikidata.org/bigdata/namespace/dcatap/sparql uç noktasında SPARQL olarak mevcuttur.

Verilerin kaynağı: https://dumps.wikimedia.org/wikidatawiki/entities/dcatap.rdf

Veri almak için örnek sorgu:

PREFIX dcat: <http://www.w3.org/ns/dcat#>
PREFIX dct: <http://purl.org/dc/terms/>

SELECT ?url ?date ?size WHERE {
  <https://www.wikidata.org/about#catalog> dcat:dataset ?dump .
  ?dump dcat:distribution [
    dct:format "application/json" ;
    dcat:downloadURL ?url ;
    dct:issued ?date ;
    dcat:byteSize ?size 
  ] .
}

Bağlantılı Veri Parçaları uç noktası

Ayrıca Üçlü Model Parçaları arayüzünü kullanarak veritabanını sorgulamayı da destekliyoruz. Bu, üçlünün bir veya iki bileşeninin bilindiği ve bu şablonla eşleşen tüm üçlüleri almanız gereken üçlü verilere ucuz ve verimli bir şekilde göz atmanızı sağlar. Bağlantılı Veri Parçaları sitesinde daha fazla bilgiye bakın.

Arayüze şu URL ile erişilebilir: https://query.wikidata.org/bigdata/ldf. Bu hizmet, Blazegraph veritabanının üstünde uygulanmaktadır, bu nedenle Sorgu Hizmeti ile aynı gecikmeye sahip olacaktır. Örnek istekler:

subject, predicate ve object parametreleri için şu anda yalnızca tam URL'lerin desteklendiğini unutmayın.

Varsayılan olarak, HTML arayüzü görüntülenir, ancak Accept HTTP başlığı ile tanımlanan çeşitli veri biçimleri mevcuttur.

Mevcut veri biçimleri
Accept Biçim
text/html Varsayılan HTML tarama arayüzü
text/turtle Turtle biçimi
application/ld+json JSON-LD biçimi
application/n-triples N-Triples biçimi
application/rdf+xml RDF/XML biçimi

Veriler, sayfa boyutu 100 üçlü olacak şekilde sayfalar halinde döndürülür. Sayfalar 1'den başlayarak numaralandırılır ve sayfa numarası page parametresi ile tanımlanır.

Bağımsız hizmeti

Hizmet açık kaynaklı bir yazılım olduğundan, aşağıda verilen yönergeleri kullanarak hizmeti herhangi bir kullanıcının sunucusunda çalıştırmak da mümkündür.

Donanım önerileri Blazegraph belgelerinde bulunabilir.

Hizmeti Vikiveri Wikibase olmayan örneğe karşı çalıştırmayı planlıyorsanız, lütfen ek talimatlara bakın.

Kurulum

Hizmeti kurmak için tam hizmet paketini bir ZIP dosyası olarak indirmeniz önerilir, örn. Maven Central üzerinden, grup kimliği org.wikidata.query.rdf ve yapı kimliği "service" ile veya kaynak dağıtımını https://github.com/wikimedia/wikidata-query-rdf/'da klonlayın ve "mvn paketi" ile oluşturun. ZIP paketi, service-VERSION-dist.zip altındaki dist/target dizininde olacaktır.

Paket, bir .war uygulaması olarak Blazegraph sunucusunu, wikidata sitesinden yeni veriler getirmek için güncelleyici hizmetini çalıştırmak için gereken kitaplıkları, çeşitli görevleri kolaylaştırmak için komut dosyalarını ve gui alt dizindeki GUI'yi içerir. GUI'yi kullanmak istiyorsanız, HTTP sunucunuzu hizmet verecek şekilde yapılandırmanız gerekecektir.

Varsayılan olarak, yalnızca http://localhost:9999/bigdata/namespace/wdq/sparql adresindeki SPARQL uç noktası yapılandırılır ve varsayılan Blazegraph GUI, http://localhost:9999/bigdata/ adresinde bulunur. Varsayılan yapılandırmada her ikisine de yalnızca localhost'tan erişilebildiğini unutmayın. Bunlara dışarıdan erişmeyi düşünüyorsanız, harici uç noktalar ve uygun bir erişim kontrolü sağlamanız gerekecektir.

Anlık görüntü sürümlerini kullanma

Yayımlanmamış bir anlık görüntü sürümünü yüklemek istiyorsanız (genellikle yayımlanan sürümde bir hata varsa ancak yeni sürüm henüz mevcut değilse bu gereklidir) ve kendi ikili dosyalarınızı derlemek istemiyorsanız, aşağıdakilerden birini kullanabilirsiniz:

Yükleme verisi

  Uyarı: 2020 itibariyle, Wikimedia sunucularında, dökümdeki tüm verilerin içe aktarılması yaklaşık 12 gün ve sorgu hizmetinin gecikmeyi yakalaması için 12 gün daha sürecek.

Daha fazla kurulum prosedürü, dağıtımın bir parçası olan ve aşağıdaki adımları içeren Başlarken belgesinde ayrıntılı olarak açıklanmıştır:

  1. En son RDF dökümünü https://dumps.wikimedia.org/wikidatawiki/entities/ üzerinden indirin (RDF dökümü .ttl.gz ile bitendir).
  2. Verileri munge.sh betiği ile önceden işleyin. Bu, wikidump-000000001.ttl.gz vb. adlarla önceden işlenmiş verilerle bir dizi TTL dosyası oluşturur. Aşağıdaki betik seçeneklerine bakın.
  3. runBlazegraph.sh betiğini çalıştırarak Blazegraph hizmetini başlatın.
  4. loadData.sh kullanarak verileri hizmete yükleyin. Veri yüklemenin genellikle ön işlemeye göre önemli ölçüde daha yavaş olduğunu unutmayın; bu nedenle, önceden işlenmiş birkaç dosya hazır olur olmaz yüklemeye başlayabilirsiniz. Aşağıdaki seçenekler kullanılarak herhangi bir dosyadan yükleme yeniden başlatılabilir.
  5. Tüm veriler yüklendikten sonra, runUpdate.sh kullanarak Updater hizmetini başlatın.

Kategorileri yükleme

Kategori verisini da yüklemek istiyorsanız, lütfen aşağıdakileri yapın:

  1. Ad alanı oluşturun, ör. categories: createNamespace.sh categories
  2. Verileri içine yükleyin: forAllCategoryWikis.sh loadCategoryDump.sh categories

Bu betiklerin yalnızca Wikimedia vikilerinden verileri Wikimedia ayarlarına göre yüklediğini unutmayın. Başka bir viki ile çalışmanız gerekiyorsa, betiklerdeki bazı değişkenleri değiştirmeniz gerekebilir.

Betikler

Aşağıdaki faydalı betikleri dağıtımın bir parçasıdır:

munge.sh

Yükleme için RDF dökümünden verileri ön işlemden geçirin.

Seçenek Gerekli mi? Açıklama
-f filename Evet RDF dökümünün dosya adı
-d directory Hayır İşlenen dosyaların yazılacağı dizin, varsayılan geçerli dizindir
-l language Hayır Belirtilirse, yalnızca belirtilen dil için etiketler korunur. Performansı artırabileceği, veritabanı boyutunu küçültebileceği ve sorguları basitleştirebileceği için yalnızca bir dile ihtiyacınız varsa bu seçeneği kullanın.
-s Hayır Belirtilirse, site bağlantılarıyla ilgili veriler hariç tutulur. Performansı artırabileceği ve veritabanı boyutunu azaltabileceği için site bağlantılarını sorgulamanız gerekmiyorsa bu seçeneği kullanın.
-c size Hayır Varsayılan yığın boyutunu geçersiz kılmak için bu seçeneği kullanın. Çok büyük parçalar içe aktarılırken zaman aşımına uğrayabilir.

Örnek:

./munge.sh -c 50000 -f data/wikidata-20150427-all-BETA.ttl.gz -d data -l en -s

loadData.sh

İşlenen verileri Blazegraph'a yükleyin. Yüklenmesi için curl gerekir.

Seçenek Gerekli mi? Açıklama
-n namespace Evet WDQS verileri için wdq olması gereken, verilerin yüklendiği grafik ad alanını belirtir
-d directory Hayır İşlenen dosyaların depolandığı dizin, varsayılan olarak geçerli dizin
-h host Hayır Varsayılan olarak localhost olarak SPARQL uç noktasının ana bilgisayar adı
-c context Hayır SPARQL uç noktasının bağlam URL'si, varsayılan olarak büyük veri, genellikle WDQS için değiştirilmesi gerekmez
-s start Hayır Başlangıç ​​için işlenen dosyanın numarası, varsayılan olarak 1
-e end Hayır Bitecek işlenen dosyanın numarası

Örnek:

./loadData.sh -n wdq -d `pwd`/data

runBlazegraph.sh

Blazegraph hizmetini çalıştırın.

Seçenek Gerekli mi? Açıklama
-d directory Hayır Blazegraph kurulumunun ana dizini, varsayılan olarak betiğinin bulunduğu dizin
-c context Hayır SPARQL uç noktasının bağlam URL'si, varsayılan olarak büyük veri, genellikle WDQS için değiştirilmesi gerekmez
-p port Hayır SPARQL hizmetinin bağlantı noktası numarası, varsayılan olarak 9999
-o options Hayır Komut satırına seçenek ekleyin

Örnek:

./runBlazegraph.sh

Betiğinin içinde, düzenlemek isteyebileceğiniz iki değişken vardır:

# Q-id of the default globe
DEFAULT_GLOBE=2
# Blazegraph HTTP User Agent for federation
USER_AGENT="Wikidata Query Service; https://query.wikidata.org/";

Ayrıca, aşağıdaki ortam değişkenleri betik tarafından kontrol edilir (tümü isteğe bağlıdır):

Değişken Varsayılan Açıklama
HOST localhost Blazegraph hizmetini bağlamak için ana bilgisayar adı
PORT 9999 Blazegraph hizmetini bağlama bağlantı noktası
DIR betiğin bulunduğu dizin Yapılandırma dosyalarının depolandığı dizin
HEAP_SIZE 16g Blazegraph için Java yığın boyutu
MEMORY -Xms${HEAP_SIZE} -Xmx${HEAP_SIZE} Blazegraph için tam Java bellek ayarları
GC_LOGS kaynağı bakın GC günlüğü ayarları
CONFIG_FILE RWStore.properties Blazegraph yapılandırma dosyası konumu
BLAZEGRAPH_OPTS "boş" Ek seçenekler, olduğu gibi Java komut satırına iletilir

runUpdate.sh

Güncelleyici hizmetini çalıştırın.

Seçenek Gerekli mi? Açıklama
-n namespace Hayır Verilerin yüklendiği grafik ad alanını belirtir, WDQS verileri için wdq olmalıdır. Varsayılan: wdq
-h host Hayır Varsayılan olarak localhost olarak SPARQL uç noktasının ana bilgisayar adı
-c context Hayır SPARQL uç noktasının bağlam URL'si, varsayılan olarak büyük veri, genellikle WDQS için değiştirilmesi gerekmez
-l language Hayır Belirtilirse, yalnızca belirtilen dil için etiketler korunur. Performansı artırabileceği, veritabanı boyutunu küçültebileceği ve sorguları basitleştirebileceği için yalnızca bir dile ihtiyacınız varsa bu seçeneği kullanın.
-s Hayır Belirtilirse, site bağlantılarıyla ilgili veriler hariç tutulur. Performansı artırabileceği ve veritabanı boyutunu küçültebileceği için site bağlantılarını sorgulamanıza gerek olmadığı için bu seçeneği kullanın.
-t secs Hayır Blazegraph ile iletişim kurarken saniyeler içinde zaman aşımı.
-N Hayır Bu seçenek, betiğinin, birinci Güncelleyici çalışırken ikinci Güncelleyiciyi çalıştırırken sorunlara neden olabilecek seçenekleri yok saymasına neden olur. İkincil Güncelleyiciyi çalıştırırken kullanın, ör. --ids ile belirli bir öğeyi yakalamak için (aşağıya bakın).
-S Hayır Günlük dosyaları yerine konsolda oturum açın. Bakım görevleri için komut satırından betiğini çalıştırırken kullanışlıdır.

-l ve -s seçeneklerinin (veya bunların yokluğunun) ayarlarının munge.sh ve runUpdate.sh için aynı olması önerilir, aksi takdirde veriler düzgün bir şekilde güncellenmeyenilir.

Örnek:

./runUpdate.sh

Ayrıca, aşağıdaki ortam değişkenleri betik tarafından kontrol edilir (tümü isteğe bağlıdır):

Değişken Varsayılan Açıklama
UPDATER_OPTS boş Ek seçenekler, olduğu gibi Java komut satırına iletilir

Güncelleyici seçenekleri

Aşağıdaki seçenekler Güncelleyici uygulamasıyla çalışır.

Bunlar, -- sonrası ek seçenekler olarak runUpdate.sh betiğine verilmelidir, ör.: runUpdate.sh -- -v.

Güncelleyici için seçenekler
Seçenek Uzun seçenek Anlamı
-v --verbose Ayrıntılı mod
-s TIMESTAMP --start TIMESTAMP Belirli bir zaman damgasından 2015-02-11T17:11:08Z veya 20150211170100 biçiminde veri toplamaya başlayın.
--keepTypes Tüm tür ifadelerini saklayın
--ids ID1,ID2,... Belirli kimlikleri güncelleyin ve çıkın
--idrange ID1-ID2 Kimlik aralığını güncelleyin ve çıkın
-d SECONDS --pollDelay SECONDS Yeni veri olmadığında ne kadar uyumalı
-t NUMBER --threadCount NUMBER Wikibase verilerini alırken kaç tane iletisi kullanılacak
-b NUMBER --batchSize NUMBER RecentChanges API'sinden alınacak kaç değişiklik var
-V --verify Yüklemeden sonra verileri doğrulayın (YAVAŞ! Yalnızca hata ayıklama amaçlı)
-T SECONDS --tailPollerOffset SECONDS Ana olanın arkasında verilen ofset ile ikincil takip eden poller kullanın
--entityNamespaces NUMBER,NUMBER,... Değişiklikleri kontrol etmek için Wikibase ad alanlarının listesi
-W --wikibaseUrl URL Wikibase ile konuşurken kullanılacak URL. Ör. https://www.wikidata.org. Güncellemeler Vikiveri'den gelmiyorsa ayarlanmalıdır.
-U --conceptUri URL RDF'de Wikibase varlıklarını temsil etmek için kullanılan URL'lerin URL tabanı. Ör. http://www.wikidata.org. Wikibase örneği Vikiveri tabanlı önekleri kullanmıyorsa ayarlanmalıdır.
--commonsUri URL SDC desteği için Commons URI. Bunun çalışması için hem --conceptUri hem de --commonsUri ayarlanmalıdır.
--wikibaseScheme SCHEME Wikibase ile konuşurken kullanılacak URL şeması (http, https). (kaldırıldı) Bunun yerine yukarıdaki wikibaseUrl'yi kullanın.
--wikibaseHost HOSTNAME Wikibase ile konuşurken kullanılacak ana bilgisayar adı. (kaldırıldı) Bunun yerine yukarıdaki wikibaseUrl'yi kullanın.
-I --init Başlangıç ​​zamanı ile birlikte belirtilirse, bu zaman veritabanında en son değişiklik zamanı olarak işaretlenir ve daha yeni veri bulunmasa bile gelecekteki istekler başlangıç ​​noktası olarak kullanılır.
--constraints Güncellenen öğeler için kısıtlama ihlallerini constraintsrdf API'si aracılığıyla yükleyin.
-K SERVERS --kafka SERVERS Belirtilirse, Güncelleyici, güncelleme kaynağı olarak Kafka'yı ve aracı olarak belirtilen sunucuları kullanır. Ör. kafka1001.eqiad.wmnet:9092,kafka1002.eqiad.wmnet:9092,kafka1003.eqiad.wmnet:9092
-C NAME --consumer NAME Kafka tüketici adı. Bunu ana bilgisayar adına veya buna dayalı bir şeye ayarlamak iyi bir fikirdir.
-c NAME1,NAME2 --cluster NAME1,NAME2 Kafka küme adları. Belirtilirse, Kafka konu adlarının önüne küme adları eklenir, bu nedenle konu1 yerine NAME1.topic1 ve NAME2.topic2 olur.
--resetKafka Kafka ofsetlerini sıfırlayın
--apiPath API yolu, ör. /w/api.php (varsayılan) veya /api.php. I78c222fe8b sürümünde tanıtıldı.
--entityDataPath Varlıklara giden yol, ör. /wiki/Special:EntityData/ (varsayılan) veya /Special:EntityData/. I78c222fe8b sürümünde tanıtıldı.

Yapılandırılabilir özellikler

Aşağıdaki özellikler, yukarıdaki betiklerinde komut dosyası çalıştırma komutuna eklenerek yapılandırılabilir:

Ad Anlamı Varsayılan
wikibaseServiceWhitelist Uzak hizmet beyaz listesinin dosya adı. Blazegraph için geçerlidir. whitelist.txt
org.wikidata.query.rdf.blazegraph.mwapi.MWApiServiceFactory.config MWAPI entegrasyonu için yapılandırma dosyası mwservices.json
com.bigdata.rdf.sail.sparql.PrefixDeclProcessor.additionalDeclsFile Ek önek tanımları içeren dosya adı. Sözdizimi SPARQL sorgusundaki gibidir. Bu tanımlar Blazegraph tarafından yüklenecek ve tüm sorgular için kullanılabilecektir.
wikibaseConceptUri Varlıkların RDF temsilinde kullanılan Wikibase verileri için URL öneki. Veri kümesi Vikiveri öneklerini kullanmıyorsa ayarlanması gerekir. http://www.wikidata.org
commonsConceptUri URL prefix for Structured Data on Commons support. Both wikibaseConceptUri and commonsConceptUri should be set for it to work.
wikibaseHost Wikibase örneğinin ana bilgisayar adı. Hem Blazegraph hem de Güncelleyici için geçerlidir. (kaldırıldı) Yukarıdaki wikibaseConceptUri kullanın. www.wikidata.org
org.wikidata.query.rdf.blazegraph.inline.literal.WKTSerializer.noGlobe Küre içermeyen koordinatlar için varsayılan küre değeri. "2", Q2 varlığının varsayılan dünya olduğu anlamına gelir. "0", varsayılan küre olmadığı anlamına gelir. Blazegraph için geçerlidir. 0
org.wikidata.query.rdf.tool.rdf.RdfRepository.timeout RDF deposuyla iletişim kurarken saniye cinsinden zaman aşımı. Güncelleyici için geçerlidir. -1
org.wikidata.query.rdf.tool.wikibase.WikibaseRepository.timeout Wikibase deposuyla iletişim kurarken milisaniye cinsinden zaman aşımı. Güncelleyici için geçerlidir. 5000
http.userAgent Hizmetin diğer hizmetleri ararken kullanacağı kullanıcı aracısı
http.proxyHost http.proxyPort

https.proxyHost https.proxyPort

Diğer hizmetler aranırken kullanılan proxy ayarları
wikibaseMaxDaysBack Güncelleyici'den son değişiklik verilerini kaç gün önce talep edebiliriz. Veritabanı bu sayıdan daha eskiyse, daha yeni dökümden yeniden yüklenmelidir. 30

Eksik özellikler

Şu anda desteklenmeyen özellikler aşağıdadır:

  • Yönlendirmeler yalnızca owl:sameAs üçlüsü olarak gösterilir, ancak verilerde herhangi bir denklik ifade etmez ve özel bir desteği yoktur.

İletişimler

Hizmette yanlış bir şey fark ederseniz, discovery@lists.wikimedia.org listesindeki veya IRC kanalı #wikimedia-discovery kanalındaki Keşif ekibi ile e-posta yoluyla iletişime geçebilirsiniz.

Hatalar ayrıca Phabricator ile gönderilebilir ve Keşif Phabricator panosunda izlenebilir.

Ayrıca bakınız