JSON-LD와 속성/클래스 관계를 모델링하는 가장 좋은 방법을 찾으려고합니다. 속성을 공유 할 수있는 클래스를 지원하려고합니다.json-LD 클래스 속성 관계 모델링
첫 번째 예제는 이것을 달성하는 일반적인 방법이라고 생각합니다 (schema.org는 rdfs : 도메인 대신 http://schema.org/domainIncludes이라는 호스팅 된 속성을 사용하지만). 속성 도메인 :
그러나 나는 내 사용 사례가 더 나은 2.
예 1) RDFS를 참조 예와 같이 클래스의 속성을 가리키는에 의해 설명 될 것이라고 생각합니다.
{
"@context": {
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"project": "http://wwww.hello.com#"
},
"@graph": [
{
"@id": "project:ClassOne",
"@type": "rdfs:Class",
"rdfs:label": "ClassOne"
},
{
"@id": "project:ClassTwo",
"@type": "rdfs:Class",
"rdfs:label": "ClassOne"
},
{
"@id": "project:propertyOne",
"@type": "rdf:Property",
"rdfs:label": "propertyOne",
"rdfs:range": "xsd:string",
"rdfs:domain": [
{ "@id":"project:ClassOne" },
{ "@id":"project:ClassTwo" },
]
},
{
"@id": "project:PropertyTwo",
"@type": "rdf:Property",
"rdfs:label": "PropertyTwo",
"rdfs:range": "xsd:string",
"rdfs:domain": [
{ "@id":"project:ClassOne" }
]
}
]
}
예 2) 속성에서 도메인을 사용하는 대신 클래스의 속성을 가리 킵니다. ref : isDefinedBy 또는 project : custom/propertyList를 가능한 두 가지 방법으로 사용하십시오. 나는 둘 중 하나만 사용합니다.
{
"@context": {
"rdf": "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"project": "http://wwww.hello.com#"
},
"@graph": [
{
"@id": "project:ClassOne",
"@type": "rdfs:Class",
"rdfs:label": "ClassOne",
"rdfs:isDefinedBy": [
{ "@id":"project:propertyOne" },
{ "@id":"project:propertyTwo" }
]
},
{
"@id": "project:ClassTwo",
"@type": "rdfs:Class",
"rdfs:label": "ClassOne",
"project:custom/propertyList": [
{ "@id":"project:propertyTwo" }
]
},
{
"@id": "project:propertyOne",
"@type": "rdf:Property",
"rdfs:label": "propertyOne",
"rdfs:range": "xsd:string"
},
{
"@id": "project:propertyTwo",
"@type": "rdf:Property",
"rdfs:label": "propertyTwo",
"rdfs:range": "xsd:string"
}
]
}
뭔가 의미가 있습니까? 왜냐하면 나는 다른 '프로젝트'의 클래스가 속성을 공유 할 수있는 프레임 워크를 구축하려고하기 때문에 속성에 도메인을 사용하지 않기 때문에, project1의 속성이 프로젝트 2의 클래스.
그러나 project1의 클래스는 project2의 속성을 사용하는 것이 좋습니다.
좋아, 이것에 대해 좀 더 생각할 것입니다. 나의 현재 지식과 함께 어휘를 설명하는 다른 방법 '을 제공합니다. 그래서 더 많은 연구를 거쳐 업데이트를 추가 할 것입니다. – TheBigC