Hoe schrijf ik dit SPARQL-verzoek?

Ik heb de volgende Ontologie gebouwd in Protege 4.

enter image description here

In deze Ontologie: De hoofdklasse Frame heeft een datatypeProperty hasDuration met domein 'Frame' en bereik UnsignedShort . de Class ShortFrame en LongFrame worden afgeleid van de class SizedFrame met de volgende beperking

Rectriction voor ShortFrame-klasse

SizedFrame that hasDuration some unsignedLong[<=20]

Rectriction voor LongFrame-klasse

SizedFrame that hasDuration some unsignedLong[>=200]

Ik heb handmatig een instantie van de klasse frame met de naam frame0 gemaakt, die een eigenschap hasDuration heeft ingesteld op 12 .

Wat is de SPARQL-query die ik nodig heb om het volledige shortFrame te krijgen. Ik hoop dat frame0 wordt afgeleid als een shortFrame ?

Bedankt voor het antwoord!

Editie: voorbeeldquery

PREFIX frame: 
SELECT ?y WHERE {?y rdf:type frame:Frame}

maar het werkt niet! misschien is het niet correct!

1
@ FopaLéonConstantin Ik realiseer me dat dit nu een oude vraag is, maar ben je hier ooit nog verder mee gekomen? Het antwoord van Jeen B lijkt dat het de elementen moet vinden die je zoekt.
toegevoegd de auteur Joshua Taylor, de bron
Ik heb de vraag in mijn vraag toegevoegd. maar het werkt niet. Ik ben nieuw op SQPARQL. heb je een link om me te helpen aan de slag te gaan?
toegevoegd de auteur Fopa Léon Constantin, de bron

2 antwoord

Ik geloof dat je wat vragen gaat stellen voor OWL-restrictie-informatie in SPARQL-taal. SPARQL is een RDF-querytaal en heeft geen begrip voor de concepten van OWL. In plaats van een beperking te maken, kunt u een gegevenseigenschap gebruiken om de duurwaarde te definiëren en kunt u alle shortFrames gebruiken met SPARQL. Andere optie die ik zou aanraden is het gebruik van SWRL-regels in plaats van SPARQL. Ik hoop dat dit helpt !!

1
toegevoegd
Hallo @ Swami, wat zijn de verschillen tussen SPARQL en SWRL die de eerste interessanter maken dan de tweede in mijn geval?
toegevoegd de auteur Fopa Léon Constantin, de bron

De query die u geeft, vraagt ​​om alle exemplaren van het type frame: Frame . Omdat je alleen de korte frames wilt, moet je het als volgt aanpassen:

SELECT ?y WHERE {?y a frame:ShortFrame}

... maar het bovenstaande werkt alleen als de reasoner uw beperking begrijpt en frame0 correct kan classificeren als een instantie van ShortFrame . Ik ben niet al te bekend met de syntaxis van Protege voor uilbeperkingen, dus ik ben er niet 100% zeker van dat uw beperking uitdrukking geeft aan wat u wilt dat het uitdrukt.

Als een alternatief kunt u de beperking die u nodig hebt daadwerkelijk in SPARQL uitdrukken. Opvragen voor alle frames met een duur van minder dan 20:

SELECT ?y 
WHERE {
   ?y a frame:Frame; 
      frame:hasDuration ?d . 
   FILTER (?d <= 20) 
}
0
toegevoegd
Ik denk dat de beste vraag hier een unie zou bevatten van de twee die je hebt laten zien, omdat beide manieren zijn waarop een shortframe kan worden herkend.
toegevoegd de auteur Joshua Taylor, de bron