Ich habe ein Triple-Geschäft mit Chemikalien. Jede Substanz hat etwa 30-40 Parameter. Jeder Parameter hat einen Datenbanknamen und einen echten Namen. Zum Beispiel chem: flBeiRT hat den richtigen Namen Flüssig bei Raumtemperatur (deutsch). Um die Liste auf eine besser lesbare Größe zu bringen, haben wir Kategorien erstellt. Eine dieser Kategorien wäre: Nomenklatur (deutsch).Sparql variabel aussteigen alle begrenzt
Ich habe jetzt eine SPARQL-Abfrage, wo ein
SELECT DISTINCT ?name
WHERE{
?s iol:name "Nomenklatur" .
?x rdf:type iol:property .
?x iol:name ?name .
?x iol:propertyof ?s .
}
Es gibt mir die wirklichen Namen aller Parameter unter Nomenklatur alle Parameter unter Nomenklatur erhalten wie erwartet. In meinem Verständnis in der Variable? X sind alle Parameter bereits mit dort Datenbank Name gebunden, so dass ich es direkt für die Verwendung all dieser Parameter von einer Chemikalie verwenden. Also habe ich versucht, dies direkt zu dieser Abfrage hinzuzufügen. Jeder einzelne Parameter einzeln erhalten. Da die Substanz keine ID hat verwende ich eine Mine zweite Abfrage insinde nur, dass eine Chemikalie zu erhalten:
SELECT ?name
WHERE{
?s iol:name "Nomenklatur" .
?x rdf:type iol:property .
?x iol:name ?name .
?x iol:propertyof ?s .
{
SELECT ?o
WHERE{
?x chem:ilAbk "[A_4mim]Al" .
}
}
}
Und es gibt mir immer noch die gleichen elf Parameter i gefragt. Aber wie würde ich jetzt alle passenden Literas dieser Chemikalie bekommen? Ich habe versucht, mit:
SELECT DISTINCT ?name ?o
WHERE{
?s iol:name "Nomenklatur" .
?x rdf:type iol:property .
?x iol:name ?name .
?x iol:propertyof ?s .
{
SELECT DISTINCT ?o
WHERE{
?x chem:ilAbk "[C_2mim]Cl" .
?x ?p ?o
}
}
}
Aber hier bekomme ich über 312 Ergebnisse, was wie jeder Parameter mit jedem wörtlichen mir Nähte plus all die uri? Könnte mir bitte jemand sagen, wie ich das anstellen soll? Und Danke für deine Zeit. Oder muss ich jeden Parameter in Ruhe bekommen? Vielleicht hilft es, die Daten oder ein Stück davon zu sehen:
Vielen Dank für Ihre Zeit. Also wird das innere Sub-SELECT zuerst ausgewertet - wusste das nicht. Also ich denke, es wäre besser, zuerst die Chemikalie auszuwählen und dann alle Namen und Literale zu erhalten und dann herauszufiltern, was unter _Nomenklatur_ steht. Ja im Schema hat jede Substanz die Parameter, diese haben dort eigene Präfixe (chem) und jede Chem hat Kategorie. – MisterT
Korrigieren. Sie können Ihre Unterauswahl verwenden, aber Sie müssen alles weiterleiten, was notwendig ist, um das zu filtern, was Sie wollen - in Ihrem Fall wahrscheinlich '? P' ** und **'? O'. – AKSW