Logical Data Analysis for Egyptian Objects
Available identifiers
Problem statement
Common Destruction Patterns in Egyptian Objects from the Cachette de Karnak
Object of research and objective
Do Destruction Patterns Follow Specific Rules?
Involved disciplines
- Egyptology
- boolean algebra
Model
{{#sparql: SELECT ?Label ?Description ?Time ?Space WHERE {
wd:Q6032641 wdt:P557 ?item .
?item wdt:P31 wd:Q68663;
rdfs:label ?Label;
schema:description ?Description;
BIND(
IF(EXISTS { ?item wdt:P31 wd:Q6672091 }, "continuous",
IF(EXISTS { ?item wdt:P31 wd:Q6672095 }, "discrete",
"independent"
)
) AS ?Time
)
BIND(
IF(EXISTS { ?item wdt:P31 wd:Q6672089 }, "continuous",
IF(EXISTS { ?item wdt:P31 wd:Q6672093 }, "discrete",
"independent"
)
) AS ?Space
)
} | chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Variables
{{#sparql: SELECT ?Name ?Unit ?Symbol ?Task (?Type AS ?Dependency_Type) WHERE {
# Starting from the central item wd:Q6032641 p:P557 ?statement. ?statement ps:P557 ?model. ?statement pq:P147 ?task. ?model wdt:P31 wd:Q68663.
?task rdfs:label ?Task .
# Define type based on connection type (Input or Output)
{
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480299)
?item rdfs:label ?Name .
BIND("independent" AS ?Type)
}
UNION
{
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480295)
?item rdfs:label ?Name .
BIND("dependent" AS ?Type)
}
# Filter results to only show defining statements that match the current quantity label
OPTIONAL {
?task wdt:P1560 ?formulation.
?formulation wdt:P31 wd:Q6481152.
?formulation p:P983 ?inner_inner_statement .
?inner_inner_statement ps:P983 ?Symbol.
?inner_inner_statement pq:P984 ?quantity
}
FILTER (?quantity = ?item)
BIND("" AS ?Unit)
} ORDER BY ?task ?item | chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Parameters
{{#sparql: SELECT ?Name ?Unit ?Symbol ?Task WHERE {
# Starting from the central item wd:Q6032641 p:P557 ?statement. ?statement ps:P557 ?model. ?statement pq:P147 ?task. ?model wdt:P31 wd:Q68663.
?task rdfs:label ?Task .
# Define type based on connection type (Parameter)
?task p:P1560 ?inner_statement .
?inner_statement ps:P1560 ?item.
?inner_statement pq:P560 ?role.
FILTER (?role = wd:Q6480341)
?item rdfs:label ?Name .
# Filter results to only show defining statements that match the current quantity label
OPTIONAL {
?task wdt:P1560 ?formulation.
?formulation wdt:P31 wd:Q6481152.
?formulation p:P983 ?inner_inner_statement .
?inner_inner_statement ps:P983 ?Symbol.
?inner_inner_statement pq:P984 ?quantity
}
FILTER (?quantity = ?item)
BIND("" AS ?Unit)
} ORDER BY ?task ?item| chart=bordercloud.visualization.DataTable | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Process information
Process steps
{{#sparql: SELECT ?Number
?Name
?Description
(GROUP_CONCAT(DISTINCT ?inputLink; separator=", ") AS ?Input)
(GROUP_CONCAT(DISTINCT ?outputLink; separator=", ") AS ?Output)
(GROUP_CONCAT(DISTINCT ?methodLink; separator=", ") AS ?Method)
(GROUP_CONCAT(DISTINCT ?environmentLink; separator=", ") AS ?Environment)
(GROUP_CONCAT(DISTINCT ?disciplineLink; separator=", ") AS ?Discipline)
WHERE {
# Get Step Label and Description
wd:Q6032641 p:P557 ?mainStatement.
?mainStatement ps:P557 ?stepID.
?stepID wdt:P31 wd:Q6486603.
?stepID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?stepID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
?mainStatement pq:P146 ?Number.
OPTIONAL {
?stepID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Step Input(s)
OPTIONAL {
?stepID wdt:P1605 ?inputID.
?inputID rdfs:label ?inputLabel.
FILTER (lang(?inputLabel) = 'en')
BIND(replace( xsd:string(?inputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?inputQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?inputQID,'\'>',?inputLabel,'</a>') as ?inputLink)
}
# Get Step Output(s)
OPTIONAL {
?stepID wdt:P1606 ?outputID.
?outputID rdfs:label ?outputLabel.
FILTER (lang(?outputLabel) = 'en')
BIND(replace( xsd:string(?outputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?outputQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?outputQID,'\'>',?outputLabel,'</a>') as ?outputLink)
}
# Get Step Method(s)
OPTIONAL {
?stepID wdt:P557 ?methodID.
?methodID wdt:P31 wd:Q127020.
?methodID rdfs:label ?methodLabel.
FILTER (lang(?methodLabel) = 'en')
BIND(replace( xsd:string(?methodID),
'https://portal.mardi4nfdi.de/entity/',
) as ?methodQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?methodQID,'\'>',?methodLabel,'</a>') as ?methodLink)
}
# Get Step Environment(s)
OPTIONAL {
?stepID wdt:P143 ?environmentID.
?environmentID rdfs:label ?environmentLabel.
FILTER (lang(?environmentLabel) = 'en')
BIND(replace( xsd:string(?environmentID),
'https://portal.mardi4nfdi.de/entity/',
) as ?environmentQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?environmentQID,'\'>',?environmentLabel,'</a>') as ?environmentLink)
}
# Get Step Discipline
OPTIONAL {
?stepID wdt:P437 ?fieldID.
?fieldID rdfs:label ?fieldLabel.
FILTER (lang(?fieldLabel) = 'en')
BIND(replace( xsd:string(?fieldID),
'https://portal.mardi4nfdi.de/entity/',
) as ?fieldQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?fieldQID,'\'>',?fieldLabel,'</a>') as ?fieldLink)
}
OPTIONAL {
?stepID wdt:P226 ?mscID.
}
BIND(COALESCE(?fieldLink, ?mscID) AS ?disciplineLink)
} GROUP BY ?Name ?Description ?Number ORDER BY ASC(?Number) | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Methods
{{#sparql: SELECT ?Name
?Description
(GROUP_CONCAT(DISTINCT ?stepLink; separator=", ") AS ?Process_Step)
(GROUP_CONCAT(DISTINCT ?softwareLink; separator=", ") AS ?Implemented_By)
WHERE {
# Get Method Label and Description
wd:Q6032641 p:P557 ?mainStatement.
?mainStatement ps:P557 ?methodID.
?methodID wdt:P31 wd:Q127020.
?methodID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?methodID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?methodID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Software
OPTIONAL {
?mainStatement pq:P147 ?softwareID.
?softwareID rdfs:label ?softwareLabel.
FILTER (lang(?softwareLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?softwareQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?softwareQID,'\'>',?softwareLabel,'</a>') as ?softwareLink)
}
# Get Process Step
OPTIONAL {
?stepID wdt:P557 ?methodID.
?stepID rdfs:label ?stepLabel.
FILTER (lang(?stepLabel) = 'en')
BIND(replace( xsd:string(?stepID),
'https://portal.mardi4nfdi.de/entity/',
) as ?stepQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?stepQID,'\'>',?stepLabel,'</a>') as ?stepLink)
}
} GROUP BY ?ID ?Name ?Description | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Software
{{#sparql: SELECT ?Name
?Description
?Version
(GROUP_CONCAT(DISTINCT ?plLink; separator=", ") AS ?Programming_Language)
(GROUP_CONCAT(DISTINCT ?dpLink; separator=", ") AS ?Dependencies)
?versioned
?published
?documented
WHERE {
# Get Software Label and Description
wd:Q6032641 p:P557 ?mainStatement.
?mainStatement ps:P557 ?softwareID.
?softwareID wdt:P1460 wd:Q5976450.
?softwareID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?softwareID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Software Version
OPTIONAL {
?mainStatement pq:P132 ?Version.
}
# Get Programming Language
OPTIONAL {
?softwareID wdt:P114 ?plID.
?plID rdfs:label ?plLabel.
FILTER (lang(?plLabel) = 'en')
BIND(replace( xsd:string(?plID),
'https://portal.mardi4nfdi.de/entity/',
) as ?plQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?plQID,'\'>',?plLabel,'</a>') as ?plLink)
}
# Get Dependencies
OPTIONAL {
?softwareID wdt:P342 ?dpID.
?dpID rdfs:label ?dpLabel.
FILTER (lang(?dpLabel) = 'en')
BIND(replace( xsd:string(?dpID),
'https://portal.mardi4nfdi.de/entity/',
) as ?dpQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?dpQID,'\'>',?dpLabel,'</a>') as ?dpLink)
}
# Versioned
BIND (IF(BOUND(?Version), "Yes", "No") AS ?versioned)
# Published
OPTIONAL {
?softwareID wdt:P339 ?srcREPO.
}
BIND (IF(BOUND(?srcREPO), CONCAT('<a href="', STR(?srcREPO), '">Yes</a>'), "No") AS ?published)
# Documented
OPTIONAL {
?softwareID wdt:P340 ?docu.
}
BIND (IF(BOUND(?docu), CONCAT('<a href="', STR(?docu), '">Yes</a>'), "No") AS ?documented)
}
GROUP BY ?ID ?Name ?Description ?Version ?versioned ?published ?documented | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Hardware
{{#sparql: SELECT ?Name
?Description
(GROUP_CONCAT(DISTINCT ?processorLink; separator=", ") AS ?Processor)
(GROUP_CONCAT(DISTINCT ?nodes; separator=", ") AS ?Node_Number)
(GROUP_CONCAT(DISTINCT ?cores; separator=", ") AS ?Core_Number)
(GROUP_CONCAT(DISTINCT ?softwareLink; separator=", ") AS ?Software)
WHERE {
# Get Hardware Label and Description
wd:Q6032641 p:P557 ?mainStatement.
?mainStatement ps:P557 ?hardwareID.
?hardwareID wdt:P31 wd:Q56583.
?hardwareID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?hardwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND (CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND (CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?hardwareID schema:description ?Description.
FILTER (lang(?Description) = 'en')
}
# Get Processors(s), Nodes and Cores
OPTIONAL {
?hardwareID p:P1540 ?mainStatement2.
?mainStatement2 ps:P1540 ?processorID.
?processorID rdfs:label ?processorLabel.
?processorID wdt:P1565 ?cores.
FILTER (lang(?processorLabel) = 'en')
BIND(replace( xsd:string(?processorID),
'https://portal.mardi4nfdi.de/entity/',
) as ?processorQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?processorQID,'\'>',?processorLabel,'</a>') as ?processorLink)
# Get Number of Nodes
OPTIONAL {
?mainStatement2 pq:P149 ?nodes.
}
}
OPTIONAL {
wd:Q6032641 p:P557 ?softwareStatement.
?softwareStatement ps:P557 ?softwareID;
pq:P143 ?hardwareID.
?softwareID rdfs:label ?softwareLabel.
FILTER (lang(?softwareLabel) = 'en')
BIND(replace( xsd:string(?softwareID),
'https://portal.mardi4nfdi.de/entity/',
) as ?softwareQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?softwareQID,'\'>',?softwareLabel,'</a>') as ?softwareLink)
}
} GROUP BY ?ID ?Name ?Description | chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Data Sets
{{#sparql: SELECT ?Name
?Description
?Size
(?DataType AS ?Data_Type)
(?RepresentationFormat AS ?Representation_Format)
(?FileFormat AS ?File_Format)
(?BinaryOrText AS ?Binary_Text)
?Proprietary
(?toPublish AS ?to_Publish)
(?toArchive AS ?to_Archive)
WHERE {
# Get Step
wd:Q6032641 p:P557 ?mainStatement.
?mainStatement ps:P557 ?stepID.
?stepID wdt:P31 wd:Q6486603.
# Get Data
OPTIONAL {
{?stepID wdt:P1605 ?inputID.}
UNION
{?stepID wdt:P1606 ?inputID.}
?inputID rdfs:label ?NameLabel.
FILTER (lang(?NameLabel) = 'en')
BIND(replace( xsd:string(?inputID),
'https://portal.mardi4nfdi.de/entity/',
) as ?qid)
BIND(CONCAT('mardi:','<a href=\'/wiki/Item:',?qid,'\'>',?qid,'</a>') as ?ID)
BIND(CONCAT('<a href=\'/wiki/Item:',?qid,'\'>',?NameLabel,'</a>') as ?Name)
OPTIONAL {
?inputID schema:description ?Description.
FILTER (lang(?Description) = 'en')}
# Data Size (maps to Size if File etc size is provided)
OPTIONAL {
?inputID p:P1542 ?statementNode.
?statementNode psv:P1542 ?valueNode.
?valueNode wikibase:quantityAmount ?size;
wikibase:quantityUnit ?unit.
?unit rdfs:label ?unitlabel.
FILTER (lang(?unitlabel) = 'en')
BIND(CONCAT(STR(?size), ' ', STR(?unitlabel)) AS ?Size)
}
# Number of Records (maps to Size if Number of Entries in a Database etc is provided
OPTIONAL {
?inputID wdt:P139 ?Sizeraw
BIND(CONCAT(STR(?Sizeraw),' Items') as ?Size)
}
# Data Type
OPTIONAL {
?inputID p:P557 ?statement_dt.
?statement_dt ps:P557 ?datatypeID.
?statement_dt pq:P560 ?qualifier.
FILTER (?qualifier = wd:Q78802)
?datatypeID rdfs:label ?datatypeLabel.
FILTER (lang(?datatypeLabel) = 'en')
BIND(replace( xsd:string(?datatypeID),
'https://portal.mardi4nfdi.de/entity/',
) as ?datatypeQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?datatypeQID,'\'>',?datatypeLabel,'</a>') as ?DataType)
}
# Representation Format
OPTIONAL {
?inputID p:P557 ?statement_rf.
?statement_rf ps:P557 ?representationID.
?statement_rf pq:P560 ?qualifier2.
FILTER (?qualifier2 = wd:Q6534222)
?representationID rdfs:label ?representationLabel.
FILTER (lang(?representationLabel) = 'en')
BIND(replace( xsd:string(?representationID),
'https://portal.mardi4nfdi.de/entity/',
) as ?representationQID)
BIND (CONCAT('<a href=\'/wiki/Item:',?representationQID,'\'>',?representationLabel,'</a>') as ?RepresentationFormat)
}
# File Format
OPTIONAL {
?inputID wdt:P921 ?FileFormat
}
# Binary or Text
BIND(IF(EXISTS { ?inputID wdt:P31 wd:Q6480276 }, "binary", IF(EXISTS { ?inputID wdt:P31 wd:Q6534207 }, "text", "" )) AS ?BinaryOrText)
# Proprietary
BIND(IF(EXISTS { ?inputID wdt:P31 wd:Q6480367 }, "yes", IF(EXISTS { ?inputID wdt:P31 wd:Q6480313 }, "no", "" )) AS ?Proprietary)
# Bind DOI and URL if they exist
OPTIONAL { ?inputID wdt:P23 ?doi. }
OPTIONAL { ?inputID wdt:P188 ?url. }
# Data Publishing
BIND(
IF(EXISTS { ?inputID wdt:P1563 wd:Q6480291 },
IF(EXISTS { ?inputID wdt:P27 ?doi },
CONCAT('<a href="', 'https://dx.doi.org', STR(?doi), '">yes</a>'),
IF(EXISTS { ?inputID wdt:P188 ?url },
CONCAT('<a href="', STR(?url), '">yes</a>'),
"yes"
)
),
"no"
) AS ?toPublish
)
- Data Archiving
OPTIONAL {
?inputID p:P1563 ?statementNode.
?statementNode ps:P1563 wd:Q6480370.
OPTIONAL {
?statementNode pq:P411 ?endTime.
}
}
BIND(
IF(BOUND(?statementNode),
IF(BOUND(?endTime),
SUBSTR(STR(?endTime), 1, 4),
"yes"
),
"no"
) AS ?toArchive
)
}
} GROUP BY ?ID ?Name ?Description ?Size ?DataType ?RepresentationFormat ?FileFormat ?BinaryOrText ?Proprietary ?toPublish ?toArchive
| chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}
Reproducibility
{{#sparql: SELECT ?Mathematically
?Runtime
?Result
(?OriginalPlatform AS ?Original_Platform)
(?CrossPlatform AS ?Cross_Platform)
?Transferability
WHERE {
# Mathematical Reproducibility
OPTIONAL {
wd:Q6032641 p:P31 ?math_statement.
?math_statement ps:P31 wd:Q6534210.
BIND("Yes" AS ?math_hasTriple)
OPTIONAL {
?math_statement pq:P8 ?math_text.
BIND(CONCAT("Yes: ", STR(?math_text)) AS ?math_result)
}
}
BIND(IF(BOUND(?math_result), ?math_result, IF(BOUND(?math_hasTriple), "Yes", "No")) AS ?Mathematically)
# Runtime Reproducibility
OPTIONAL {
wd:Q6032641 p:P31 ?run_statement.
?run_statement ps:P31 wd:Q6534211.
BIND("Yes" AS ?run_hasTriple)
OPTIONAL {
?run_statement pq:P8 ?run_text.
BIND(CONCAT("Yes: ", STR(?run_text)) AS ?run_result)
}
}
BIND(IF(BOUND(?run_result), ?run_result, IF(BOUND(?run_hasTriple), "Yes", "No")) AS ?Runtime)
# Result Reproducibility
OPTIONAL {
wd:Q6032641 p:P31 ?res_statement.
?res_statement ps:P31 wd:Q6534212.
BIND("Yes" AS ?res_hasTriple)
OPTIONAL {
?res_statement pq:P8 ?res_text.
BIND(CONCAT("Yes: ", STR(?res_text)) AS ?res_result)
}
}
BIND(IF(BOUND(?res_result), ?res_result, IF(BOUND(?res_hasTriple), "Yes", "No")) AS ?Result)
# Original Platform Reproducibility
OPTIONAL {
wd:Q6032641 p:P31 ?plat_statement.
?plat_statement ps:P31 wd:Q6534213.
BIND("Yes" AS ?plat_hasTriple)
OPTIONAL {
?plat_statement pq:P8 ?plat_text.
BIND(CONCAT("Yes: ", STR(?plat_text)) AS ?plat_result)
}
}
BIND(IF(BOUND(?plat_result), ?plat_result, IF(BOUND(?plat_hasTriple), "Yes", "No")) AS ?OriginalPlatform)
# Cross Platform Reproducibility
OPTIONAL {
wd:Q6032641 p:P31 ?xplat_statement.
?xplat_statement ps:P31 wd:Q6534214.
BIND("Yes" AS ?xplat_hasTriple)
OPTIONAL {
?xplat_statement pq:P8 ?xplat_text.
BIND(CONCAT("Yes: ", STR(?xplat_text)) AS ?xplat_result)
}
}
BIND(IF(BOUND(?xplat_result), ?xplat_result, IF(BOUND(?xplat_hasTriple), "Yes", "No")) AS ?CrossPlatform)
# Transferability
OPTIONAL {
wd:Q6032641 p:P31 ?trans_statement.
?trans_statement ps:P31 wd:Q6534215.
BIND("Yes" AS ?trans_hasTriple)
OPTIONAL {
?trans_statement pq:P8 ?trans_text.
BIND(CONCAT("Yes: ", STR(?trans_text)) AS ?trans_result)
}
}
BIND(IF(BOUND(?trans_result), ?trans_result, IF(BOUND(?trans_hasTriple), "Yes", "No")) AS ?Transferability)
} GROUP BY ?Mathematically ?Runtime ?Result ?OriginalPlatform ?CrossPlatform ?Transferability
| chart=bordercloud.visualization.DataTable | options=width=100%! | endpoint=https://query.portal.mardi4nfdi.de/sparql }}