dữ liệu Với như thế này (trong RDF/XML):
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:pizzas="http://example.org/pizzas#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://example.org/pizzas"/>
<owl:Class rdf:about="http://example.org/pizzas#Pizza"/>
<owl:Class rdf:about="http://example.org/pizzas#Human"/>
<owl:ObjectProperty rdf:about="http://example.org/pizzas#hasPizza">
<rdfs:domain rdf:resource="http://example.org/pizzas#Human"/>
<rdfs:range rdf:resource="http://example.org/pizzas#Pizza"/>
</owl:ObjectProperty>
<owl:NamedIndividual rdf:about="http://example.org/pizzas#Jim">
<rdf:type rdf:resource="http://example.org/pizzas#Human"/>
<pizzas:hasPizza>
<owl:NamedIndividual rdf:about="http://example.org/pizzas#CheesePizza">
<rdf:type rdf:resource="http://example.org/pizzas#Pizza"/>
</owl:NamedIndividual>
</pizzas:hasPizza>
</owl:NamedIndividual>
</rdf:RDF>
hoặc tương đương, trong Rùa dễ đọc hơn:
@prefix : <http://example.org/pizzas#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pizzas: <http://example.org/pizzas#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
pizzas:Jim
a pizzas:Human , owl:NamedIndividual ;
pizzas:hasPizza pizzas:CheesePizza .
pizzas:hasPizza
a owl:ObjectProperty ;
rdfs:domain pizzas:Human ;
rdfs:range pizzas:Pizza .
pizzas:Human
a owl:Class .
pizzas:Pizza
a owl:Class .
<http://example.org/pizzas>
a owl:Ontology .
pizzas:CheesePizza
a pizzas:Pizza , owl:NamedIndividual .
thông báo rằng sự khẳng định Jim hasPizza CheesePizza
là một trong ba trong đồ thị. Các tiên đề tên miền và phạm vi cho thuộc tính đối tượng hasPizza
là hai bộ ba: hasPizza rdfs:domain Human
và hasPizza rdfs:range Pizza
. Truy vấn SPARQL phù hợp với mẫu truy vấn so với các bộ ba trong biểu đồ. Như vậy, từ một truy vấn như:
prefix : <http://example.org/pizzas#>
select ?x ?y where {
?x :hasPizza ?y
}
bạn sẽ nhận được kết quả như
$ arq --data pizzas.ttl --query query.sparql
-----------------------
| x | y |
=======================
| :Jim | :CheesePizza |
-----------------------
vì có một triple trong đồ thị có vị ngữ là :hasPizza
, và rằng ba có :Jim
như chủ đề, và :CheesePizza
làm đối tượng. Có vẻ như bạn đang thực sự yêu cầu miền và phạm vi thuộc tính :hasPizza
, cũng dễ dàng truy xuất. Sử dụng một truy vấn như thế này:
prefix : <http://example.org/pizzas#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?domain ?range where {
:hasPizza rdfs:domain ?domain ;
rdfs:range ?range .
}
và bạn sẽ nhận được kết quả như thế này:
$ arq --data pizzas.ttl --query query.sparql
-------------------
| domain | range |
===================
| :Human | :Pizza |
-------------------
Nguồn
2013-08-27 13:20:05
bạn có thể đăng các phiên bản RDF của ontology của bạn? Các lớp không được liên kết trực tiếp bởi các thuộc tính trong OWL, nó thường được thực hiện thông qua một tiên đề hạn chế tồn tại. Vì vậy, hãy mở phiên bản RDF của bản thể luận của bạn và tìm cấu trúc; sau đó bạn có thể thử kết hợp nó với truy vấn SPARQL của bạn. – loopasam
Có vẻ như bạn có một thuộc tính đối tượng 'hasPizza', _rdfs: domain_ và _rdfs: range_ trong số đó là' Human' và 'Pizzas', tương ứng. Điều này là tương đối dễ dàng để tìm kiếm quá, tuy nhiên, nhưng nó là một nhiệm vụ riêng biệt. –