Skip to content
Snippets Groups Projects
Commit 0fe0befb authored by Aurélien Lamercerie's avatar Aurélien Lamercerie
Browse files

Update action extraction to generate assignee property

parent 0c003e7f
Branches
Tags
No related merge requests found
...@@ -114,6 +114,49 @@ def __compute_target_ref(graph, action_net): ...@@ -114,6 +114,49 @@ def __compute_target_ref(graph, action_net):
return target_ref return target_ref
# Assignee Reference
# -----------------------------------------------------
def __compute_assignee_ref_from_class_net(graph, assignee_net_uri):
assignee_net = net.ClassNet(graph, assignee_net_uri)
individual_name = 'any'
class_name = assignee_net.get_attribute_first_value(assignee_net.class_name)
if class_name is None: class_name = 'unknown'
return f'<http://example.com/asset:{individual_name}.{class_name}>'
def __compute_assignee_ref_from_individual_net(graph, assignee_net_uri):
assignee_net = net.IndividualNet(graph, assignee_net_uri)
individual_name = assignee_net.get_attribute_first_value(assignee_net.individual_label)
class_net_uri = assignee_net.get_attribute_first_value(assignee_net.mother_class_net)
class_net = net.ClassNet(graph, class_net_uri)
class_name = class_net.get_attribute_first_value(class_net.class_name)
if class_name is None: class_name = 'unknown'
return f'<http://example.com/asset:{individual_name}.{class_name}>'
def __compute_assignee_ref(graph, action_net):
assignee_ref = ''
first = True
for assignee_net_uri in action_net.assignee_class_net:
new_ref = __compute_assignee_ref_from_class_net(graph, assignee_net_uri)
assignee_ref = new_ref if first else f'{assignee_ref}, {new_ref}'
first = False
for assignee_net_uri in action_net.assignee_individual_net:
new_ref = __compute_assignee_ref_from_individual_net(graph, assignee_net_uri)
assignee_ref = new_ref if first else f'{assignee_ref}, {new_ref}'
first = False
return assignee_ref
# ODRL Action Code # ODRL Action Code
# ----------------------------------------------------- # -----------------------------------------------------
...@@ -134,7 +177,10 @@ def __compute_odrl_action_code(graph, rule_net): ...@@ -134,7 +177,10 @@ def __compute_odrl_action_code(graph, rule_net):
target_ref = __compute_target_ref(graph, action_net) target_ref = __compute_target_ref(graph, action_net)
if target_ref != '': target_ref = f'{ACTION_SPACING_CODE} odrl:target {target_ref} ;' if target_ref != '': target_ref = f'{ACTION_SPACING_CODE} odrl:target {target_ref} ;'
action_string = f"""[ {target_ref} {action_ref} ]""" assignee_ref = __compute_assignee_ref(graph, action_net)
if assignee_ref != '': assignee_ref = f'{ACTION_SPACING_CODE} odrl:assignee {assignee_ref} ;'
action_string = f"""[ {target_ref} {assignee_ref} {action_ref} ]"""
return produce_literal(graph, action_string) return produce_literal(graph, action_string)
......
This diff is collapsed.
...@@ -405,7 +405,7 @@ cprm:targetOntologyURI a rdf:Property ; ...@@ -405,7 +405,7 @@ cprm:targetOntologyURI a rdf:Property ;
rdfs:subPropertyOf cprm:configParamProperty . rdfs:subPropertyOf cprm:configParamProperty .
ext-out:policy_document-02 ns1:permission """[ ext-out:policy_document-02 ns1:permission """[
odrl:target <http://example.com/asset:any.movie>, <http://example.com/asset:9899.movie> ; odrl:target <http://example.com/asset:9899.movie> ;
odrl:action display ]""" . odrl:action display ]""" .
<https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology . <https://tenet.tetras-libre.fr/semantic-net> a owl:Ontology .
...@@ -416,9 +416,6 @@ net:Composite_Class_Net a owl:Class ; ...@@ -416,9 +416,6 @@ net:Composite_Class_Net a owl:Class ;
net:Composite_Property_Net a owl:Class ; net:Composite_Property_Net a owl:Class ;
rdfs:subClassOf net:Property_Net . rdfs:subClassOf net:Property_Net .
net:Deprecated_Net a owl:Class ;
rdfs:subClassOf net:Net .
net:Feature a owl:Class ; net:Feature a owl:Class ;
rdfs:subClassOf net:Net_Structure . rdfs:subClassOf net:Net_Structure .
...@@ -683,6 +680,9 @@ sys:Out_AnnotationProperty a owl:AnnotationProperty . ...@@ -683,6 +680,9 @@ sys:Out_AnnotationProperty a owl:AnnotationProperty .
net:Action_Net a owl:Class ; net:Action_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
net:Deprecated_Net a owl:Class ;
rdfs:subClassOf net:Net .
net:Individual_Net a owl:Class ; net:Individual_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
...@@ -827,6 +827,15 @@ net:Class_Net a owl:Class ; ...@@ -827,6 +827,15 @@ net:Class_Net a owl:Class ;
net:Property_Net a owl:Class ; net:Property_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
net:atomClass_movie_m a net:Atom_Class_Net,
net:Deprecated_Net ;
:role_name net:value_9899_blankNode ;
net:coverBaseNode :leaf_movie_m ;
net:coverNode :leaf_movie_m ;
net:hasClassName "movie" ;
net:hasNaming "movie" ;
net:hasStructure "document-02" .
net:atomProperty_display_d a net:Atom_Property_Net ; net:atomProperty_display_d a net:Atom_Property_Net ;
:role_ARG1 net:atomClass_movie_m, :role_ARG1 net:atomClass_movie_m,
net:individual_9899_m ; net:individual_9899_m ;
...@@ -893,8 +902,7 @@ net:Net_Structure a owl:Class ; ...@@ -893,8 +902,7 @@ net:Net_Structure a owl:Class ;
rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." .
net:action_display_d a net:Action_Net ; net:action_display_d a net:Action_Net ;
net:composeFrom net:atomClass_movie_m, net:composeFrom net:atomProperty_display_d,
net:atomProperty_display_d,
net:individual_9899_m ; net:individual_9899_m ;
net:coverBaseNode :leaf_display-01_d ; net:coverBaseNode :leaf_display-01_d ;
net:coverNode :leaf_display-01_d, net:coverNode :leaf_display-01_d,
...@@ -902,7 +910,6 @@ net:action_display_d a net:Action_Net ; ...@@ -902,7 +910,6 @@ net:action_display_d a net:Action_Net ;
net:hasActionName "display" ; net:hasActionName "display" ;
net:hasNaming "display" ; net:hasNaming "display" ;
net:hasStructure "document-02" ; net:hasStructure "document-02" ;
net:hasTargetClassNet net:atomClass_movie_m ;
net:hasTargetIndividualNet net:individual_9899_m . net:hasTargetIndividualNet net:individual_9899_m .
net:has_relation_value a owl:AnnotationProperty ; net:has_relation_value a owl:AnnotationProperty ;
...@@ -932,14 +939,6 @@ net:individual_9899_m a net:Individual_Net ; ...@@ -932,14 +939,6 @@ net:individual_9899_m a net:Individual_Net ;
net:Relation a owl:Class ; net:Relation a owl:Class ;
rdfs:subClassOf net:Net_Structure . rdfs:subClassOf net:Net_Structure .
net:atomClass_movie_m a net:Atom_Class_Net ;
:role_name net:value_9899_blankNode ;
net:coverBaseNode :leaf_movie_m ;
net:coverNode :leaf_movie_m ;
net:hasClassName "movie" ;
net:hasNaming "movie" ;
net:hasStructure "document-02" .
:AMR_NonCore_Role a owl:Class ; :AMR_NonCore_Role a owl:Class ;
rdfs:subClassOf :AMR_Role . rdfs:subClassOf :AMR_Role .
......
...@@ -410,9 +410,6 @@ net:Composite_Class_Net a owl:Class ; ...@@ -410,9 +410,6 @@ net:Composite_Class_Net a owl:Class ;
net:Composite_Property_Net a owl:Class ; net:Composite_Property_Net a owl:Class ;
rdfs:subClassOf net:Property_Net . rdfs:subClassOf net:Property_Net .
net:Deprecated_Net a owl:Class ;
rdfs:subClassOf net:Net .
net:Feature a owl:Class ; net:Feature a owl:Class ;
rdfs:subClassOf net:Net_Structure . rdfs:subClassOf net:Net_Structure .
...@@ -677,6 +674,9 @@ sys:Out_AnnotationProperty a owl:AnnotationProperty . ...@@ -677,6 +674,9 @@ sys:Out_AnnotationProperty a owl:AnnotationProperty .
net:Action_Net a owl:Class ; net:Action_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
net:Deprecated_Net a owl:Class ;
rdfs:subClassOf net:Net .
net:Individual_Net a owl:Class ; net:Individual_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
...@@ -821,6 +821,15 @@ net:Class_Net a owl:Class ; ...@@ -821,6 +821,15 @@ net:Class_Net a owl:Class ;
net:Property_Net a owl:Class ; net:Property_Net a owl:Class ;
rdfs:subClassOf net:Net . rdfs:subClassOf net:Net .
net:atomClass_movie_m a net:Atom_Class_Net,
net:Deprecated_Net ;
:role_name net:value_9899_blankNode ;
net:coverBaseNode :leaf_movie_m ;
net:coverNode :leaf_movie_m ;
net:hasClassName "movie" ;
net:hasNaming "movie" ;
net:hasStructure "document-02" .
net:atomProperty_display_d a net:Atom_Property_Net ; net:atomProperty_display_d a net:Atom_Property_Net ;
:role_ARG1 net:atomClass_movie_m, :role_ARG1 net:atomClass_movie_m,
net:individual_9899_m ; net:individual_9899_m ;
...@@ -887,8 +896,7 @@ net:Net_Structure a owl:Class ; ...@@ -887,8 +896,7 @@ net:Net_Structure a owl:Class ;
rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." . rdfs:comment "A semantic net captures a set of nodes, and associates this set with type(s) and value(s)." .
net:action_display_d a net:Action_Net ; net:action_display_d a net:Action_Net ;
net:composeFrom net:atomClass_movie_m, net:composeFrom net:atomProperty_display_d,
net:atomProperty_display_d,
net:individual_9899_m ; net:individual_9899_m ;
net:coverBaseNode :leaf_display-01_d ; net:coverBaseNode :leaf_display-01_d ;
net:coverNode :leaf_display-01_d, net:coverNode :leaf_display-01_d,
...@@ -896,7 +904,6 @@ net:action_display_d a net:Action_Net ; ...@@ -896,7 +904,6 @@ net:action_display_d a net:Action_Net ;
net:hasActionName "display" ; net:hasActionName "display" ;
net:hasNaming "display" ; net:hasNaming "display" ;
net:hasStructure "document-02" ; net:hasStructure "document-02" ;
net:hasTargetClassNet net:atomClass_movie_m ;
net:hasTargetIndividualNet net:individual_9899_m . net:hasTargetIndividualNet net:individual_9899_m .
net:has_relation_value a owl:AnnotationProperty ; net:has_relation_value a owl:AnnotationProperty ;
...@@ -926,14 +933,6 @@ net:individual_9899_m a net:Individual_Net ; ...@@ -926,14 +933,6 @@ net:individual_9899_m a net:Individual_Net ;
net:Relation a owl:Class ; net:Relation a owl:Class ;
rdfs:subClassOf net:Net_Structure . rdfs:subClassOf net:Net_Structure .
net:atomClass_movie_m a net:Atom_Class_Net ;
:role_name net:value_9899_blankNode ;
net:coverBaseNode :leaf_movie_m ;
net:coverNode :leaf_movie_m ;
net:hasClassName "movie" ;
net:hasNaming "movie" ;
net:hasStructure "document-02" .
:AMR_NonCore_Role a owl:Class ; :AMR_NonCore_Role a owl:Class ;
rdfs:subClassOf :AMR_Role . rdfs:subClassOf :AMR_Role .
......
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment