2016-03-23 25 views
1

Sorgu kapsamı dışında bilgi eklerken SPARQL yapısını yürütmek mümkün mü? örneğin ben SPARQL inşa yürütmek isterken böyle tanımlayan numaralandırma bilgi:Özel SPARQL Numaralandırma ile oluştur

PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
construct { 
    ?s a skos:Concept 
    ?s ex:index <enumeration starting from 1 -- this is just a sample> 
} 
where { 
    ?s a skos:Concept 
} 

saf SPARQL ile böyle bir şey yapmak mümkün mü? alternatifler nelerdir?

* Ek Bilgiler * Muhtemelen

açıkça sorunumu açıkladı değilim, bu yüzden temelde aşağıdaki ulaşmak istediğiniz (varsayarak o örn: dizin geçerli datatypeProperty olan):

İlk == RDF

@prefix skos:<http://www.w3.org/2004/02/skos/core#> 
@prefix ex: <http://example.org/> . 

ex:abc rdf:type skos:Concept . 
ex:def rdf:type skos:Concept . 
... 
ex:endOfSample rdf:type skos:Concept . 

== RDF SPARQL Güncelleme yürütme == sonra üç katına == üç katına

@prefix skos:<http://www.w3.org/2004/02/skos/core#> 
@prefix ex: <http://example.org/> . 

ex:abc rdf:type skos:Concept ; 
    ex:index 1 . 
ex:def rdf:type skos:Concept ; 
    ex:index 2 . 
... 
ex:endOfSample rdf:type skos:Concept ; 
    ex:index <endOfSampleNumber> . 
+1

SPARQL'i işlemek için ne kullanıyorsunuz? SPARQL bildiricidir, bu tür bir numaralandırma tek başına sorgu dili ile mümkün olmaz. Verileri tekrarlamak ve sıralı numaralar eklemek için bir Güncelleme sorgusu (hangi kriterlere göre?) Yapabilirsiniz. OTOH, çünkü SPARQL bildiricidir, veriyi sıralamak genellikle gerekli değildir. Belki de geri adım atıp, üst düzey şartların ne olduğunu açıklıyor musunuz? – scotthenninger

+0

@scottheninger Söylediğiniz gibi, bu sipariş için saf SPARQL'in olması mümkün görünmüyor. Öneriniz başına sorunu çözüyorum, Jena'yı kullanarak sorgu sonucunu işleyin ve sorgu sonucunu yinelediğinde ex: dizinini ekleyin. – FJE

cevap

3

CONSTRUCT içinde geçerli herhangi bir RDF değeri oluşturabilirsiniz. Ancak, WHERE grafiğini yürüttükten sonra CONSTRUCT grafik desenindeki değişkenlerden herhangi birinin bağlantısız olması durumunda sorgu başarısız olur. Yani sorgunuzda p için bağlayıcı olamaz ve CONSTRUCT asla çalışmaz.

PREFIX skos:<http://www.w3.org/2004/02/skos/core#> 
PREFIX ex:<http://example.org/construct#> 
construct { 
    ex:someProp a owl:ObjectProperty . 
    ?s ex:someProp (1 2 3) 
} 
where { 
    ?s a skos:Concept 
} 

Bu özellik değeri ve liste yapısı için yedi üçe yapımında neden olacaktır:

Bu

başlangıç ​​almalısınız bir örnektir.

Örn: someProp eklenmiş geçici listeler için SKOS'ta iyi bir nesne özelliği olmadığından eklenmiştir. Mülkün anlamsal anlamla tanımlanması en iyisi olacaktır. Ayrıca {ex: someProp: owp: ObjectProperty} üçlüsü her maçın {? S skos: Concept} eşleşmesi için geçerli olurken, aynı üçlüsün de geçerli olacağını ve bu nedenle de sonunda sadece bir tane olacağını unutmayın. Fiyat verimliliktir, bu nedenle bu sorgu dışında mülkün ileri sürülmesi daha iyi bir seçim olacaktır - yukarıdaki bütünlük içinde örnek bütünlüğü uğruna eklenmiştir.

+0

Merhaba, soruyu açık bir şekilde açıklamıyorum. Umarım eklenmiş bilgi bazı sorularımın içine koymuştur. Teşekkürler! – FJE