In your case, you could either decompose these sentences in 3 RDF statements or use a blank node.
Examples of decomposition, the course has its own URI (:Course999
):
:Mr_Parker :teaches :Course999 .
:Course999 :courseName "Machine Learning" .
:Course999 :hasSupportBook "ML-for-newbies" .
With anonymous nodes (blank node _:b1
), it's the same principle but the course is not explicitly captured:
:Mr_Parker :teaches _:b1 .
_:b1 :courseName "Machine Learning" .
_:b1 :hasSupportBook "ML-for-newbies" .
Now as mentioned in the comments, the string "ML-for-newbies" is actually not a book, it just represent the title of the book. So you could add more triples to capture extra information about this item (like the author of this book for instance). You can think of re-using already developed vocabulary for this task (like the Dublin Core):
:Mr_Parker :teaches _:b1 .
_:b1 :hasSupportBook :book2 .
:book2 dcterms:title "ML-for-newbies" .
:book2 dcterms:creator "John Smith" .
... and then here the string represent just the name of the author but not the author itself (like for the book), so you could expand your triples even more by representing this entity type too if needed.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…