如何解决Anzograph SPARQL问题
SELECT * FROM {
?measurement a oboe-core:Measurement ;
oboe-core:ofCharacteristic oboe-core:Name ;
oboe-core:usesstandard :Anaee-franceExperimentalSiteNamingStandard ;
oboe-core:hasValue ?anaeeSiteNameStandard .
BIND ( IRI( CONCAT( "http://www.anaee-france.fr/ontology/anaee-france_ontology",?anaeeSiteNameStandard ) ) AS ?site ) .
OPTIONAL { ?site rdfs:label ?_anaeeSiteName . }
BIND ( IF (BOUND (?_anaeeSiteName),?_anaeeSiteName,"NULL_anaeeSiteName"@en ) AS
?anaeeSiteName) .
FILTER (lang( ?anaeeSiteName ) = "en") .
} limit 3
?_ anaeeSiteName 为空,知道我的图形包含:
<http://www.anaee-france.fr/ontology/anaee-france_ontology#Guyaflux>
rdfs:label "Guyaflux"@en .
当我直接使用时
BIND ( IRI( "http://www.anaee-france.fr/ontology/anaee-france_ontology#Guyaflux" ) AS ?site ) .
代替BIND IRI CONCAT
BIND ( IRI( CONCAT( "http://www.anaee-france.fr/ontology/anaee-france_ontology",?anaeeSiteNameStandard ) ) AS ?site ) .
我得到一些结果。
谁能告诉我怎么了?
谢谢
解决方法
我们同意Uninformed和Andy的看法,认为存在语法错误。您缺少FROM和WHERE关键字的图形uri,并且concat中的#与您的示例URI相匹配是必需的。
免责声明:我为Cambridge Semantics Inc.工作。
,抱歉,我删除了“ FROM”以简化查询。
完整的Sparql查询如下:
SELECT * FROM <foret> WHERE {
?measurement a oboe-core:Measurement ;
oboe-core:ofCharacteristic oboe-core:Name ;
oboe-core:usesStandard :Anaee-franceExperimentalSiteNamingStandard ;
oboe-core:hasValue ?anaeeSiteNameStandard .
BIND ( IRI( CONCAT( "http://www.anaee-france.fr/ontology/anaee-france_ontology",?anaeeSiteNameStandard ) ) AS ?site ) .
OPTIONAL { ?site rdfs:label ?_anaeeSiteName . }
BIND ( IF (BOUND (?_anaeeSiteName),?_anaeeSiteName,"NULL_anaeeSiteName"@en ) AS
?anaeeSiteName) .
FILTER (lang( ?anaeeSiteName ) = "en") .
} limit 3
一个笨拙的想法是,当我添加:
BIND ( str(?anaeeSiteNameStandard) AS ?anaeeSiteNameStandard ) .
就在:
BIND ( IRI( CONCAT( "http://www.anaee-france.fr/ontology/anaee-france_ontology",?anaeeSiteNameStandard ) ) AS ?site ) .
我得到了预期的结果!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。