2013-06-09 34 views
6

Tôi muốn tải xuống hai hoặc nhiều tập dữ liệu trên máy của mình và có thể bắt đầu điểm cuối SPARQL cho từng bộ dữ liệu. Tôi đã thử Fuseki, một phần của dự án Jena. Tuy nhiên, nó tải toàn bộ dữ liệu trong bộ nhớ, không mong muốn nhiều nếu tôi dự định truy vấn các tập dữ liệu lớn như DBpedia vì tôi dự định thực hiện các công cụ khác (bắt đầu nhiều điểm cuối SPARQL và sử dụng hệ thống truy vấn liên kết trên chúng).Truy vấn bộ dữ liệu RDF lớn ra khỏi bộ nhớ

Chỉ cần cung cấp cho bạn thông báo, tôi định liên kết nhiều bộ dữ liệu bằng cách sử dụng SILK, truy vấn chúng bằng cách sử dụng hệ thống truy vấn liên kết FEDX. Nếu bạn đề xuất bất kỳ thay đổi nào của hệ thống tôi đang sử dụng hoặc có thể cho tôi mẹo, điều đó sẽ tuyệt vời. Nó cũng sẽ rất hữu ích nếu bạn đề xuất một tập dữ liệu có thể phù hợp trong dự án này.

Trả lời

4

Fuseki của Jena có thể sử dụng TDB làm cơ chế lưu trữ và TDB lưu trữ mọi thứ trên đĩa. Tài liệu TDB trên caching on 32 and 64 bit Java systems thảo luận cách thức nội dung tệp được ánh xạ vào bộ nhớ. Tôi không tin rằng TDB/Fuseki tải toàn bộ tập dữ liệu vào bộ nhớ; điều này không khả thi đối với các tập dữ liệu lớn, nhưng TDB có thể xử lý các tập dữ liệu khá lớn. Tôi nghĩ điều bạn nên cân nhắc là sử dụng tdbloader để tạo một cửa hàng TDB; sau đó bạn có thể chỉ Fuseki cho nó.

Có ví dụ về thiết lập cửa hàng TDB ở this answer. Trong đó, các truy vấn được thực hiện với tdbquery, nhưng theo phần Running a Fuseki server các tài liệu, tất cả các bạn sẽ cần phải làm để bắt đầu Fuseki với các cửa hàng TDB tương tự được sử dụng --loc=DIR tùy chọn:

  • --loc=DIR
    Sử dụng cơ sở dữ liệu TDB hiện có. Tạo một sản phẩm nào nếu nó không tồn tại.
2

As Joshua said, Fuseki Jena của sử dụng TDB để nó có thể lưu trữ bản thể rất lớn mà không sử dụng nhiều tài nguyên. Ví dụ, bạn có thể nạp Yago2 taxonomy vào nó và chỉ sử dụng khoảng 600MB RAM. Bạn không cần tải Fuseki vào dự án Java của bạn, bạn chỉ có thể chạy nó từ dòng lệnh và truy vấn nó bên trong dự án của bạn.

tải nó tại dòng lệnh Windows bằng cách như sau:

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

Sau đó, bạn có thể chạy một truy vấn SPARQL chống lại nó với bất kỳ ứng dụng GET/POST (ngay cả trong trình duyệt của bạn):

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

Kết quả, theo mặc định, được trả về ở định dạng XML.

<?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> 
    … 
Các vấn đề liên quan