2011-10-27 32 views
5

Tôi đã đọc về SPARQL và RDF và vui lòng sửa tôi nếu lý do của tôi về các công nghệ này là sai ở đây.Tôi có thể kết hợp bộ dữ liệu cục bộ và từ xa trong truy vấn SPARQL không?

Giả sử rằng chúng tôi có cơ sở dữ liệu SPARQL cục bộ được gọi là LOCAL .. và url đến tệp RDF từ xa được gọi là URL_RDF. Tôi có thể viết một kịch bản cho phép nói trong PHP mà sẽ làm một truy vấn SPARQL như thế này?

Mã giả.

SELECT * FROM LOCAL,URL_RDF WHERE LOCAL.id=URL_RDF.id 

Nói cách khác tôi có thể kết hợp các nguồn trong truy vấn SPARQL như thế này (tệp từ xa + local db)?

Trả lời

5

Bạn có thể thực hiện việc này bằng cách sử dụng các tính năng liên kết trong SPARQL 1.1. Đây là những mô tả ở http://www.w3.org/TR/sparql11-federated-query, nhưng để cung cấp cho bạn một ấn tượng nhanh chóng của những gì nó trông giống như, truy vấn ví dụ của bạn sẽ là một cái gì đó như thế này (vẫn còn trong giả):

SELECT * WHERE { 
    # the local part of the query 
    ?s ?p ?id 

    SERVICE <http://url/to/remote/data> { 
    # The remote part of the query 
    ?x ?y ?id 
    } 
} 

Lưu ý rằng URL sẽ phải trỏ đến một SPARQL điểm cuối, tức là một máy chủ có thể đáp ứng các truy vấn SPARQL, và không chỉ là một tệp RDF từ xa.

+0

Cảm ơn Jan, Tôi có thể sử dụng các tệp rdf thô không? tôi có luôn cần điểm cuối không? ngay cả khi truy vấn sẽ chỉ liên quan đến URL_RDF. Điều gì sẽ xảy ra nếu tệp URL_RDF này được lưu trữ cục bộ? Đánh giá cao sự giúp đỡ của bạn – AndroidGecko

+0

Bạn không thể truy vấn trực tiếp các tệp RDF, bạn luôn cần một chút phần mềm diễn giải tệp RDF và đánh giá truy vấn của bạn trên dữ liệu này. Để làm điều này, bạn thường sử dụng "cửa hàng ba". Tất cả các cửa hàng ba cho phép bạn tải các tệp RDF để bạn có thể truy vấn chúng. Nếu bạn có nhiều tệp dữ liệu, bạn có thể chỉ cần tải tất cả các tệp đó vào một cửa hàng ba đơn lẻ rồi chạy truy vấn của bạn. Hoặc, bạn có thể sử dụng nhiều cửa hàng ba và truy vấn trên chúng bằng cách sử dụng cú pháp SERVICE được mô tả ở trên. – Jan

Các vấn đề liên quan