2013-06-09 22 views
6

Makinemde iki veya daha fazla veri kümesi indirmek ve her biri için bir SPARQL uç noktası başlatabilmek istiyorum. Jena projesinin bir parçası olan Fuseki'yi denedim. Bununla birlikte, tüm veri kümesini başka bir şey yapmaya niyetlendiğimde (birden çok SPARQL uç noktasını başlatıp bunların üzerinde birleşik sorgu sistemi kullanmaya başladığım sürece) DBpedia gibi büyük veri kümelerini sorgulamak istesem, çok fazla istenmeyen bellekte veri kümesini yükler.Büyük RDF Veri Kümelerini bellekte sorgulama

Size sadece bir fikir vermek için, bir FEDX federe sorgu sistemi kullanarak bunları sorgulayarak, çok sayıda veri kümesini SILK kullanarak bağlamak niyetindeyim. Kullandığım sistemlerde herhangi bir değişiklik önerirseniz veya bana bir ipucu verebilirseniz, bu harika olur. Bu projeye uyabilecek bir veri seti önermek de size yardımcı olacaktır.

cevap

4

Jena'nın Fuseki'si TDB'yi bir depolama mekanizması olarak kullanabilir ve TDB diskteki şeyleri depolar. caching on 32 and 64 bit Java systems numaralı telefondan TDB dokümantasyonu, dosya içeriğinin belleğe nasıl eşlendiğini anlatıyor. TDB/Fuseki'nin tüm veri kümesini belleğe yüklediğine inanmıyorum; Bu sadece büyük veri setleri için uygun değildir, ancak TDB oldukça büyük veri kümelerini ele alabilir. Yapmayı düşünmeniz gereken şey bir TDB deposu oluşturmak için tdbloader kullanıyor; O zaman Fuseki'ye işaret edebilirsin.

this answer'da bir TDB deposu kurma örneği var. Orada, sorgu tdbquery ile gerçekleştirilir, ancak belgelerin Running a Fuseki server bölümüne göre, bütün --loc=DIR seçeneğini kullanın aynı TDB mağaza ile Fuseki başlamak için yapması gerekir:

  • --loc=DIR
    Mevcut bir TDB veritabanını kullanın. Varsa boş bir tane oluşturun.
2

As Joshua said, Jena'nın Fuseki TDB yüzden çok fazla kaynak kullanmadan çok büyük ontolojiler saklayabilir kullanır. Örneğin, Yago2 taxonomy'u buna yükleyebilir ve sadece yaklaşık 600MB RAM kullanabilirsiniz. Fuseki'yi Java projenize yüklemeniz gerekmez, bunu sadece komut satırından çalıştırabilir ve projenizin içinde sorgulayabilirsiniz. Windows komut satırında

Yük onu takip:

http://localhost:3030/your_namespace/sparql?query=SELECT * { ?s ?p ?o } 
:

java -jar c:\your_ontology_directory\fuseki-server.jar \ 
    --file=your_ontology.rdf /your_namespace 

Sonra herhangi bir GET/POST uygulama (hatta tarayıcınızda) ile buna karşı bir SPARQL sorguyu çalıştırabilirsiniz

Sonuçlar varsayılan olarak XML biçiminde döndürülür.

<?xml version="1.0"?> 
<sparql xmlns="http://www.w3.org/2005/sparql-results#"> 
    <head> 
    <variable name="s"/> 
    <variable name="p"/> 
    <variable name="o"/> 
    </head> 
    <results> 
    <result> 
     <binding name="s"> 
     <uri>http://yago-knowledge/resource/wordnet_gulag_103467887</uri> 
     </binding> 
     <binding name="p"> 
     <uri>http://www.w3.org/2000/01/rdf-schema#subClassOf</uri> 
     </binding> 
     <binding name="o"> 
     <uri>http://yago-knowledge/resource/wordnet_prison_camp_104005912</uri> 
     </binding> 
    </result> 
    …