여기 예제를 공부했습니다 https://docs.marklogic.com/guide/semantics/tde#id_25531MarkLogic 템플릿 중심 추출 및 트리플 : 배열 노드를 다루는
나는 부모 이름으로 구조화과 어린이의 배열이 자신과 노드되는 문서의 집합이 이름. "name1 is-a-parent-of name2"형식의 트리플을 생성하는 템플릿을 만들고 싶습니다. 여기서 I 시도 테스트 문서의 구조의 예와 함께이다 :
[스크립트] TDE-EVALFAILED : tde.nodeDataExtract ([cts.doc 그러나
declareUpdate(); xdmp.documentInsert( '/test/tde.json', { content: { name:'Joe Parent', children: [ { name: 'Bob Child' }, { name: 'Sue Child' } ] } }, {permissions : xdmp.defaultPermissions(), collections : ['test']}) cts.doc('/test/tde.json') var tde = require("/MarkLogic/tde.xqy"); // Load the user template for user profile rows var template = xdmp.toJSON( { "template":{ "context":"content", "collections": [ "test" ], "triples":[ { "subject": { "val": "xs:string(name)" }, "predicate": { "val": "sem:iri('is-parent-of')" }, "object": { "val": "xs:string(children/name)" } } ] } } ); //tde.validate([template]), tde.templateInsert("/templates/test.tde", template); tde.nodeDataExtract( [cts.doc('/test/tde.json')] )
, 위에서 예외를 발생 XDMP-CAST : (오류 : FORG0001) 잘못된 캐스트 : ('/test/tde.json')]) - Eval for Object = 'xs : string (children/name)'이 (가) TDE- BADVALEXPRESSION을 반환합니다. fn : doc ("/ test/tde")/fn : doc ("/ test/tde.json")/("[2]/text ("name "))로 캐스팅 된 xs : string?
배열 노드를 트리플로 추출하기위한 올바른 구문은 무엇입니까?
두 번째 다소 관련된 질문 : "child1 is-sibling-of child2"형식의 트리플을 원했습니다. 위의 예에서 "Bob Child is-sibling-of Sue Child"가됩니다. 이것에 대한 적절한 구문은 무엇입니까? 나는 이걸 어떻게 시작해야할지조차 모르겠다.
TDE는 여기에 가도됩니까? 또는 프로그래밍 방식으로이 작업을 수행하는 것이 더 좋습니다. 즉, 문서 수집시 문서 내에 이러한 트리플을 직접 생성합니까?
우수! 이것은 잘 작동했습니다. 내 주제가 원본 컨텍스트 외부로 확장 될 수 있다고 생각하지 않았습니다. 다른 배열 노드간에 트리플을 형성하는 것에 관한 제 2의 질문에 대한 조언이 있습니까? –