我不确定你所说的同义词是什么意思。但是看了 MeSH 本体之后(从here下载)。我运行以下查询来列出所有不同的谓词:
SELECT DISTINCT ?p where { ?s ?p ?o }
...我得到...
<http://www.w3.org/2004/02/skos/core#historyNote>
<http://www.nlm.nih.gov/mesh/2006#considerAlso>
<http://www.nlm.nih.gov/mesh/2006#recordAuthorizer>
<http://www.nlm.nih.gov/mesh/2006#dateEstablished>
<http://www.nlm.nih.gov/mesh/2006#dateCreated>
<http://www.nlm.nih.gov/mesh/2006#onlineNote>
<http://www.nlm.nih.gov/mesh/2006#activeMeSHYear>
<http://www.nlm.nih.gov/mesh/2006#historyNote>
<http://www.w3.org/2004/02/skos/core#related> <<<---
<http://www.w3.org/2004/02/skos/core#broader> <<<---
<http://www.nlm.nih.gov/mesh/2006#recordMaintainer>
<http://www.w3.org/2004/02/skos/core#scopeNote>
<http://www.w3.org/2004/02/skos/core#altLabel>
<http://www.w3.org/2004/02/skos/core#prefLabel>
<http://www.nlm.nih.gov/mesh/2006#preferredCombination> <<<---
<http://www.nlm.nih.gov/mesh/2006#publicMeSHNote>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
<http://www.w3.org/2004/02/skos/core#annotation>
<http://www.w3.org/2004/02/skos/core#hiddenLabel>
<http://www.nlm.nih.gov/mesh/2006#recordOriginator>
<http://www.nlm.nih.gov/mesh/2006#runningHead>
<http://www.nlm.nih.gov/mesh/2006#dateRevised>
...<<<--- 的谓词让我假设资源之间存在某种关系。
例如,如果我们使用以下查询尝试skos:related:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?slabel ?olabel
WHERE {
?s skos:related ?o .
?s skos:prefLabel ?slabel .
?o skos:prefLabel ?olabel .
}
我们得到...
"Anesthetics" "Adjuvants, Anesthesia"
"Prostatic Neoplasms" "Prostate-Specific Antigen"
"Elbow" "Tennis Elbow"
"Uterine Hemorrhage" "Menorrhagia"
"Ecology" "Environmental Health"
"Endocarditis, Bacterial" "Aneurysm, Infected"
( .... and many more )
如果您使用以下查询尝试skos:broader(省略前缀)。请注意,skos:broader 用于定义概念的层次结构,因此它与skos:related 具有不同的语义
SELECT ?slabel ?olabel
WHERE {
?s skos:broader ?o .
?s skos:prefLabel ?slabel .
?o skos:prefLabel ?olabel .
}
你得到...
"Healthy People Programs" "Health Promotion"
"Suggestion" "Hypnosis"
"Sodium Iodide" "Iodides"
"Unnecessary Procedures" "Health Services Misuse"
"Bornanes" "Norbornanes"
"Prajmaline" "Ajmaline"
"Vestibular Nerve" "Vestibulocochlear Nerve"
"Adenolymphoma" "Neoplasms, Complex and Mixed"
"Child, Gifted" "Child, Exceptional"
"Tooth Germ" "Tooth Components"
"Breast Self-Examination" "Self-Examination"
( ... and many more)
底线,如果您不知道架构,请运行 some exploratory queries 并尝试查看其中的内容。
编辑:OWL 文件查询
@safé 我认为你是对的,你正在使用的 OWL 文件中的类之间没有这种关系。
以下查询为您提供所有 OWL 类:
SELECT DISTINCT ?p WHERE { ?s a <http://www.w3.org/2002/07/owl#Class> . }
...另一个给出了任何类中使用的所有谓词:
SELECT DISTINCT ?p WHERE {
?s a <http://www.w3.org/2002/07/owl#Class> .
?s ?p ?o }
...最后一个查询只返回:
<http://www.w3.org/2000/01/rdf-schema#subClassOf>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
实际上,在该 OWL 文件中,您只有以下内容:
<http://org.snu.bike/MeSH#antimony_sodium_gluconate> rdf:type owl:Class .
和...
<http://org.snu.bike/MeSH#antimony_sodium_gluconate> rdfs:subClassOf <http://org.snu.bike/MeSH#gluconate>.
这意味着在该 OWL 文件中声明的唯一内容是类的层次结构,并且没有声明同义词。
如果您想以某种方式提取所有子类,请...
SELECT * WHERE {
?subClass <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?upperClass
}