2013-05-10 18 views
6

RDF'de yeniyim ve RDF hakkında bir sorum var.RDF sözdizimini kullanarak karmaşık cümleler gösteriliyor

"Ann Study Math" gibi bazı basit cümle ile, RDF'yi kullanarak bunu temsil etmekte sorun yoktur.

Fakat gibi daha karmaşık cümlelerle

: " Bay Parker Machine Learning öğretir ve ML-için-newbie isimli kitabı kullanır", Bay Parker dersler hazırlamak için o kitabı kullanır demek. Sayın Parker, Makine Öğrenmesi, Yeni başlayanlar için ML; 2 yüklemleri: öğretmek, kullanın. Peki bu cümleyi RDF'de nasıl temsil edebilirim? Bildiğim kadarıyla, bir RDF ifadesi Konu --predicate gibi -> Nesne ve 3 nesneleri ve 2 yüklemler beni

Yardım plz, Senin durumunda sayesinde

+0

Benzer soru: http://stackoverflow.com/questions/15820657/how-can-i-represent-a-5-tuple-in-rdf –

cevap

6

, yapabilirsin ya :(karıştı olun! . anonim düğümler ile

:Mr_Parker :teaches :Course999 . 
:Course999 :courseName "Machine Learning" . 
:Course999 :hasSupportBook "ML-for-newbies" . 

(boş düğüm _:b1), bu kadar: 3 RDF tablolara bu cümleleri ayrıştırmak veya kullandığınız bir blank node ayrışma

Örnekler, ders kendi URI (:Course999) sahiptir Aynı ilke, ancak elbette açıkça yakalanan değildir:

:Mr_Parker :teaches _:b1 . 
_:b1 :courseName "Machine Learning" . 
_:b1 :hasSupportBook "ML-for-newbies" . 

Şimdi, yorum dizeyi "ML-yeni başlayanlar için" sadece kitabın başlığını temsil aslında bir kitap değil belirtildiği gibi. Bu nedenle bu eşya hakkında ekstra bilgi toplamak için daha fazla üçlü ekleyebilirsiniz (örneğin bu kitabın yazarı gibi). Sen (Dublin Core gibi) bu görev için yeniden kullanarak zaten geliştirilen kelime düşünebilirsiniz:

:Mr_Parker :teaches _:b1 . 
_:b1 :hasSupportBook :book2 . 
:book2 dcterms:title "ML-for-newbies" . 
:book2 dcterms:creator "John Smith" . 

... ve daha sonra burada dize yazarın sadece adını temsil fakat için benzemez yazar kendisi (kitap), böylece ihtiyaç halinde bu varlık türünü de temsil ederek üç katınızı daha da genişletebilirsiniz.

+1

İyi cevap, ancak bir dize kitap değildir. Başka bir kaynak eklemelisiniz: book123 veya somesuch, "Newbies için ML" başlıklı bir başlık ve daha sonra bir yazar, isbn, vb. –

+0

Teşekkür ederim @loopasam, 2. yöntem daha uygun olduğunu düşünüyorum (ve bunun hakkında düşündüm). Tekrar teşekkürler :) – Songokute

+0

Ian'dan iyi bir nokta: İşte size başlamak için aşırı basit bir temsil, daha sonra benzer bir şekilde temsil etmek istediğiniz şeylerin ayrıntı düzeyini artırabilirsiniz. Ben cevaba ekledim. – loopasam

4

Kabul edilen yanıt iyi ve örnekleri var, ancak bu temsil sorunlarını ele alan W3C'nin Çalışma Grubu Notu Defining N-ary Relations on the Semantic Web'a bir göz atmaya değer. Kabul edilen cevaptaki yaklaşım bu notta Pattern 1: introducing a new class for a relation'dur. Ayrıca bir Pattern 2: Using lists for arguments in a relation var, ama bu daha sakıncalı ve bu kadar çok insanın bu yaklaşımı aldığını düşünmüyorum.

+0

Merhaba @Joshua Taylor, "** Bir öğrencinin en az 10 köpeği varsa, o zaman aynı zamanda 10 kedisi var" gibi bir ifadeyi nasıl temsil etmek için baykuş ??? – Songokute

+0

@Songokute Bu gerçekten alakasız bir soru ve (yorumlarda değil) böyle bir şekilde sorulmalı, ama oldukça basit OWL: '(Öğrenci ve hasPet min 10 Dog) subClassOf (hasPet min 10 Cat)' dır. –

+0

Teşekkürler, bunun hakkında yeni bir soru sordum.:) Senin durumunda: '(X) subClassOf (Y)', sonra X ve Y anonim ya da isimlendirilmiş sınıflar (Ben onların isimleri varsa bu sınıfları nasıl adlandıracağını merak ediyorum ...)? – Songokute

İlgili konular