buda-base / owl-schema

BDRC Ontology Schema
11 stars 2 forks source link

grouping of properties #6

Closed eroux closed 7 years ago

eroux commented 7 years ago

I think it would make sense to group some data properties or object properties, such as the references of a text in a catalogue (workKaTen* for instance), as in a user interface it would make sense to group them... or would you prefer to do all the groupings with blank nodes and individual for types? (I'm not particularly opposed to it, I think I'm just less attached to the complete systematization of one and only one pattern) In which case what about creating a new class and some individuals for the different references?

xristy commented 7 years ago

Seems like a good idea for the reference numbers. I don't understand your other comments fully, but here's my take at an approach. With the current definitions an example from O4JW333 would be like:

bdr:W22084P0033 a :Work ; :status bdr:StatusReleased ;
    :workPartOf bdr:W22084P0021 ;
    :workPartType bdr:WorkText ;
    :workLegacyNode “O4JW3334CZ89957” ;
    rdfs:label “dge slong ma'i 'dul ba rnam par 'byed pa/”@bo-x-ewts ;
    :workTitle [ :name “dge slong ma'i 'dul ba rnam par 'byed pa/”@bo-x-ewts ;
        :name "Detailed Explanations on Nuns’ Discipline"@en ;
        :name "bhikṣunīvinayavibhaṅga"@sa-x-iast ;
        :workTitleType bdr:WorkBibliographicTitle ] ;
    :workBeginsAt [ :workLocationWork bdr:W22084 ;
        :workLocationVolume 9 ;
        :workLocationPage 52 ] ;
    :workEndsAt [ :workLocationWork bdr:W22084 ;
        :workLocationVolume 9 ;
        :workLocationPage 657 ] ;
    :workKaTenSiglaS "5" ;
    :workKaTenSiglaN "5" ;
    :workKaTenSiglaD "5" ;
    :workKatGTenRefToh "5" ;
    :workColophon "kha che'i mkhan po sarba dz+nyA de ba dang/ d+harmA ka ra dang/ rgya gar gyi mkhan po bid+yA ka ra pra b+ha dang/ lo tsA ba ban+de dpal gyi lhun pos bsgyur/ /rgya gar gyi mkhan po bid+yA ka ra pra b+ha dang/ zhu chen gyi lo tsA ba ban+de dpal brtsegs kyis zhus te gtan la phab pa'o/ /snga zhus kun dga'o shA'i dpal/ gnyis kyis ma dag dri ma bsel/ /gsum zhus mkhas pa snar thang dpon slob pas/ /sa yi steng 'dir legs par dag bgyis so"@bo-x-ewts ;
    :workAuthorshipStatement "t. sarvanyadeva; dharmakara; vidyakaraprabha; ban de dpal gyi lhun po; r. bidyakaraprabha; ban de dpal brtsegs"@bo-x-ewts ;
    :work_desc_location "vol:9,ff.25v-328r(pp.50-655)"@en
    .

If the reference numbers were grouped then it would make it easy to have a query like:

?s :workRefs [ ?ref ?num ] .

so that a client would not have to enumerate the possible ?ref properties. So the above could appear as:

bdr:W22084P0033 a :Work ; :status bdr:StatusReleased ;
    :workPartOf bdr:W22084P0021 ;
    :workPartType bdr:WorkText ;
    :workLegacyNode “O4JW3334CZ89957” ;
    rdfs:label “dge slong ma'i 'dul ba rnam par 'byed pa/”@bo-x-ewts ;
    :workTitle [ :name “dge slong ma'i 'dul ba rnam par 'byed pa/”@bo-x-ewts ;
        :name "Detailed Explanations on Nuns’ Discipline"@en ;
        :name "bhikṣunīvinayavibhaṅga"@sa-x-iast ;
        :workTitleType bdr:WorkBibliographicTitle ] ;
    :workBeginsAt [ :workLocationWork bdr:W22084 ;
        :workLocationVolume 9 ;
        :workLocationPage 52 ] ;
    :workEndsAt [ :workLocationWork bdr:W22084 ;
        :workLocationVolume 9 ;
        :workLocationPage 657 ] ;
    :workRefs [ a :WorkRefs ;
        :workKaTenSiglaS "5" ;
        :workKaTenSiglaN "5" ;
        :workKaTenSiglaD "5" ;
        :workKatGTenRefToh "5" ] ;
    :workColophon "kha che'i mkhan po sarba dz+nyA de ba dang/ d+harmA ka ra dang/ rgya gar gyi mkhan po bid+yA ka ra pra b+ha dang/ lo tsA ba ban+de dpal gyi lhun pos bsgyur/ /rgya gar gyi mkhan po bid+yA ka ra pra b+ha dang/ zhu chen gyi lo tsA ba ban+de dpal brtsegs kyis zhus te gtan la phab pa'o/ /snga zhus kun dga'o shA'i dpal/ gnyis kyis ma dag dri ma bsel/ /gsum zhus mkhas pa snar thang dpon slob pas/ /sa yi steng 'dir legs par dag bgyis so"@bo-x-ewts ;
    :workAuthorshipStatement "t. sarvanyadeva; dharmakara; vidyakaraprabha; ban de dpal gyi lhun po; r. bidyakaraprabha; ban de dpal brtsegs"@bo-x-ewts ;
    :work_desc_location "vol:9,ff.25v-328r(pp.50-655)"@en
    .

I don't see any need for additional individuals of some type. The :WorkRefs is a formality that can be elided as we discussed in types for some blank nodes

xristy commented 7 years ago

Of course the query:

?s :workRefs [ ?ref ?num ] .

only works nicely if there is no:

a :WorkRefs ;

assertion on the blank node otherwise the client has to discard the useless type assertion.

xristy commented 7 years ago

I'm guessing you have some other grouping idea in mind.

eroux commented 7 years ago

sorry, it wasn't clear, I meant grouping it in the ontology, as it would make sense from a UI point of view to have a button "add canonical reference" (or something like that) and then choose "Dergue Reference", etc. wdyt?

xristy commented 7 years ago

Surely using a sub-property grouping for reference numbers seems fine:

:workRefNumbers

Is the above grouping into a blank node is also perhaps useful as indicated for clients?

eroux commented 7 years ago

ok great! The grouping into a blank node is a very good idea indeed, that will require some boring code to be written, but that's for the best

xristy commented 7 years ago

changes have been made in ontology

xristy commented 7 years ago

I guess both ideas work together:

?s :workRefs [ ?ref ?num ] ; ?ref owl:subProperty :workRefs .

but I suppose it's not necessary to use the blank nodes:

?s ?ref ?num ; ?ref owl:subProperty :workRefs .

Should I back out the last changing adding the blank nodes?