2016-02-25 23 views
5

Tôi biết rằng việc chuyển đổi RDF thành JSON-LD có một số hạn chế, nhưng tôi tự hỏi liệu có cách nào tốt để chuyển đổi tránh sử dụng các nút trống không?Kiểm soát chuyển đổi RDF thành "đẹp hơn" JSON-LD

Ví dụ, đưa ra một đồ thị RDF:

@prefix ex: <http://example.org/ontology#> . 
<http://example.org/x123> ex:house [ 
             a ex:House ; 
             ex:houseNumber "1a" ; 
             ex:doorColour "blue" 
            ] ; 
          ex:house [ 
             a ex:House ; 
             ex:houseNumber "1b" ; 
             ex:doorColour "green" 
            ] . 

Có thể, sử dụng (Java) JSON-LD để thực thi chuyển đổi sang một đại diện mảng dựa trên các bnodes:

{ 
    "id": "http://example.org/x123", 
    "house": [{ 
    "type": "House", 
    "houseNumber": "1a", 
    "doorColour": "blue" 
    }, { 
    "type": "House", 
    "houseNumber": "1b", 
    "doorColour": "green" 
    }], 
    "@context": { 
     "ex": "http://example.org/ontology#", 
     "house": "ex:house", 
     "houseNumber": "ex:houseNumber", 
     "doorColour": "ex:doorColour", 
     "House": "ex:House", 
     "id": "@id", 
     "type": "@type" 
    } 
} 

Thay vì một cái gì đó như:

{ 
    "@graph": [ 
    { 
     "@id": "_:b0", 
     "@type": "http://example.org/ontology#House", 
     "http://example.org/ontology#doorColour": "blue", 
     "http://example.org/ontology#houseNumber": "1a" 
    }, 
    { 
     "@id": "_:b1", 
     "@type": "http://example.org/ontology#House", 
     "http://example.org/ontology#doorColour": "green", 
     "http://example.org/ontology#houseNumber": "1b" 
    }, 
    { 
     "@id": "http://example.org/x123", 
     "http://example.org/ontology#house": [ 
     { 
      "@id": "_:b0" 
     }, 
     { 
      "@id": "_:b1" 
     } 
     ] 
    } 
    ] 
} 

Hiện tại, tôi đang lặp qua các câu trong biểu đồ và manu đồng minh sản xuất JSON, nhưng liệu có thể làm điều này bằng cách sử dụng các thư viện như java-jsonld hoặc một số kỹ thuật JSON-LD khác không?

Trả lời

4

Bạn có thể sử dụng khung để đạt được điều đó. Hãy xem ví dụ thư viện trong sân chơi JSON-LD. Thật không may nó không được tiêu chuẩn hóa nên các triển khai khác nhau có thể không tạo ra chính xác cùng một kết quả và/hoặc các tính năng siêu khác nhau

+0

Tuyệt vời! Tôi đã nhận được điều này để làm việc theo cách tôi muốn với việc thực hiện jsonld-java. Tôi tự hỏi nếu nó cũng có thể ngăn chặn @id và/hoặc các yếu tố khác với khung? – brinxmat

+0

Không, điều đó là không thể tại thời điểm này nhưng bạn có thể bí danh sau đó để chỉ id vv nếu bạn thích rằng –

+0

Tìm thấy ở đây một [java ví dụ bằng cách sử dụng rdf4j và jsonldjava] (http://stackoverflow.com/questions/43638342). – jschnasse

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