2014-12-17 23 views
5

Zor bir durumdayım ve MarkLogic belgelerinde bu konuda herhangi bir bilgi bulamıyorum. Sonra ben sadece cts:triples((), sem:iri("http://www.w3.org/2004/02/skos/core#prefLabel"), "Object") de gerektiği zamanMarkLogic üçlü nesne dili

<http://subject1> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"^^xs:string . 
<http://subject2> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"@en . 

: I having ben farklı kaynaklardan üçe kullanıyorum ve dize nesneleri (bazı dilli) tarif etmenin farklı yolları kullanarak olmasıdır İlk üçlüyü al.

Sorun şu ki, dili görmezden gelmeyi ve iki üçlüyü (mümkünse, sparql kullanmadan) iade etmeyi nasıl sağlayabilirim?

cevap

5

Yukarıdaki gibi "Object" kullanılarak yeterince ilgi çekici sonuçlar benim için hiçbir sonuç getirmedi (MacOS'ta MarkLogic 7.0-4.1 kullanılarak). İşte

cts:triples((),(),(
    sem:unknown("Object", sem:iri("http://www.w3.org/2001/XMLSchemastring")), 
    rdf:langString("Object", "en") 
)) 

daha iyi anlamak için ne QConsole (boş bir veritabanına karşı çalıştırın!) Çalışabilir kod bazı uzun parça oluyor: Onun yerine kullanmak zorunda

xquery version "1.0-ml"; 

import module namespace sem = "http://marklogic.com/semantics" 
     at "/MarkLogic/semantics.xqy"; 
sem:rdf-insert(sem:rdf-parse(' 
@prefix xs: <http://www.w3.org/2001/XMLSchema> . 
<http://subject1> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"^^xs:string . 
<http://subject2> <http://www.w3.org/2004/02/skos/core#prefLabel> "Object"@en . 
', "turtle")) 
; 

'all triples:', 
cts:triples((),(),()), 

'all objects:', 
for $triple in cts:triples((),(),()) 
return xdmp:describe(sem:triple-object($triple)), 

'all object languages:', 
for $triple in cts:triples((),(),()) 
return concat('"', sem:lang(sem:triple-object($triple)), '"'), 

'results with "Object":', 
cts:triples((),(),sem:iri("Object")), 

'results with sem:unknown("Object", sem:iri("xs:string")):', 
cts:triples((),(),sem:unknown("Object", sem:iri("xs:string"))), 

'results with sem:unknown("Object", sem:iri("http://www.w3.org/2001/XMLSchemastring")):', 
cts:triples((),(),sem:unknown("Object", sem:iri("http://www.w3.org/2001/XMLSchemastring"))), 

'results with rdf:langString("Object", "en")', 
cts:triples((),(),rdf:langString("Object", "en")), 

'combined results:', 
cts:triples((),(),(
    sem:unknown("Object", sem:iri("http://www.w3.org/2001/XMLSchemastring")), 
    rdf:langString("Object", "en") 
)) 

HTH !