如何从SPARQL查询访问Land Registry住宅类型

Eri*_*man 3 rdf sparql

我正在尝试使用SPARQL查询从英国土地注册处检索住宅类型.

API显示它被称为属性类型,并显示有四种类型:分离,扁平小屋,半独立,梯田.API在这里:http://landregistry.data.gov.uk/def/common?_page = 1.

查询是:

PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl:     <http://www.w3.org/2002/07/owl#>
PREFIX lrppi:   <http://landregistry.data.gov.uk/def/ppi/>
PREFIX skos:    <http://www.w3.org/2004/02/skos/core#>
PREFIX lrcommon: <http://landregistry.data.gov.uk/def/common/>

SELECT ?propertytype ?paon ?saon ?street ?town ?county ?locality ?district ?postcode ?    amount ?date
WHERE
{    
SERVICE <http://landregistry.data.gov.uk/landregistry/sparql>
{ 
    ?transx  lrppi:pricePaid ?amount .
    ?transx   lrppi:transactionDate ?date .
    ?transx   lrppi:propertyAddress ?addr.

    ?addr lrcommon:district "MALVERN HILLS"^^xsd:string .

    OPTIONAL {?addr lrcommon:county ?county .}
    OPTIONAL {?addr lrcommon:paon ?paon .}
    OPTIONAL {?addr lrcommon:saon ?saon .}
    OPTIONAL {?addr lrcommon:street ?street .}
    OPTIONAL {?addr lrcommon:town ?town .}
    OPTIONAL {?addr lrcommon:locality ?locality .}
    OPTIONAL {?addr lrcommon:postcode  ?postcode .}
}
}
ORDER BY ?postcode ?amount
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

这将检索我期望的数据(速度限制为1000),但我想提取数据,显示它是分离,梯形等.

任何帮助非常感谢!

Jos*_*lor 5

答案

你只需要添加三联

?transx lrppi:propertyType ?propertytype .
Run Code Online (Sandbox Code Playgroud)

对你的查询.例如,这是基于您的查询:

PREFIX xsd:     <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl:     <http://www.w3.org/2002/07/owl#>
PREFIX lrppi:   <http://landregistry.data.gov.uk/def/ppi/>
PREFIX skos:    <http://www.w3.org/2004/02/skos/core#>
PREFIX lrcommon: <http://landregistry.data.gov.uk/def/common/>

SELECT ?propertytype ?paon ?saon ?street ?town ?county ?locality ?district ?postcode ?amount ?date
WHERE {
    ?transx lrppi:pricePaid ?amount ;
            lrppi:transactionDate ?date ;
            lrppi:propertyAddress ?addr ;
            lrppi:propertyType ?propertytype .

    ?addr lrcommon:district "MALVERN HILLS"^^xsd:string .

    OPTIONAL {?addr lrcommon:county ?county .}
    OPTIONAL {?addr lrcommon:paon ?paon .}
    OPTIONAL {?addr lrcommon:saon ?saon .}
    OPTIONAL {?addr lrcommon:street ?street .}
    OPTIONAL {?addr lrcommon:town ?town .}
    OPTIONAL {?addr lrcommon:locality ?locality .}
    OPTIONAL {?addr lrcommon:postcode  ?postcode .}
}
ORDER BY ?postcode ?amount
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

您可以将其复制并粘贴到端点中并获取结果.(不幸的是,似乎没有办法直接链接到结果.)

找到答案

这是我找到那个属性的方式.该终端具有一定的查询示例,其中之一是"列出使用RDF类型":

PREFIX rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:     <http://www.w3.org/2000/01/rdf-schema#>

# Get labels for types used in the data.
SELECT  ?type ?name
WHERE {
    ?type rdfs:label ?name .
     FILTER EXISTS {  ?something rdf:type ?type . }
}
Run Code Online (Sandbox Code Playgroud)

该查询的结果包括

---------------------------------------------------------------------------------------------------------------------------------------------
| type                                                                           | name                                                     |
=============================================================================================================================================
| <http://landregistry.data.gov.uk/def/common/PropertyTypeConcept>               | "Property type concept"@en                               |
---------------------------------------------------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

既然我们现在关于类型,<http://landregistry.data.gov.uk/def/common/PropertyTypeConcept>我们可以要求它的实例:

PREFIX rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:     <http://www.w3.org/2000/01/rdf-schema#>

SELECT  ?x 
WHERE { ?x a <http://landregistry.data.gov.uk/def/common/PropertyTypeConcept> }
LIMIT 10 

----------------------------------------------------------------
| x                                                            |
================================================================
| <http://landregistry.data.gov.uk/def/common/detached>        |
| <http://landregistry.data.gov.uk/def/common/semi-detached>   |
| <http://landregistry.data.gov.uk/def/common/flat-maisonette> |
| <http://landregistry.data.gov.uk/def/common/terraced>        |
----------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

现在我们可以看到与其中一个相关的东西,以及它们的属性.例如

PREFIX rdf:      <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:     <http://www.w3.org/2000/01/rdf-schema#>

SELECT  ?x ?y
WHERE { ?x ?y <http://landregistry.data.gov.uk/def/common/detached> }
LIMIT 10 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
| x                                                                                                         | y                                                      |
======================================================================================================================================================================
| <http://landregistry.data.gov.uk/data/ppi/transaction/C7AE071D-242D-4825-9162-97BBF3B71840/2009-02-27233> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/D0CDBC03-5147-4D93-BCE5-176AF007E391/2009-02-10191> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/E37CAA33-CEF5-4162-8E07-918394B3C8AF/2009-02-00643> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/E37CAA33-CEF5-4162-8E07-918394B3C8AF/2009-03-32825> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/22276002-0030-4748-A7F6-C20F125DAC1C/2009-02-47264> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/FA525F65-CC8E-4617-A682-F8B267319445/2009-02-38989> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/3BFA438C-47AE-4B47-87AD-5DC365977619/2009-02-37729> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/A5BED22B-F54B-4459-9BF9-18920B8CDBAA/2009-02-21721> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/DDAAE7E0-B07F-49FF-AAB6-A2B96D8D4DE3/2009-02-11020> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
| <http://landregistry.data.gov.uk/data/ppi/transaction/5168D986-FAA2-42E8-B2C8-A04981C8BD0F/2009-02-09080> | <http://landregistry.data.gov.uk/def/ppi/propertyType> |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我们看到我们想要的属性<http://landregistry.data.gov.uk/def/ppi/propertyType>,可以缩短为lrppi:propertyType使用您定义的前缀.它似乎将事务与属性类型相关联,并且由于查询中的事务是?transx,我们添加

?transx lrppi:propertyType ?propertyType
Run Code Online (Sandbox Code Playgroud)